Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> посоветуйте как лучше 
:(
    Опции темы
DooZ
Дата 1.7.2008, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



в данный момент есть таблица
пример:

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

?

PM MAIL   Вверх
Feldmarschall
Дата 1.7.2008, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 3
Всего: 32



так и хранить
PM   Вверх
DooZ
Дата 1.7.2008, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



хорошо тогда такой вопрос
если мне надо выбрать записи по диапазону даты, типа от 1 дня до 2-х дней то как тут быть?
если делать по второму варианту (хранить все в таблице уже подсчитанным), то как быть с выборкой по времени?
PM MAIL   Вверх
Feldmarschall
Дата 1.7.2008, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 3
Всего: 32



выбирать обычным порядком.
я не понимаю этих вопросов. 
я могу понять вопрос "я сделал так-то и так-то, у меня такие-то проблемы"
но я не понимаю вопроса "я собираюсь сделать то-то, и боюсь, что возникнут проблемы"
PM   Вверх
Kesh
Дата 1.7.2008, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 15
Всего: 54



Ну, сделайте индекс по дате... Поиск будет быстрым...

Добавлено через 1 минуту и 4 секунды
Попробуйте для статуса поле bool использовать...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
DooZ
Дата 1.7.2008, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



Цитата(Feldmarschall @ 1.7.2008,  19:27)
выбирать обычным порядком.
я не понимаю этих вопросов. 
я могу понять вопрос "я сделал так-то и так-то, у меня такие-то проблемы"
но я не понимаю вопроса "я собираюсь сделать то-то, и боюсь, что возникнут проблемы"

я задаю вопросы только после того как опробывал все что мог (знал)!
PM MAIL   Вверх
Feldmarschall
Дата 1.7.2008, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 3
Всего: 32



Ну и отлично. Ответ ты получил.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.