Работаю с php+mysql.
Нужно выбирать записи из БД за определенный промежуток времени (с даты - по дату). Причем выводить каждую n-нную запись.
В среднем выводится 100.000 записей.
Раньше было заранее известно какую по счету запись выводить. например, каждую вторую.
$mysqli_request="SELECT * FROM `table` WHERE `time`>'$my_time' AND id % 2 = 1";
Сейчас не известно.
И чтобы узнать, мне нужно узнать количество записей за выбранный промежуток времени. И только потом выбрать нужные мне данные.
//Сколько существует записей в БД за этот промежуток времени?
$mysqli_request="SELECT `id` FROM `table` WHERE `time`>'$my_time'"; //Нам всё не надо, достаточно ведь id?
$mysqli_result=$mysqli->query($mysqli_request) or die ($mysqli->error);
$num_rows = $mysqli_result->num_rows; //Кол-во строк т.е. записей за промежуток времени
$every_rec=1;
//Если больше 100 - выбираем каждую вторую
if ($num_rows>100 ) $every_rec=2;
$mysqli_request="SELECT * FROM `table` WHERE `time`>'$my_time' AND id % $every_rec = 1";
...
Будет ли изменение нагрузки на БД и сайт в связи с данным изменением?
Есть ли лучший способ или запрос, наименее нагружающий БД?