Задать вопрос

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

Допустим, есть таблица, в которой более миллиона строк, это основная таблица, к которой постоянно идут запросы
Целесообразно ли это? Стоит ли разделить ее на несколько таблиц?

А если строк будет более 10 миллионов? 100 миллионов?
  • Вопрос задан
  • 707 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 4
ruFelix
@ruFelix
Предсказание будущего по руке, таро, кофе.
Количество не играет роли.
Играет роль:
1) Влезают ли индексы в отведённую для них память.
2) Хватает ли IO на диске для записи данных.
3) Хватает ли процессора для перестройки индексов.

Соответственно когда один из этих параметров исчерпывается, производительность проседает.
Ответ написан
Комментировать
@deliro
Нельзя сказать точно. Зависит от качества RAID'а, если он вообще есть, HDD там или SSD. Также, кто знает, может у тебя там даже индексов нет? Тогда выборка из 1 миллиона зависнуть может. Что тебя останавливает от проверки на тестовых данных? Закати в таблицу 100 миллионов и тестируй. Только индексы до этого дропни, а потом создай новые.

Кстати, надеюсь, под "Стоит ли разделить ее на несколько таблиц" ты имеешь ввиду https://dev.mysql.com/doc/refman/5.5/en/partitioni...
Ответ написан
Комментировать
CodeByZen
@CodeByZen
php, js, my/mssql, sqlite, html, css, it-consult
Walt Disney почти правильно все сказал, но основа в том какие запросы.
Если таблица вида ID|VALUE и выборка делается SELECT `value` FROM tbl WHERE `id` = 123; то главное чтобы индекс на id был. И тогда уже зависимости от скорости диска, и мощности CPU. А если у тебя запрос с "тремя JOINами" то надо смотреть.
Ответ написан
Комментировать
@avikb
Нету никакого порогового значения количества строк, которое бы влияло на производительность.
Btree индексы могут быть любого размера, а сложность выборки по ним всегда будет логарифмическая и алгоритм обхода не поменяется в зависимости от количества строк.
На производительность влияют правильно созданные индексы, правильно созданные таблицы (правильно упакованные данные), правильно настроенная база (выделение ресурсов под задачи), ну и достаточность самих ресурсов (cpu/диск/память).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
ну триллиончик можно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы