Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2007
Помог: 0 раз(а)
Как лучше и быстродейственнее хранить данные в БД?
Объясните на простой структуре форума.
Можно ли сделать что-нибудь лучше?
//таблица форумов
id
name
//таблица разделов
id
name
forum
//таблица тем
id
name
forum
section
//посты
id
name
forum
section
topic
post
user
time
каждый раз допустим открывая тему происходит запрос к БД
SELECT * FROM `post` WHERE `topic`='3'
когда постов очень много mysql приходится находить те посты по одной единственной теме из 10.50.100.. тысяч постов. может я применяю неверный способ хранения?
Какую структуру предложилди бы вы?
Viper
Отправлено: 13 Июня, 2007 - 08:26:32
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
SELECT * FROM `post` WHERE `topic`='3' вместо выборки всего лучше задать конкретные стобцы. быстрее раз в n будет даже при 50000 строк
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Судя по всему, Ваша структура отвечает сильно нормализованной БД. А может, чтобы увеличить быстродействие, Вам стоит ее сознательно денормализовать? - то есть какие либо данные дублировать (до какой степени - это компромисс между скоростью и целостностью). Однако, при огромных объемах данных денормализация может заметно увеличить размер БД.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.