Леонид Каганов
 
[Most Recent Entries] [Calendar View] [Friends View]

Saturday, November 21st, 2020

    Time Event
    6:06p
    Mysql задолбало
    это перепост заметки, оригинал находится на моем сайте: https://lleo.me/dnevnik/2020/11/21

    Сервер lleo.me время от времени подтормаживает, в основном из-за Mysql. Я уже чинил всякие запросы, индексы. Вчера я страницу https://lleo.me/dnevnik/comm сильно доработал по вашим просьбам, теперь там видно, на чей коммент кто отвечал, а если на ваш, то еще и красным показывает. При этом заметил: если нажимаю ссылку «предыдущие комменты», то сервер подвисает в половине случаев уж точно. Стал разбираться и увидел сложную конструкцию. Ну, как сложную... Сильно упрощая, выглядит так:

    SELECT c.*,u.*,z.*
    FROM `comments` AS c
    JOIN `publications` AS z ON c.`num`=z.`num`
    LEFT JOIN `users` AS u ON c.`user`=u.`user`
    WHERE 1 AND c.`Time`<'1605909120' ORDER BY c.`Time` DESC LIMIT 50


    Логика проста: движок берет 50 комментариев от некого момента во времени, но к каждому нужна бы дополнительная информация из других таблиц. Поэтому пытается подсосать информацию о заметке, к которой комментарий относится (известен номер заметки), а также информацию об авторе комментария (известен его номер, хотя в базе может не оказаться). Все мыслимые индексы есть для всех таблиц.
    Read more... )

    << Previous Day 2020/11/21
    [Calendar]
    Next Day >>

авторский сайт Леонида Каганова   About LJ.Rossia.org