|
|
|
Как победить fileSort ?
|
|||
|---|---|---|---|
|
#18+
Ей богу толи руки кривые, толи лыжи не едут, берем простейшую таблицу Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. В logTime и regTime хранится 4294967295 - time(). Было сделано в надежде убить DESC в Order By. Делаем простейший запрос Код: plaintext использует filesort id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE usersStats ALL NULL NULL NULL NULL 2350 Using filesort медленно офигеваем и делаем запрос по первичному ключу Код: plaintext и видим id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE usersStats ALL NULL NULL NULL NULL 2350 Using filesort Данные в таблице 23 500 записей, uid уникальный auto_inc, logTime время регистрации за 3 месяца ... mySql 3.23 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 12:07:39 |
|
||
|
Как победить fileSort ?
|
|||
|---|---|---|---|
|
#18+
Увеличь кеш ключей. параметр key_buffer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:32:49 |
|
||
|
Как победить fileSort ?
|
|||
|---|---|---|---|
|
#18+
Валентин КУвеличь кеш ключей. параметр key_buffer Установил параметры Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. тот же запрос Код: plaintext все тот же косяк id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE usersStats ALL NULL NULL NULL NULL 2350 Using filesort вот еще данный может в них косяк Код: plaintext 1. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 15:15:15 |
|
||
|
Как победить fileSort ?
|
|||
|---|---|---|---|
|
#18+
OPTIMIZE TABLE `usersStats`;? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 15:18:47 |
|
||
|
Как победить fileSort ?
|
|||
|---|---|---|---|
|
#18+
сделал CHECK TABLE `usersStats` ANALYZE TABLE `usersStats` REPAIR TABLE `usersStats` OPTIMIZE TABLE `usersStats` FLUSH TABLE `usersStats` запрос Код: plaintext отклик id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE usersStats ALL NULL NULL NULL NULL 2350 Using filesort млин, я скоро ноги протяну с этим filesort ом:) PS: локальная копия MySQL 4.1.8-max, что будет творится на mysql 3.23 хостинга вообще страшно представить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 15:26:37 |
|
||
|
Как победить fileSort ?
|
|||
|---|---|---|---|
|
#18+
MegaTron id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE usersStats ALL NULL NULL NULL NULL 2350 Using filesort Ага, сразу не заметил, для сортировки 2350 записей вполне возможно, что MySQL не будет использовать индекс :) сильно трудоемко, легче отсортировать в буфере в памяти, что скорее всего и происходит. Когда сильно мало записей - тогда сервер быстрее отсортирует напрямую, тем более, что запрос типа select * берет все данные таблицы... а что очень долго этот запрос работает? дольше 0,02с ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 18:53:02 |
|
||
|
Как победить fileSort ?
|
|||
|---|---|---|---|
|
#18+
не, я все понимаю, но зачем Вам все 23 500 записей сразу? :) тихо подозреваю - если добавите ограничение на выборку по этому полю, то сразу все получится! ;) -- Dmitry ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 18:56:43 |
|
||
|
Как победить fileSort ?
|
|||
|---|---|---|---|
|
#18+
Dinkyне, я все понимаю, но зачем Вам все 23 500 записей сразу? :) тихо подозреваю - если добавите ограничение на выборку по этому полю, то сразу все получится! ;) Dmitry Спасибо!!! Действительно запрос вида: Код: plaintext делает все как надо: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE usersStats index NULL logTime 4 NULL 21150 У меня же все руки не доходили до последнего замечания, в доке про то что если будет выбиратся более 30% записей то mysql забудет про индексы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 19:18:34 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33485309&tid=1853161]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
93ms |
get topic data: |
17ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
6ms |
| others: | 230ms |
| total: | 457ms |

| 0 / 0 |
