Как лучше и быстродейственнее хранить данные в БД?
Объясните на простой структуре форума.
Можно ли сделать что-нибудь лучше?
//таблица форумов
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.. тысяч постов. может я применяю неверный способ хранения?
Какую структуру предложилди бы вы?
1. PHP_Rulez - 11 Июня, 2007 - 01:14:00 - перейти к сообщению
2. Viper - 13 Июня, 2007 - 08:26:32 - перейти к сообщению
SELECT * FROM `post` WHERE `topic`='3' вместо выборки всего лучше задать конкретные стобцы. быстрее раз в n будет даже при 50000 строк
3. EuGen - 26 Июня, 2007 - 12:51:13 - перейти к сообщению
Судя по всему, Ваша структура отвечает сильно нормализованной БД. А может, чтобы увеличить быстродействие, Вам стоит ее сознательно денормализовать? - то есть какие либо данные дублировать (до какой степени - это компромисс между скоростью и целостностью). Однако, при огромных объемах данных денормализация может заметно увеличить размер БД.