Азбука/mysql: различия между версиями
Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
(Новая страница: «Добавленные индексы к таблицам, запросы по которым выполнялись перебором: == azbyka_znakomstv == …») |
|||
Строка 36: | Строка 36: | ||
=== Оставшиеся проблемы === | === Оставшиеся проблемы === | ||
<pre> | <pre> | ||
Запрос, не использующий индексы: | |||
SELECT * FROM a_dnevnik_comments WHERE did='61440' AND aid=1101990 ORDER BY id | |||
Ему ничего не помогает (С SELECT MY_SQL_NOCACHE выполняется 1.5-2 сек) | Ему ничего не помогает (С SELECT MY_SQL_NOCACHE выполняется 1.5-2 сек) | ||
SELECT * FROM a_dnevnik_comments GROUP BY did ORDER BY data DESC LIMIT 0, 20 | SELECT * FROM a_dnevnik_comments GROUP BY did ORDER BY data DESC LIMIT 0, 20 | ||
Строка 43: | Строка 47: | ||
Не использует индекс | Не использует индекс | ||
DELETE FROM a_podarki WHERE uid='Array' OR fromid='62791'; | DELETE FROM a_podarki WHERE uid='Array' OR fromid='62791'; | ||
( | (мне кажется, в запросе ошибка при заполнении сравнения с uid) | ||
возможно запрос с ошибкой: | возможно запрос с ошибкой: | ||
Строка 49: | Строка 53: | ||
</pre> | </pre> | ||
== azbyka_parkhomen == | == azbyka_parkhomen == |
Версия 21:02, 17 июля 2013
Добавленные индексы к таблицам, запросы по которым выполнялись перебором:
azbyka_znakomstv
Потребовался отдельный индекс к data SELECT * FROM a_dnevnik_comments GROUP BY did ORDER BY data DESC LIMIT 0,30; userid: DELETE FROM `vb_session` WHERE `userid` = 24081; up & data: SELECT * FROM a_dnevnik ORDER BY up DESC, data DESC LIMIT 0,20; Добавлен uid: SELECT count(*) FROM a_stat WHERE uid='64346'; Не помогает: lastactivity (возможно, слишком мало строк для этого): DELETE FROM `vb_session` WHERE `lastactivity` < 1373826260; toid: SELECT * FROM a_prim WHERE moder > 0 AND toid = '69518'; ignorid: SELECT userid FROM a_users_ignored WHERE ignorid=62227; toid: SELECT * FROM a_logs WHERE toid='59169'; enabled: SELECT COUNT(*) FROM a_users WHERE enabled=1
Оставшиеся проблемы
Запрос, не использующий индексы: SELECT * FROM a_dnevnik_comments WHERE did='61440' AND aid=1101990 ORDER BY id Ему ничего не помогает (С SELECT MY_SQL_NOCACHE выполняется 1.5-2 сек) SELECT * FROM a_dnevnik_comments GROUP BY did ORDER BY data DESC LIMIT 0, 20 SELECT COUNT(DISTINCT did) FROM a_dnevnik_comments; Не использует индекс DELETE FROM a_podarki WHERE uid='Array' OR fromid='62791'; (мне кажется, в запросе ошибка при заполнении сравнения с uid) возможно запрос с ошибкой: SELECT * FROM a_dnevnik_subscribe WHERE did='67213' AND '27197';
azbyka_parkhomen
добавлен prior: SELECT * FROM `fotor` WHERE reportid=221 ORDER BY prior LIMIT 0,1; и reportid: SELECT * FROM `fotor` WHERE `visible`=1 AND `reportid`=46 ORDER BY prior;