Азбука/mysql
Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Добавленные индексы к таблицам, запросы по которым выполнялись перебором:
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;