|
Кто тормозит?
|
|||
---|---|---|---|
#18+
Посоветуйте где крутить!!!!!!!!!!!! есть 2 больших таблицы t1=18 млн. записей и t2=12 млн. Есть общее поле fff. При выполнении запроса из t1 с подтягиванием полей из t2 например select count(*) from t1 left join t2 on t1.fff=t2.fff where date>..... Так вот если результатом запроса будет количество записей до 10 то запрос выполняется быстро, около 15 сек, а если количество записей приближается к 100, то запрос выполняется 7000 сек, а если количество около 1000000, то 19000 сек. Почему такая нелинейная зависимость? Сервер 3.23.52 под linux 512 Мб озу 2 проца. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2002, 15:33 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
индексы на t1.fff , t2.fff и date стоят ? ps ты 5 часов ждал выполнения запроса ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2002, 18:32 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
Все индексы есть иначе бы на любом запросе тормозило. Нет пять часов не ждал на ночь запускал, но вообще меня эти эксперименты уже достали - на построение индека часа два по одному полю уходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2002, 18:39 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
можешь показать explain запроса ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2002, 18:41 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
Думаю как из Fronta его перетащить. Наверное сейчас не успею, только завтра с утра ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2002, 19:06 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
Не нашел можно ли HTML корректно вставить в форум поэтому кидаю explain для выборки которая выполняется 10 сек ---------- резать здесь ------------------------ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>SQL-query</title> <meta name="GENERATOR" content="MySQL-Front 2.4"> <style type="text/css"><!-- .header {background-color: #D4D0C8;} th {vertical-align: top;} td {vertical-align: top; background-color: #FFFFFF;} //--></style> </head> <body> <h3>SQL-query (2 Records)</h3> <table border=1> <tr class="header"> <th>table</th> <th>type</th> <th>possible_keys</th> <th>key</th> <th>key_len</th> <th>ref</th> <th>rows</th> <th>Extra</th> </tr> <tr> <td>do </td> <td>range </td> <td>g33 </td> <td>g33 </td> <td>11 </td> <td>NULL </td> <td>503 </td> <td>where used </td> </tr> <tr> <td>de </td> <td>ref </td> <td>NewIndex </td> <td>NewIndex </td> <td>23 </td> <td>do.nd </td> <td>2 </td> <td>where used </td> </tr> </table> <br><br> <i>generated 11/28/2002 9:31:12 AM by <a href="http://www.mysqlfront.de/">MySQL-Front 2.4</a></i> </body></html> ---------------конец-------------------------------- do - таблица t1 de - таблица t2 nd - общее поле для выборки в 7000 сек величина rows для первой таблица </body></html> ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2002, 10:17 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
g33 - это ключ на date? Долго работает запрос, если делать выборку только из одной таблицы с условием по date ? ps такого вида было бы более, чем достаточно. table type possible_keys key key_len ref rows Extra do range g33 g33 11 NULL 503 where used de ref NewIndex NewIndex 23 do.nd 2 where used ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2002, 18:28 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
Думал хоть что-то понимаю в MySQL, а оказывается я нифига не понимаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2002, 09:35 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
g33 это ключ по полю char, но по нему из одной таблицы поиск идет быстро, проблема начинается когда связываю две таблицы. Причем провел эксперимент - урезал исходные таблицы до 500000 записей - запрос стал выполняться 1мин. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2002, 09:55 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
что то у тебя явно не используется какой то индекс. >g33 это ключ по полю char где это поле в запросе ? покажи show create table для обоих таблиц сам запрос. А то что-то я совсем запутался. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2002, 12:48 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
Извини я начал с отвлеченного запроса select count(*) from t1 left join t2 on t1.fff=t2.fff where date> , а explain писал уже для реального. Реальный запрос такой: select count(*) from do left join de on de.nd=do.nd where de.gd1>'2002-01-01' and de.g011='ИМ' and do1.g33 like '39%' индексы для de.nd ,do.nd, g011 и g33 построены и по отдельности из одной таблицы все быстро вытаскивает. Перефразируя мой первоначальный вопрос, спрашиваю: приспособлен ли MYSQL для работы с большими(> 10млн.записей) таблиц с помощью оператора join ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2002, 14:52 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
а длина у индексов g011 и g33 какая ? И еще, почему на gd1 нет индекса ? ps Если хочется побыстрее решить, вот моя аська 48133035 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2002, 15:25 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
индекс по gd1 есть, просто я забыл про это написать. g011 char 2, g33 char 10. Аську могу поставить, но отвлекает от работы она. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2002, 15:51 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
а запросы select count(*) from do where do1.g33 like '39%' и select count(*) from de where de.gd1>'2002-01-01' and de.g011='ИМ' быстро работают и много записей получается ? >Аську могу поставить, но отвлекает от работы она. это смотря как её использовать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2002, 16:18 |
|
Кто тормозит?
|
|||
---|---|---|---|
#18+
select count(*) from do where do1.g33 like '39%' 800000 - 1.84 Сек select count(*) from de where de.gd1>'2002-01-01' and de.g011='ИМ' - 798000 - 607 сек может здесь собака порылась, но select count(*) from de where de.g011='ИМ' - 7.8 млн - сек select count(*) from de where de.gd1>'2002-01-01' - 1.5 млн -2.25 сек ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2002, 16:59 |
|
|
start [/forum/topic.php?fid=47&msg=32073253&tid=1856241]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 272ms |
total: | 419ms |
0 / 0 |