• Сколько максимум строк можно содержать в таблице без больших потерь скорости выборки из нее?

    @avikb
    Нету никакого порогового значения количества строк, которое бы влияло на производительность.
    Btree индексы могут быть любого размера, а сложность выборки по ним всегда будет логарифмическая и алгоритм обхода не поменяется в зависимости от количества строк.
    На производительность влияют правильно созданные индексы, правильно созданные таблицы (правильно упакованные данные), правильно настроенная база (выделение ресурсов под задачи), ну и достаточность самих ресурсов (cpu/диск/память).
    Ответ написан
    Комментировать
  • Зачем нужна нормализация БД MySQL?

    @avikb
    При разработке нормализованной или денормализованной базы размер HDD играет последнюю роль.

    В первую очередь нормализация данных нужна для устранения бардака и, как следствие, упрощения системы (уменьшение количества состояний системы), что приводит к существенному уменьшению ошибок.

    Нормализуя данные вы перекладываете часть логики проверки данных на СУБД, такие как консистентность и (частично) корректность. То есть уже на уровне вставки/изменения данных вы не можете не заполнить обязательное к заполнению поле или изменить поле в одной таблице, но забыть (или неправильно изменить) в другой (консистентность), вы не можете в поле date внести не дату, а в в поле int не int (корректность) и вы не можете удалить запись, если есть записи, которые на неё ссылаются (консистентность).

    Нормализованное состояние БД это идеальное состояние базы, денормализацию нужно делать только если без неё никак не удаётся достичь нужных результатов (при условии, что вы разбираетесь как работает СУБД, как выбираются данные, индексы, сортируются и ищутся пересечения), если для вашей системы достаточно одного сервера, то в 99% случаев денормализация данных вам совершенно не нужна и противопоказана.
    Проще говоря - если вы не знаете зачем нужна нормализация, то вам однозначно она нужна.
    Ответ написан
    Комментировать