Азбука/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;

Другие базы