| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > посоветуйте как лучше |
| Автор: DooZ 1.7.2008, 18:48 |
| в данный момент есть таблица пример: CREATE TABLE text ( id int unsigned auto_increment primary key, text longtext not null, status enum('inactive', 'active') not null default 'inactive', rating int not null default 0, index (status, rating) ); записей как пример 40.000 делается запрос select count(*) from text where status='active' and rating>1 выполняется 0.0134 секунды это очень долго данный запрос я показал как пример в таблице могут быть такие данные как дата создания записи и выбор будет включать ее что еще более увеличит время запроса посоветуйте как хранить данные? если в двух словах то например сайт: digg.com есть навигация внизу по страницам так же есть фильтра типа показать за 7 дней записи, за месяц и т.д. исходя из этого в базе подсчитывается кол-во элементов подходящие под запрос и формируется навигация (для навигации надо знать точное кол-во записей удовлетворяющему условию) так вот вопрос как лучше хранить данные в базе о точном кол-ве всех записей которые удовлетворяют нужному условию? типа: записей которым 7 дней = 10.000 записей которым 2 дня = 12.000 записей которые не активные (status = inactive) = 3000 записей у которых рейтинг 5 = 1000 ? |
| Автор: Feldmarschall 1.7.2008, 19:01 |
| так и хранить |
| Автор: DooZ 1.7.2008, 19:12 |
| хорошо тогда такой вопрос если мне надо выбрать записи по диапазону даты, типа от 1 дня до 2-х дней то как тут быть? если делать по второму варианту (хранить все в таблице уже подсчитанным), то как быть с выборкой по времени? |
| Автор: Feldmarschall 1.7.2008, 19:27 |
| выбирать обычным порядком. я не понимаю этих вопросов. я могу понять вопрос "я сделал так-то и так-то, у меня такие-то проблемы" но я не понимаю вопроса "я собираюсь сделать то-то, и боюсь, что возникнут проблемы" |
| Автор: Kesh 1.7.2008, 19:40 |
| Ну, сделайте индекс по дате... Поиск будет быстрым... Добавлено через 1 минуту и 4 секунды Попробуйте для статуса поле bool использовать... |
| Автор: DooZ 1.7.2008, 19:55 | ||
я задаю вопросы только после того как опробывал все что мог (знал)! |
| Автор: Feldmarschall 1.7.2008, 20:06 |
| Ну и отлично. Ответ ты получил. |