Максимальное количество записей в таблице базы данных MySQL

Каков верхний предел записей для таблицы базы данных MySQL. Мне интересно о области автоинкремента. Что произойдет, если я добавлю миллионы записей? Как справиться с такими ситуациями? спасибо!

Ответ 1

Типы mysql int могут выполнять довольно много строк: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

unsigned int наибольшее значение 4,294,967,295
unsigned bigint наибольшее значение 18,446,744,073,709,551,615

Ответ 2

Наибольшее значение целого имеет мало общего с максимальным количеством строк, которые вы можете сохранить в таблице.

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

Существуют и другие ограничения на размер таблицы, кроме количества строк. Например, вы можете использовать операционную систему с ограничением размера файла. Или у вас может быть жесткий диск на 300 ГБ, который может хранить только 300 миллионов строк, если каждая строка имеет размер 1 КБ.

Пределы размера базы данных действительно высоки:

http://dev.mysql.com/doc/refman/5.1/en/source-configuration-options.html

Механизм хранения MyISAM поддерживает 2 32 строки на таблицу, но вы можете собрать MySQL с параметром --with-big-tables чтобы он поддерживал до 2 64 строк на таблицу.

http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html

Кажется, что механизм хранения InnoDB не имеет ограничения на количество строк, но он имеет ограничение на размер таблицы 64 терабайта. Сколько строк вписывается в это зависит от размера каждой строки.

Ответ 3

Я предлагаю, никогда не удаляю данные. Не говорите, если таблицы длиннее 1000 обрезают конец таблицы. В вашем плане должна быть реальная бизнес-логика, как долго этот пользователь неактивен. Например, если это длиннее 1 года, то поместите их в другую таблицу. Это может случиться еженедельно или ежемесячно в сервисе script в середине медленного времени.

Когда вы столкнулись со многими строками в своей таблице, вы должны начать обкалывать таблицы или разбивать на разделы и ставить старые данные в старые таблицы по годам, такие как users_2011_jan, users_2011_feb или использовать числа за месяц. Затем измените свое программирование для работы с этой моделью. Возможно, создайте новую таблицу с меньшей информацией, чтобы суммировать данные в меньших столбцах, а затем ссылаться только на большие секционированные таблицы, когда вам нужна дополнительная информация, например, когда пользователь просматривает свой профиль. Все это следует рассматривать очень тщательно, поэтому в будущем это не слишком дорого для повторного фактора. Вы также можете разместить только пользователей, которые постоянно появляются на вашем сайте в одной таблице, и пользователей, которые никогда не входят в архивированный набор таблиц.

Ответ 4

В InnoDB с ограничением на размер таблицы в 64 терабайта и предел размера строк в MySQL 65 535 может быть 1 073 741 824 строки. Это будет минимальное количество записей, использующих максимальный предел размера строки. Однако, если размер строки меньше., Можно добавить больше записей.

Ответ 5

Согласно разделу "Масштабируемость и ограничения" в http://dev.mysql.com/doc/refman/5.6/en/features.html, Поддержка MySQL для больших баз данных. Они используют MySQL Server с базами данных, которые содержат 50 миллионов записей. Некоторые пользователи используют MySQL Server с 200 000 таблицами и около 5 000 000 000 строк.

Ответ 6

Ограничения размера строки

The maximum row size for a given table is determined by several factors:
  • Внутреннее представление таблицы MySQL имеет максимальный размер строки предел в 65535 байт, даже если механизм хранения способен поддерживая большие ряды. Столбцы BLOB и TEXT включают только от 9 до 12 байт к пределу размера строки, поскольку их содержимое сохраняется отдельно от остальной части строки.

  • Максимальный размер строки для таблицы InnoDB, которая применяется к данным хранящийся локально на странице базы данных, немного меньше половины страницы. Например, максимальный размер строки немного меньше 8 КБ для размера страницы по умолчанию 16 КБ InnoDB, который определяется параметром конфигурации innodb_page_size. " Ограничения на таблицах InnoDB".

  • Если строка, содержащая столбцы переменной длины, превышает максимальный размер строки InnoDB, InnoDB выбирает столбцы переменной длины для внешнего внестраничного хранилища, пока строка не будет соответствовать пределу размера строки InnoDB. Объем данных, хранящихся локально для столбцов переменной длины, которые сохраненная внестраничная версия отличается по строкам. Для получения дополнительной информации см. " Строковые хранилища и строковые форматы InnoDB".
  • В разных форматах хранения используются разные количества заголовков страниц и трейлеров, что влияет на объем хранилища, доступный для строк.

Ответ 7

Ссылка http://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html

Ограничения размера строки

Максимальный размер строки для данной таблицы определяется несколькими факторами:

Внутреннее представление таблицы MySQL имеет максимальный предел размера строки 65535 байт, даже если механизм хранения способен поддерживать более крупные строки. Столбцы BLOB и TEXT вносят только от 9 до 12 байт к пределу размера строки, потому что их содержимое хранится отдельно от остальной части строки.

Максимальный размер строки для таблицы InnoDB, которая применяется к данным, хранящимся локально на странице базы данных, составляет чуть меньше половины страницы для 4KB, 8KB, 16KB и 32KB параметров innodb_page_size. Например, максимальный размер строки немного меньше, чем 8 КБ для размера страницы по умолчанию 16 КБ InnoDB. Для страниц размером 64 КБ максимальный размер строки немного меньше 16 КБ. См. Раздел 15.8.8, "Ограничения на таблицах InnoDB".

Если строка, содержащая столбцы переменной длины, превышает максимальный размер строки InnoDB, InnoDB выбирает столбцы переменной длины для внешнего внестраничного хранилища, пока строка не будет соответствовать пределу размера строки InnoDB. Объем данных, хранящихся локально для столбцов переменной длины, которые хранятся за пределами страницы, отличается по строкам. Для получения дополнительной информации см. Раздел 15.11 "Форматы хранения строк и строк в InnoDB".

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

Информацию о форматах строк InnoDB см. в Разделе 15.11 "Форматы хранения строк и строк в InnoDB" и Раздел 15.8.3 "Физическая структура строк в таблицах InnoDB".

Информацию о форматах хранения MyISAM см. в Разделе 16.2.3, "Форматы хранения таблиц MyISAM".

http://dev.mysql.com/doc/refman/5.7/en/innodb-restrictions.html

Ответ 8

Это зависит только от вашей свободной памяти и максимального размера файла системы. Нет ограничений. Но это не значит, что вы не должны принимать меры предосторожности при решении проблемы использования памяти в своей базе данных. Всегда создавайте script, который может удалять строки, которые не используются, или которые будут содержать полное количество строк в пределах определенной фигуры, скажем тысячу.

Ответ 9

Нет предела. Это зависит только от вашей свободной памяти и максимального размера файла системы. Но это не значит, что вы не должны принимать меры предосторожности при решении проблемы использования памяти в своей базе данных. Всегда создавайте script, который может удалять строки, которые не используются, или которые будут содержать полное количество строк в пределах определенной фигуры, скажем тысячу.