Выборки без использования ключей

Запрос улучшений, интеграции с различными системами и т.д.
Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Выборки без использования ключей

Сообщение Alex Keda » 2010-07-02 14:43:02

сабж вот нашёл... потому что долго делается.

Код: Выделить всё

mysql> use host-food_bill
Database changed
mysql> SELECT `ID` FROM `Tasks` WHERE (`IsActive` = 'yes' AND `IsExecuted` = 'no' AND `ExecuteDate` < UNIX_TIMESTAMP() AND `Errors` < 5) ORDER BY `CreateDate` DESC LIMIT 0, 1;
+--------+
| ID     |
+--------+
| 147149 |
+--------+
1 row in set (3.38 sec)

mysql> explain SELECT `ID` FROM `Tasks` WHERE (`IsActive` = 'yes' AND `IsExecuted` = 'no' AND `ExecuteDate` < UNIX_TIMESTAMP() AND `Errors` < 5) ORDER BY `CreateDate` DESC LIMIT 0, 1;
+----+-------------+-------+------+---------------+------+---------+------+--------+-----------------------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows   | Extra                       |
+----+-------------+-------+------+---------------+------+---------+------+--------+-----------------------------+
|  1 | SIMPLE      | Tasks | ALL  | NULL          | NULL | NULL    | NULL | 166914 | Using where; Using filesort |
+----+-------------+-------+------+---------------+------+---------+------+--------+-----------------------------+
1 row in set (0.02 sec)

mysql>   
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Re: Выборки без использования ключей

Сообщение Alex Keda » 2010-07-08 11:19:04

а таких много....
которые без ключей.
на больших базах и когда много народу - это становится проблематично
2x2 Opteron c 12 гигами рамы - а ворочается, мягко скажем, нешустро...
Убей их всех! Бог потом рассортирует...

Виталий
Site Admin
Сообщения: 344
Зарегистрирован: 2009-10-10 0:41:16
Контактная информация:

Re: Выборки без использования ключей

Сообщение Виталий » 2010-07-08 11:40:49

Сейчас рефакторю. Думаю по мускулу надо тоже по чуть-чуть подчищать. Нет желания помочь? ;)

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Re: Выборки без использования ключей

Сообщение Alex Keda » 2010-07-08 17:23:00

есть.
могу вываливать сюда запросы котоыре нахожу, и предположения по тому куда именно надо прилепить ключи.
=========
но я не большой спец в MySQL и php - так, пописываю на досуге...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Re: Выборки без использования ключей

Сообщение Alex Keda » 2010-07-10 13:42:13

да, кстати, сабжевая выборка - 99% того что у меня в логе болтается...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Re: Выборки без использования ключей

Сообщение Alex Keda » 2010-07-10 13:48:35

Код: Выделить всё

mysql> SELECT COUNT(*) FROM Tasks;
+----------+
| COUNT(*) |
+----------+
|   145732 |
+----------+
1 row in set (1.46 sec)

mysql>     

может стоит её как-то чистить (не очень хорошая идея - мало ли чё понадобиться)
или разбивать по годам, например (более хорошая)
Убей их всех! Бог потом рассортирует...

Виталий
Site Admin
Сообщения: 344
Зарегистрирован: 2009-10-10 0:41:16
Контактная информация:

Re: Выборки без использования ключей

Сообщение Виталий » 2010-10-10 2:14:00

Полезная оказалась таска... Проанализировал запросы, добавил ключей... Кроме этого еще добавил новый кеш и немного оптимизировал другие части работы с MySQL. Генерация страницы выдавала 3.5 сек. пару часов назад, сейчас уже 1.5 секунды :-) Оптимизировал получается поболе чем в 2 раза. Есть еще над чем поработать... ;)

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Re: Выборки без использования ключей

Сообщение Alex Keda » 2010-10-10 13:37:01

эм... в общем, я тоже Лохом оказался (с большой буквы =)))
у меня муся под MyISAM жёстко затюнена оказалась.
InnoDB ворочалась, бедная, на 100 метрах рамы, что ей по дефолту отдаётся, как могла.
отдали 2 гига из 12 что на машине есть - стало значительно лучше бегать и без тюнинга биллинга =))

Век живи, век учись... Один фиг - дураком помрёшь =)
Хорошо Serge подсказал...
Убей их всех! Бог потом рассортирует...

serge
Сообщения: 171
Зарегистрирован: 2009-10-06 23:43:37
Откуда: Саратов
Контактная информация:

Re: Выборки без использования ключей

Сообщение serge » 2010-10-12 8:01:07

lissyara писал(а):Век живи, век учись... Один фиг - дураком помрёшь =)
Хорошо Serge подсказал...

:oops:
Последнее время просто часто стали попадаться сервера с тяжелыми нагруженными БД. Поэтому с innodb приходится работать ну очень часто.



Вернуться в «Запрос улучшений»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей