Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Хранение текста отдельно или вместе с остальными данными

86K
15 января 2013 года
new_saler
3 / / 15.01.2013
Пишу форум.
Есть таблица сообщений POSTS: id_post, id_topic, id_poster, name_poster, date_time_post, post_text.
Вопрос на счет хранения текста поста в таблице POSTS.
Заранее хочу оптимизировать структуру БД под довольно большую нагрузку: 5-8 млн. сообщений, 300-500 тыс. тем, 30-50 тыс. хостов в день и около 200-300 тыс. просмотров в день. В онлайне постоянно 300-800 человек.

У данного поля post_text будет индекс FULLTEXT. Не лучше ли будет хранить текст постов в отдельной таблице, где будет id_post и post_text?

До этого в книге прочитал, что из-за наличия большого текстового поля в таблице и индекса FULLTEXT на нем может снижаться скорость доступа к таблице, а ведь при заданной мной нагрузке из таблицы POSTS будут постоянно выбираться посты когда пользователь запрашивает данные при просмотре темы.
А так же будут постоянно добавляться новые посты – не замедлит ли индекс FULLTEXT добавление данных (ведь, если я не ошибаюсь, при добавлении будет перестраиваться индекс для всей этой огромной таблицы.)

Не лучше ли будет выбрать id поста из таблицы POSTS а потом join-ом присоединить текст поста к данной выборке из отдельной таблицы или лишний join в данном случае тоже зло?

P.s. Смотрел структуру таблиц других форумов: в phpBB2 текст хранится в отдельной таблице (индекса FULLTEXT нет вообще), в phpBB3 текст и остальные данные поста хранятся в одной таблице (индекса FULLTEXT нет вообще); в IP Board текст и остальные данные поста хранятся в одной таблице (на поле post_text индекс FULLTEXT !)...
8
15 января 2013 года
mfender
3.5K / / 15.06.2005
Ну ясный-красный лучше в отдельной таблице хранить. Только о целостности данных позаботиться.
86K
21 января 2013 года
new_saler
3 / / 15.01.2013
Вот что сам в нете нашел на эту тему:
Цитата:

А: У меня таблица на 5Гбайт, скорость извлечения по целочисленному ключу зависит только от числа строк (коих около 2 млн). От наличия текста - не зависит.
Б: Вы имели ввиду, что скорость зависит лишь от числа строк, но не от количества гигов таблицы?
А: Именно так. А так - да, когда-то и сам разносил тексты в отдельную таблицу...
Но это только лишняя нагрузка в виде лишнего JOIN при выборке. А пользы никакой. По крайней мере в моём случае (БД сообщений форума).


Так где же истина??

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог