Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ПОМОГИТЕ очень тормозит запрос, очень сложно, может кто осилит из профи, спасибо
 
 автор: lrlr   (16.03.2011 в 00:59)   письмо автору
 
 

Помогите пожалуйста
есть запрос который работает очень медленно...
нужно его ускорить

вот запрос который выполняется 30 секунд

UPDATE `userlist` SET `status` = 'tested', `limit` = '0' WHERE `status` = 'works' AND (SELECT COUNT(*) FROM `visitors` WHERE `where` = `userlist`.`url` AND DATE(datetime) = ADDDATE(DATE(NOW()),-1) LIMIT 0 , 3) < 3



написал вот такой запрос упростив, но запускать боюсь
правильно ли я сделал или можно как то подругому еще сделать???


UPDATE `userlist` AS `u`
    LEFT JOIN (
        SELECT `where`, COUNT(*) AS `count`
        FROM `visitors`
        WHERE DATE(`datetime`) = ADDDATE(DATE(NOW()), -1)
        GROUP BY `where`
        ORDER BY NULL
    ) AS `v` ON `u`.`url` = `v`.`where`
SET `u`.`status` = 'tested', `u`.`limit` = '0'
WHERE `u`.`status` = 'works' AND IFNULL(`v`.`count`, 0) < 3


может есть другие варианты
база растет и все медленнее и медленнее работает...

книги читал но не помогли, там о таком ни слова нет...

  Ответить  
 
 автор: lrlr   (16.03.2011 в 02:29)   письмо автору
 
   для: lrlr   (16.03.2011 в 00:59)
 

итак...
второй запрос набрался смелости и проверил
мозг не подвел
он работает и время его выполнения 0.1 сек
напомню что первый выполнялся 30-40 сек
но вот на счет того правильно ли он в базе все обновил понять не могу потому что слишком большая база
нужен ответ на вопрос правильно ли я составил второй запрос?

прошу потратить свое время всем кто хорошо знает данную тему, потому как вопрос не детский...

  Ответить  
 
 автор: cheops   (16.03.2011 в 11:24)   письмо автору
 
   для: lrlr   (16.03.2011 в 02:29)
 

Хм... ну вроде правильно, разбирал-разбирал никаких ошибок не увидел, все вроде по делу. Только ORDER BY NULL смущает - думаете ускорит работу?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования