Показывать записи из БД в определенный промежуток времени

Рейтинг: 0Ответов: 1Опубликовано: 24.02.2015

Всем привет.

Такой вопрос назрел. Как лучше реализовать отображение записей из БД (MySQL) в определенный промежуток времени?

Пока вижу так, что завести две колонки tome_from и time_to и потом уже получать текущее время сервера(PHP) и делать выборку меж этими полями.

Но вопрос в том, как сделать так, чтобы при большом количестве данных, это все не тормозило. + к этому, ограничений по времени может не быть. т.е. показ будет с 0 часов и до 0 часов.

Буду благодарен за советы.

Ответы

▲ 1Принят

Для ускорения выборки поля лучше проиндексировать. Как я понял у Вас там только целые числа будут в диапазоне от 0 до 23. Поэтому (сейчас меня наверное тапочками закидают) я бы тип данных поставил TINYINT 3 UNSIGNED. Меньше памяти займет буфер при выборке. Далее предлагают проиндексировать. Разумно. Но у этого индекса будет низкая селективность, т.к. разброс значений небольшой на 100к записей. Тем более что в некоторой части записей будет вообще 0 стоять. Но даже если проиндексировать, то стоит задаться вопросом, а не сделать ли составной индекс по двум полям (KEY (time_from, time_to)). Для этого нужно задаться вопросом будут ли выборки отдельно по полю time_to. Если будут и их кол-во достаточное большое, то нужно сделать 2 индекса. Составной KEY(time_from, time_to) и отдельно на поле KEY(time_to).