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

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

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

unsigned int наибольшее значение – 4,294,967,295
максимальное значение unsigned bigint18,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

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

  • T-SQL Pivot? Возможность создания столбцов таблицы из значений строк
  • jQuery CSS - запись в -tag
  • Создать таблицу в SQLite только в том случае, если она уже не существует
  • Как заставить jQuery добавлять НЕ автоматически закрывать тег?
  • Interesting Posts

    Невозможно выполнить поиск в панели действий.

    Путь JNDI Tomcat против Jboss

    Почему я получаю CS1012: «Слишком много символов в буквальном буквале» и CS0019?

    Команды, выполненные из vim, не распознают псевдонимы команды bash

    MacBookPro работает под управлением Windows 7: случайный вход трекпада приводит меня в бешенство

    Изменение поведения Windows 8 Win + Space changer

    Как у меня нет веб-браузера по умолчанию, поэтому система спрашивает, какой браузер использовать, когда я нажимаю ссылку?

    Как настроить Chrome для открытия новых экземпляров браузера в новых окнах, а не на вкладке?

    Внешний жесткий диск не распознается компьютером

    Различия между Html.TextboxFor и Html.EditorFor в MVC и Razor

    Как имитировать нажатия клавиш в java?

    Стоит ли инициализировать размер коллекции List , если размер его разумно известен?

    getResourceAsStream возвращает null

    SqlException из Entity Framework – новая транзакция не допускается, поскольку в сеансе есть другие streamи

    Удаленный рабочий стол. С другим пользователем, который еще не выполнил вход?

    Давайте будем гением компьютера.