Проблемы с count, limit и offset в Postgresql
Postgresql - очень мощная база, но, она бывает тормозит там, где такая простая база, как MySQL работала быстро.
Так, например, мы столкнулись с долгим подсчетом количества строк count(*) в больших таблицах. Частично, эту проблему мы решили написанием триггеров, которые подсчитывают количество записей в таблицах в реальном режиме времени.
Но, постоянно возникает проблема с offset. Похоже, придется делать числовое поле и построить по нему индекс, чтоб выборки производить именно по индексированному полю. Но, это тоже ведь частичное решение... Ведь последовательность записей в запросе может отличаться...
Что печально, так это то, что подобные запросы буквально "летали" в MySQL...
Вот пример ссылок, где рассматриваются подобные проблемы:
http://gray-hemp.blogspot.com/2008/09/offset-limit.html
Так, например, мы столкнулись с долгим подсчетом количества строк count(*) в больших таблицах. Частично, эту проблему мы решили написанием триггеров, которые подсчитывают количество записей в таблицах в реальном режиме времени.
Но, постоянно возникает проблема с offset. Похоже, придется делать числовое поле и построить по нему индекс, чтоб выборки производить именно по индексированному полю. Но, это тоже ведь частичное решение... Ведь последовательность записей в запросе может отличаться...
Что печально, так это то, что подобные запросы буквально "летали" в MySQL...
Вот пример ссылок, где рассматриваются подобные проблемы:
http://gray-hemp.blogspot.com/2008/09/offset-limit.html
Комментарии