Максимальное количество записей в таблице базы данных MySQL
Каков верхний предел записей для таблицы базы данных MySQL. Мне интересно о области автоинкремента. Что произойдет, если я добавлю миллионы записей? Как справиться с такими ситуациями? Спасибо!
- Вставка онлайн-изображения в Excel с помощью VBA
- Динамически создавать столбцы для кросс-таблицы в PostgreSQL
- Динамическая сводная таблица MySQL
- Альтернативные реализации виртуального механизма?
- Запрос Mysql для динамического преобразования строк в столбцы на основе двух столбцов
- hash-функция для строки
- Как применить стиль ко всем кнопкам приложения для Android
- Адрес печати виртуальной функции-члена
Типы 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
bigint
Наибольшее значение целого числа имеет мало общего с максимальным количеством строк, которое вы можете хранить в таблице.
Это правда, что если вы используете int или bigint в качестве основного ключа, вы можете иметь только столько строк, сколько количество уникальных значений в типе данных вашего первичного ключа, но вам не нужно делать ваш первичный ключ целым числом , вы можете сделать его CHAR (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 терабайта. Количество строк в этом зависит от размера каждой строки.
Я предлагаю, никогда не удалять данные. Не говорите, если таблицы длиннее 1000 обрезают конец таблицы. В вашем плане должна быть реальная бизнес-логика, как долго этот пользователь неактивен. Например, если это длиннее 1 года, то поместите их в другую таблицу. Это может происходить еженедельно или ежемесячно в сценарии обслуживания в середине медленного времени.
Когда вы сталкиваетесь со многими строками в своей таблице, вы должны начать разметку таблиц или разделение и поместить старые данные в старые таблицы по годам, такие как users_2011_jan, users_2011_feb или использовать числа за месяц. Затем измените свое программирование для работы с этой моделью. Возможно, создайте новую таблицу с меньшей информацией, чтобы суммировать данные в меньших столбцах, а затем ссылаться только на большие секционированные таблицы, когда вам нужна дополнительная информация, например, когда пользователь просматривает свой профиль. Все это следует рассматривать очень тщательно, поэтому в будущем это не слишком дорого для повторного фактора. Вы также можете разместить только пользователей, которые постоянно появляются на вашем сайте в одной таблице, и пользователей, которые никогда не входят в архивный набор таблиц.
В InnoDB с ограничением на размер таблицы в 64 терабайта и предел размера строк в MySQL 65 535 может быть 1 073 741 824 строки. Это будет минимальное количество записей, использующих максимальный предел размера строки. Однако, если размер строки меньше, можно добавить больше записей.
Согласно разделу «Масштабируемость и ограничения» в http://dev.mysql.com/doc/refman/5.6/en/features.html , поддержка MySQL для больших баз данных. Они используют MySQL Server с базами данных, которые содержат 50 миллионов записей. Некоторые пользователи используют MySQL Server с 200 000 таблицами и около 5 000 000 000 строк.
Ограничения по размеру строки
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 ».
- В разных форматах хранения используются разные количества заголовков страниц и трейлеров, что влияет на объем хранилища, ansible для строк.
Ссылка http://dev.mysql.com/doc/refman/5.7/ru/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».
В разных форматах хранения используются разные количества заголовков страниц и трейлеров, что влияет на объем хранилища, ansible для строк.
Информацию о форматах строк 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
Нет предела. Это зависит только от вашей свободной памяти и максимального размера файла системы. Но это не значит, что вы не должны принимать меры предосторожности при решении проблемы использования памяти в своей базе данных. Всегда создавайте скрипт, который может удалять строки, которые не используются, или которые будут содержать общее количество строк в определенной фигуре, например тысячу.