Форум → Разработка → Базы данных → Помогите со структурой небольшой базы данных.
Помогите со структурой небольшой базы данных.
-
Всем привет.
Хочу реализовать несложную вещь - на сайте рамещаются заметки, которые можно комментировать (без регистрации).
У меня идея такая - одна таблица содержит заметки, вторая таблица содержит все комментарии. В таблице комментариев есть поле, содержащее Id статьи, к которой собственно этот комментарий. И когда нам нужно вытащить все комментарии к какой-либо статье, мы просто вытаскиваем все, у которых поле "Id статьи" == тому, которое нам нужно.
Но я опасаюсь, что с разрастанием сайта это дело начнёт тормозить, ведь в одной таблице содержатся все-все комментарии ко всем статьям и вероятно начнёт со временем притормаживать поиск по этому Id статьи.
Скажите, насколько оправданы мои опасения и какие есть лучшие способы реализации этого несложного "механизма".
Спасибо! -
29 ноября 2010 г. 11:00, спустя 6 минут 17 секунд
связанные поля - проиндексировать. все что во WHERE -
29 ноября 2010 г. 11:12, спустя 11 минут 54 секунды
Примерно так как ТС описал устроены форумы. Есть накладные расходы при большом количестве коментов. Разбиение на страницы работает через LIMIT, это не бесплатная операция. Фактически сервер проматывает все записи от начала до нужной страницы. Так что опасения разумные, теоретически.
Судя по форумам, это не смертельно :) Индексы помогают.ιιlllιlllι унц-унц -
29 ноября 2010 г. 11:20, спустя 8 минут 31 секунду
Можно подробнее что вы имеете ввиду под индексированием? -
29 ноября 2010 г. 11:24, спустя 4 минуты 7 секунд
там где делаешь БД, для нужного поля указываешь PRIMARY_INDEX_UNIQUE
в твое случае INDEX -
29 ноября 2010 г. 11:44, спустя 19 минут 35 секунд
Отлично, спасибо!
У меня вот ещё была идея например когда будет больше скажем 5к статей завести ещё одну таблицу и комментарии для статей 5к - 10к записывать уже в неё (ну и так далее). И соответственно добавить if() для выбора правильной таблицы при запросе комментариев. Тогда при запросе sql будет копаться не в 10k+ записей, а только в 5k.
Только как-то это слишком через одно место получается.Спустя 90 сек.Тогда при запросе sql будет копаться не в 10k+ записей, а только в 5k.
вернее в комментариях не для 10k+ записей, а в комментариях для 5k записей -
29 ноября 2010 г. 11:44, спустя 23 секунды
комментов все равно не будет слишком много, потому я бы так не делал
Пожалуйста, авторизуйтесь, чтобы написать комментарий!