|
|
|
Выборка пересечения между 2-х таблиц (в одной 60 млн записей, во второй 20 тыс. записей)
|
|||
|---|---|---|---|
|
#18+
Ivan Durakruff3dпри поиске статического значения типа "p.kod = '1234567890'" ищет секунд 10. пользуюсь dbForge Studio for MySQL, создает промежуточную таблицу при выборке. код преобразуй в integerПоле VARCHAR-ное, чем тут поможет integer? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 10:50:09 |
|
||
|
Выборка пересечения между 2-х таблиц (в одной 60 млн записей, во второй 20 тыс. записей)
|
|||
|---|---|---|---|
|
#18+
кто работал с такими объемными таблицами? Как ускорить выборку (пресечение) данных таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 11:16:27 |
|
||
|
Выборка пересечения между 2-х таблиц (в одной 60 млн записей, во второй 20 тыс. записей)
|
|||
|---|---|---|---|
|
#18+
ruff3dКак ускорить выборку (пресечение) данных таблиц?Для начала я бы разобрался с данными. Зачем такие длинные поля? Почему они типа VARCHAR? Нельзя ли их преобразовать в INT? Затем попробовал бы построить индекс без префиксов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 12:10:27 |
|
||
|
Выборка пересечения между 2-х таблиц (в одной 60 млн записей, во второй 20 тыс. записей)
|
|||
|---|---|---|---|
|
#18+
miksoftIvan Durakпропущено... код преобразуй в integerПоле VARCHAR-ное, чем тут поможет integer? вот ПОЛЕ и преобразуй. Видно же что там целочисленные данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 12:17:24 |
|
||
|
Выборка пересечения между 2-х таблиц (в одной 60 млн записей, во второй 20 тыс. записей)
|
|||
|---|---|---|---|
|
#18+
Ivan Durakmiksoftпропущено... Поле VARCHAR-ное, чем тут поможет integer? вот ПОЛЕ и преобразуй. Видно же что там целочисленные данные.Увы, видно только топикстартеру. Может, там не все значения целочисленные... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 12:43:06 |
|
||
|
Выборка пересечения между 2-х таблиц (в одной 60 млн записей, во второй 20 тыс. записей)
|
|||
|---|---|---|---|
|
#18+
ruff3d, Возникает вопрос сразу в необходимости такого запроса. Зачем нужен список всех людей с их городами? Зачем нужен distinct в запросе? Он будет очень дорог при таких объемах, а kod и fio, похоже, уникальные ключи, и если связь с адресом не 1 к N, а N к 1, то distinct не нужен. А по остальному, если убрать distinct, то для него нужны только индекс по полям связки, kod. Идеально было бы использовать тут merge join, но mySQL его кажется ещё не поддерживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 13:23:09 |
|
||
|
Выборка пересечения между 2-х таблиц (в одной 60 млн записей, во второй 20 тыс. записей)
|
|||
|---|---|---|---|
|
#18+
MasterZivruff3d, Возникает вопрос сразу в необходимости такого запроса. Зачем нужен список всех людей с их городами? Зачем нужен distinct в запросе? Он будет очень дорог при таких объемах, а kod и fio, похоже, уникальные ключи, и если связь с адресом не 1 к N, а N к 1, то distinct не нужен. А по остальному, если убрать distinct, то для него нужны только индекс по полям связки, kod. Идеально было бы использовать тут merge join, но mySQL его кажется ещё не поддерживает. мне нужно вывести только тех людей, чьи кода есть в базе adr, в которой дублируются строки (kod, adress). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 17:14:56 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38387825&tid=1836108]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 342ms |

| 0 / 0 |
