MySQL →
Mysql кто быстрее и кто лучше?
Делал пейджинг и столкнулся с такой проблемой. Необходимо было выбирать записи с лимитом и узнавать количество записей без лимита, для того что бы высчитывать потом количество страниц.
Мнения разошлись в с сторону выполенения дополнительного запроса count(*), например,
SELECT * FROM tbl_name WHERE id > 100 LIMIT 0, 10;
SELECT count(*) FROM tbl_name WHERE id > 100;
и доп запроса на определение количества строк без каунта, например,
SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name id > 100 LIMIT 0, 10;
SELECT FOUND_ROWS();
Первый способ работает быстрее, несмотря на то, что во втором способе при втором запросе обращения к БД не происходит, но я остановился на втором, т.к.
1. Нет необходимости следить за двумя запросами одновременно. Когда запросы обрастают условиями, становится очень геморно следить за ними двумя.
2. Опять же, первый способ работает быстрее при простых запросах, а если там будет 3-5 джойнов и куча условий?
Мнения разошлись в с сторону выполенения дополнительного запроса count(*), например,
SELECT * FROM tbl_name WHERE id > 100 LIMIT 0, 10;
SELECT count(*) FROM tbl_name WHERE id > 100;
и доп запроса на определение количества строк без каунта, например,
SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name id > 100 LIMIT 0, 10;
SELECT FOUND_ROWS();
Первый способ работает быстрее, несмотря на то, что во втором способе при втором запросе обращения к БД не происходит, но я остановился на втором, т.к.
1. Нет необходимости следить за двумя запросами одновременно. Когда запросы обрастают условиями, становится очень геморно следить за ними двумя.
2. Опять же, первый способ работает быстрее при простых запросах, а если там будет 3-5 джойнов и куча условий?



Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.