Подтвердить что ты не робот

Максимальный размер таблицы для базы данных MySQL

Каков максимальный размер для таблицы MySQL? Это 2 миллиона при 50 ГБ? 5 миллионов при 80 ГБ?

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

4b9b3361

Ответ 1

Я работал с очень большой (Terabyte +) базой MySQL. Самая большая таблица у нас была буквально более миллиарда строк.

Это сработало. MySQL обрабатывал данные правильно большую часть времени. Это было очень громоздко.

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

У нас было множество таблиц в диапазоне 10-100 миллионов рядов. Любое значительное присоединение к таблицам было слишком трудоемким и длилось бы вечно. Таким образом, мы написали хранимые процедуры, чтобы "ходить" по таблицам и обрабатывать соединения с диапазонами "id". Таким образом мы обрабатывали данные по 10-100 000 строк за один раз (объединение с идентификатором 1-100 000, затем 100 001-200 000 и т.д.). Это было значительно быстрее, чем соединение со всей таблицей.

Использование индексов на очень больших таблицах, которые не основаны на первичном ключе, также намного сложнее. Mysql хранит индексы в двух частях - он хранит индексы (отличные от первичного индекса) в качестве индексов к значениям первичного ключа. Таким образом, индексированные поисковые запросы выполняются в двух частях: первый MySQL переходит к индексу и извлекает из него значения первичного ключа, которые ему нужно найти, затем он выполняет второй поиск индекса первичного ключа, чтобы найти, где эти значения.

В сетке этого показателя для очень больших таблиц (1-200 млн. строк) индексирование таблиц является более ограничительным. Вам нужно меньше простых индексов. И даже простые утверждения select, которые не относятся непосредственно к индексу, никогда не возвращаются. Где предложения должны ударить по индексам или забыть об этом.

Но все, что было сказано, действительно работало. Мы смогли использовать MySQL с этими очень большими таблицами и выполнять вычисления и получать правильные ответы.

Ответ 3

О вашем первом вопросе, эффективный максимальный размер для базы данных обычно определяется операционной системой, в частности размер файла, который MySQL Server сможет создать, а не сам MySQL Server. Эти ограничения играют большую роль в ограничениях размера стола. И MyISAM работает иначе, чем InnoDB. Поэтому любые таблицы будут зависеть от этих ограничений.

Если вы используете InnoDB, у вас будет больше возможностей для управления размерами таблиц, изменение размера табличного пространства в этом случае является опцией, поэтому, если вы планируете изменить его размер, это путь. Посмотрите Полная страница.

Я не уверен, что реальное количество записей в каждой таблице дано всей необходимой информацией (ОС, тип таблицы, столбцы, тип данных и размер каждого и т.д.). И я не уверен, что эту информацию легко вычислить, но я видел простую таблицу с 1bi-регистрами в нескольких случаях, и MySQL не сдался.

Ответ 4

Смотрите http://www.clb4u.com/2013/10/scalability-and-limits-of-mysql.html

Поддержка больших баз данных. Мы используем MySQL Server с базами данных, которые содержат 50 миллионов записей. Мы также знаем пользователей, которые используют MySQL Server с 200 000 таблицами и около 5 000 000 000 строк.