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
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Правильная ли структура БД?
Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011
Помог: 0 раз(а)
Добрый вечер.
Есть задача создать простой сайт с очень большим количеством статей - около 2 млн. статей. Сайт самый простой без админки работающей в связке с БД. Встал вопрос правильной организации БД. Основная задача - это быстрая работа выгрузки данных из БД.
Сейчас у меня сложилась следующая структура базы данных, в итоге будет 3 таблицы в БД.
Первая таблица - categories, соетвестнно категорий статей.
postid - id статьи (связка с таблицей postid), будет стоять индекс на это поле.
text - сам текст статьи, поле будет - LONGTEXT
Таблицы все планирую по типу InnoDB
Все. Вот теперь вопрос будет ли такая структура работать быстро с 2 млн. записями? Какие будут предложения по улучшению? Главное это быстрая выборка из БД при выводе заголовкой, записей, текстов и т.д. Поделитесь свои мнением пожалуйста. Спасибо.
OrmaJever
Отправлено: 21 Мая, 2017 - 21:02:10
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
а зачем выносить тексты в отдельную таблицу?
event пишет:
Вот теперь вопрос будет ли такая структура работать быстро с 2 млн. записями?
ну ведь это всё зависит не только от структуры, но и от запроса, если выбирать 10 записей по LIKE в тексте, то это одно, а если выбирать 10 записей по id (PK) то это совсем другое. Так же это зависит от индексов, и настроек самой бд и можности сервера. И вообще, почему mysql ? я после postgres мускуль больше не перевариваю
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.