Советы по разгрузке бд

12
N
На сайте с 06.05.2007
Offline
419
#11

Т.е. хостер вам переписал все запросы внутри вашей CMS ? почему он предлагает проверить нагрузку сейчас ?

Очевидно, он что-то втихую сделал на сервере и дополнительно отметил ваши неудачные запросы.

Кнопка вызова админа ()
M
На сайте с 16.10.2006
Offline
69
#12
необходимо заключать 702 в кавычки

Как ЭТО вообще работало? Если там varchar то надо заключать в кавычки, а если там хранятся числа, то переделай поле на int, заработает быстрее.

Раз уж тема по оптимизации... Как оптимизировать запрос SELECT COUNT(*) FROM table, а то он выполняется 60к раз в сутки? Жрет памяти неимоверное количество.

N
На сайте с 06.05.2007
Offline
419
#13
Как ЭТО вообще работало?

прекрасно работает, если админ не балуется настройкой sql_mode

maxtat:
Как оптимизировать запрос SELECT COUNT(*) FROM table, а то он выполняется 60к раз в сутки? Жрет памяти неимоверное количество.

перевести таблицу в myisam ?

dvaes
На сайте с 03.09.2007
Offline
65
#14
maxtat:
Раз уж тема по оптимизации... Как оптимизировать запрос SELECT COUNT(*) FROM table, а то он выполняется 60к раз в сутки? Жрет памяти неимоверное количество.

да кэшируйте вы это ко-во) сделайте поле в бд или в файл записывайте этот счетчик. ну и меняйте его когда ко-во поменяется)

dvaes добавил 18.04.2010 в 16:02

chemax:
SELECT * FROM `bla` where `sss`=702 and `mod`=1 ORDER BY `view` desc limit 10;
необходимо заключать 702 в кавычки. Т.к. поле типа varchar().
Иначе индекс не используется.

если в sss во всех записях число, то и в правду надо тип в инт перевести) а индекс какой у вас стоит? туда бы индекс на два-три поля с полем view. надо смотреть в эксплэйне)

totamon
На сайте с 12.05.2007
Offline
437
#15
Раз уж тема по оптимизации... Как оптимизировать запрос SELECT COUNT(*) FROM table, а то он выполняется 60к раз в сутки? Жрет памяти неимоверное количество.

SELECT COUNT(ID) FROM table

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
Dreammaker
На сайте с 20.04.2006
Offline
569
#16
totamon:
SELECT COUNT(ID) FROM table

не советуйте вредного (если касается MyISAM).

M
На сайте с 16.10.2006
Offline
69
#17

У меня и так MyISAM. COUNT(ID) уже думал о таком выходе, не поможет?

А ввести дополнительный счетчик можно попробовать. Изменять его придется только при добавлении и удалении записей, всего в двух местах в движке...

Dreammaker
На сайте с 20.04.2006
Offline
569
#18
chemax:
SELECT * FROM `bla` where `sss`=702 and `mod`=1 ORDER BY `view` desc limit 10;

Здесь можно попробовать двойной индекс по sss, mod.

CREATE INDEX bla_index ON bla(sss,mod);

Или тройной

CREATE INDEX bla_index ON bla(sss,mod,view);

Если его нет ещё.

Но точно не помню стоит ли включать поле из order by.

Dreammaker добавил 18.04.2010 в 16:55

maxtat, хоть какие-то индексы есть в таблице? По идее COUNT(*) должен быстро считать. А вообще завести счётчик или же кешировать данные - здравая идея.

N
На сайте с 06.05.2007
Offline
419
#19

maxtat, какой вопрос - такой ответ.раз тормозит, значит вы неполно объяснили задачу.

запрос "select count(*) from table" без дополнительных условий в myisam выполняется мгновенно.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий