Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: База MySQL в скрипте PhpAdsNew и индексы
цитата
16/03/07 в 18:27
 Bross
Возникла проблема в том что некоторые(возможно все) запросы не проиндексированные. Отсюда идет большая нагрузка на mysql и соответсвенно на сервер.

Кто нибудь сталкивался с этой проблемой? Какой выход из этой ситуации?

Очень мало верится что такая известная программа и так коряво работает с mysql .

Огромное спасибо за ранее за помощь в этой проблеме.
цитата
16/03/07 в 19:57
 tranzza
Ничего не понял )
опиши проблему поподробнее
цитата
16/03/07 в 20:18
 Bross
При запросах делается сканирование всей таблицы вместо использования индексов

Пример:

SELECT
phpads_banners.bannerid as bannerid,
phpads_banners.clientid as clientid,
phpads_banners.priority as priority,
phpads_banners.contenttype as contenttype,
phpads_banners.storagetype as storagetype,
phpads_banners.width as width,
phpads_banners.height as height,
phpads_banners.block as block,
phpads_banners.capping as capping,
phpads_banners.compiledlimitation as compiledlimitation
FROM
phpads_banners
WHERE
phpads_banners.priority > 0 AND phpads_banners.width = 200 AND phpads_banners.height = 150 AND phpads_banners.storagetype <> 'txt' AND ( phpads_banners.clientid='276' OR phpads_banners.clientid='279' OR phpads_banners.clientid='278' OR phpads_banners.clientid='280' OR phpads_banners.clientid='274' OR phpads_banners.clientid='275' OR phpads_banners.clientid='271' OR phpads_banners.clientid='272' OR phpads_banners.clientid='284' OR
phpads_banners.clientid='299' OR phpads_banners.clientid='335' OR phpads_banners.clientid='337' ) |

этот запрос не проиндексирован
цитата
16/03/07 в 20:31
 Wan
Ну так добавь индексы.
ЗЫ: индексируют поле, а не запрос.
цитата
17/03/07 в 03:24
 Heavy
как вариант - укажи жестко какие индексы мускулю использовать при выполнении данного запроса - т.к. не всегда бд выбирает оптимальный вариант и иногда все же запутывается при построении плана... но имхо переборы в данном запросе всерано будет - не всей таблицы конечно - но будет...
цитата
17/03/07 в 07:22
 xreload
Bross писал:
Возникла проблема в том что некоторые(возможно все) запросы не проиндексированные. Отсюда идет большая нагрузка на mysql и соответсвенно на сервер.

Кто нибудь сталкивался с этой проблемой? Какой выход из этой ситуации?

Очень мало верится что такая известная программа и так коряво работает с mysql .

Огромное спасибо за ранее за помощь в этой проблеме.


Во-первых ты пишешь бред, а выход оптимизровать запросы и выставить правильные индексы для этих запросов.
цитата
17/03/07 в 19:24
 Petroff
Все (как всегда) просто)
1. юзай mysqladmin processlist или mytop, ищи запросы которые грузят.
2. по найденным запросам ЕСЛИ это селекты к примеру, смотри что там в запросе идет после where, потом
show indexes from TABLE;
смотриш есть ли этот индекс, если нет - создаешь
create index INDEX_NAME on TABLE(FIELD1,FIELD2);
если это инсерты, то наоборот - ищи лишние индексы, т.к. нужно перестраивать табицу индексов при каждом инсерте, и дропай.
цитата
18/03/07 в 12:32
 xreload
можно и не дропать, а сделать например для myisam :

Цитата:
REPAIR TABLE table QUICK
цитата
18/03/07 в 14:59
 Pentarh
Эту известную супер софтину писали какие то бля индийские студенты недоделаные. Неудивительно что она глючит, в ней куча дырок и вообще взлом phpadsnew это вопрос времени.

По теме сабжа - подобные запросы нужно индексировать в индивидуальном порядке, т.к. предусмотреть все варианты WHERE нельзя в этом случае.

Включай slow query log или лог запросов без индексов и шамань.


Эта страница в полной версии