С нами с 15.07.05
Сообщения: 1144
Рейтинг: 905
|
Добавлено: 16/03/07 в 18:27 |
Возникла проблема в том что некоторые(возможно все) запросы не проиндексированные. Отсюда идет большая нагрузка на mysql и соответсвенно на сервер.
Кто нибудь сталкивался с этой проблемой? Какой выход из этой ситуации?
Очень мало верится что такая известная программа и так коряво работает с mysql .
Огромное спасибо за ранее за помощь в этой проблеме.
|
|
|
|
С нами с 25.08.05
Сообщения: 313
Рейтинг: 231
|
Добавлено: 16/03/07 в 19:57 |
Ничего не понял )
опиши проблему поподробнее
|
|
|
|
С нами с 15.07.05
Сообщения: 1144
Рейтинг: 905
|
Добавлено: 16/03/07 в 20:18 |
При запросах делается сканирование всей таблицы вместо использования индексов
Пример:
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' ) |
этот запрос не проиндексирован
|
|
|
|
С нами с 26.06.06
Сообщения: 46
Рейтинг: 20
|
Добавлено: 16/03/07 в 20:31 |
Ну так добавь индексы.
ЗЫ: индексируют поле, а не запрос.
|
|
|
|
С нами с 01.03.06
Сообщения: 629
Рейтинг: 620
|
Добавлено: 17/03/07 в 03:24 |
как вариант - укажи жестко какие индексы мускулю использовать при выполнении данного запроса - т.к. не всегда бд выбирает оптимальный вариант и иногда все же запутывается при построении плана... но имхо переборы в данном запросе всерано будет - не всей таблицы конечно - но будет...
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 17/03/07 в 07:22 |
Bross писал: | Возникла проблема в том что некоторые(возможно все) запросы не проиндексированные. Отсюда идет большая нагрузка на mysql и соответсвенно на сервер.
Кто нибудь сталкивался с этой проблемой? Какой выход из этой ситуации?
Очень мало верится что такая известная программа и так коряво работает с mysql .
Огромное спасибо за ранее за помощь в этой проблеме. |
Во-первых ты пишешь бред, а выход оптимизровать запросы и выставить правильные индексы для этих запросов.
|
|
|
|
С нами с 29.12.06
Сообщения: 62
Рейтинг: 84
|
Добавлено: 17/03/07 в 19:24 |
Все (как всегда) просто)
1. юзай mysqladmin processlist или mytop, ищи запросы которые грузят.
2. по найденным запросам ЕСЛИ это селекты к примеру, смотри что там в запросе идет после where, потом
show indexes from TABLE;
смотриш есть ли этот индекс, если нет - создаешь
create index INDEX_NAME on TABLE(FIELD1,FIELD2);
если это инсерты, то наоборот - ищи лишние индексы, т.к. нужно перестраивать табицу индексов при каждом инсерте, и дропай.
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 18/03/07 в 12:32 |
можно и не дропать, а сделать например для myisam :
Цитата: | REPAIR TABLE table QUICK |
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 18/03/07 в 14:59 |
Эту известную супер софтину писали какие то бля индийские студенты недоделаные. Неудивительно что она глючит, в ней куча дырок и вообще взлом phpadsnew это вопрос времени.
По теме сабжа - подобные запросы нужно индексировать в индивидуальном порядке, т.к. предусмотреть все варианты WHERE нельзя в этом случае.
Включай slow query log или лог запросов без индексов и шамань.
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |