Как ускорить выборку из таблицы с миллионом записей?
Всем привет! Ребят, есть на vps база, в ней табличка q. Так вот в ней около десяти полей varchar и id autoincrement primary key.
Записей более чем миллион, на 500мб. Делаю выборку: select count(*) from q where flag = 0
Записей много, и выборка идет долго, дольше минуты или около того. Дело в vps, или тут никак не избежать такого тайминга?
UPD: SELECT * FROM q LIMIT 10
Данный запрос выполняется 10 секунд. В чем может быть дело?
миллион записей для современной техники и для современных СУБД - это ерунда.
во первых - нужен индекс на поле по которому делаете фильтрацию - то есть по полю flag
во вторых - операция count(*) в SQL вообще довольно медленная. ее следует избегать.
Сергей Валитов, пагинацию можно сделать через offset/limit
count следует избегать.
вы не обращали внимание? сейчас на сайтах зачастую сразу не показаны все ссылки на страницы, а только текущая плюс соседние. вот именно поэтому. что полный подсчет всех элементов - это долгая операция.