Всем привет. Прошу сильно не пинать если будет путаница в терминах, т.к. опыт работы с базами не очен велик.
В общем ситуация такая. Имеется обычный виртуальный хостинг, с обычной базой данных MySQL, используемый движок MyISAM. Есть код с таким запросом для вывода новости:
сразу же после этого запроса идёт следующий запрос на обновление счётчика просмотров этой новости:
Но на днях я наткнулся на целую серию статей, в которых говорится о том, что такое построение запросов на вывод и на обновление счётчика категорически не верное. Настоятельно рекомендуют счётчик просмотров вести в отдельной таблице, т.к. при обновлении счётчика происходит блокировка всей таблицы. И т.к. у меня постоянно роботы яндекса и гугла просто живут на сайте и новости влетают в индекс буквально за час, плюс просмотр самими посетителями, то можно сделать вывод, что каждый раз происходит небольшое торможение при выводе содержания новости из-за того, что кто-то уже её в этот момент просматривает и происходит обновление счётчика. Может оно и не заметно, но всё же мысли такие летают. Однако во всех этих статьях почему-то не говорят о движке базы данных и мне стало очень интересно действительно ли происходит блокировка базы именно на движке MyISAM и правильный ли совет по ведению счётчика в отдельной таблице?
В общем ситуация такая. Имеется обычный виртуальный хостинг, с обычной базой данных MySQL, используемый движок MyISAM. Есть код с таким запросом для вывода новости:
Код |
---|
SELECT * FROM news_table WHERE news_id = '12345' |
сразу же после этого запроса идёт следующий запрос на обновление счётчика просмотров этой новости:
Код |
---|
UPDATE news_table SET news_view = news_view + 1 WHERE news_id = '12345' |
Но на днях я наткнулся на целую серию статей, в которых говорится о том, что такое построение запросов на вывод и на обновление счётчика категорически не верное. Настоятельно рекомендуют счётчик просмотров вести в отдельной таблице, т.к. при обновлении счётчика происходит блокировка всей таблицы. И т.к. у меня постоянно роботы яндекса и гугла просто живут на сайте и новости влетают в индекс буквально за час, плюс просмотр самими посетителями, то можно сделать вывод, что каждый раз происходит небольшое торможение при выводе содержания новости из-за того, что кто-то уже её в этот момент просматривает и происходит обновление счётчика. Может оно и не заметно, но всё же мысли такие летают. Однако во всех этих статьях почему-то не говорят о движке базы данных и мне стало очень интересно действительно ли происходит блокировка базы именно на движке MyISAM и правильный ли совет по ведению счётчика в отдельной таблице?