Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Хранение данных в БД
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Хранение данных в БД

Страниц (1): [1]
 

1. PHP_Rulez - 11 Июня, 2007 - 01:14:00 - перейти к сообщению
Как лучше и быстродейственнее хранить данные в БД?
Объясните на простой структуре форума.

Можно ли сделать что-нибудь лучше?

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

 

Powered by ExBB FM 1.0 RC1