[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: sql запросы и нагрузка на процессор
geka96
Приветствую всех! :)
Меня давно уже мучает нагрузка на процессор..нагрузка идёт от mysqld..
В общем решил разобраться с ней раз и навсегда..сделал пару команд на сервере: OPTIMIZE и ALTER, которые за 7 месяцев кстати не разу не делал...теперь решил с запросами разобраться...скрипты писал давно и один меня смущает..в нём сразу 3 sql запроса:
INSERT INTO `'.$table_name.'` (`user_id`, `last_date`) VALUES ("'.$viewer_id.'","'.time().'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `last_date`="'.time().'";
SELECT * FROM `'.$table_name.'` WHERE `user_id`='.$viewer_id.';
SELECT COUNT(*) FROM $table_name;

когда в других всё аккуратно, по одному запросу...особенно смущает первый запрос..подскажите, влияет-ли это на нагрузку и как можно упростить/оптимизировать??!)



Спустя 1 час, 4 минуты, 26 секунд (29.02.2012 - 12:09) sergeiss написал(а):
Первый нормальный, второй нормальный.

А вот третий... Если в таблице много данных ("много" - это сотни тысяч и более smile.gif), то лучше таким образом не подсчитывать количество. Потому что запрос будет долго работать. Лучше хранить величину количества записей где-то в отдельной таблице и каждый раз при добавлении-удалении обновлять эту (одну) запись. Тогда "подсчет" количества записей будет занимать одно мгновение, т.к. реально считать ты не будешь, а только считаешь одну запись.

Спустя 2 часа, 25 минут, 32 секунды (29.02.2012 - 14:34) geka96 написал(а):
sergeiss, в базе 1.500.000 записей..и этот запрос кстати уже бесполезный..т.к. раньше когда только запускал проект нужно было узнавать общее кол-во строк, а сейчас уже не нужно..уберу его и правда очень долго работает..)) Спасибо)

Спустя 8 дней, 3 часа, 12 минут, 11 секунд (8.03.2012 - 17:46) geka96 написал(а):
Выяснил, что этот запрос:
query ='SELECT * from `'.$table_name.'` order by score desc limit 200';

Грузит процессор по полной..как его можно оптимизировать? Помогите, пожалуйста.

Спустя 3 минуты, 59 секунд (8.03.2012 - 17:50) Visman написал(а):
По полю score индекс создай.

Спустя 1 час, 2 минуты, 40 секунд (8.03.2012 - 18:53) geka96 написал(а):
Visman, спасибо! Нагрузка в 10 раз снизилась))


_____________
Пока они пьют водку и катаются на скейтах, мы строим бизнес и делаем деньги!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.