Содержание

MySQL каков максимальный размер базы данных?



Я просмотрел весь сайт MySQL и не нашел окончательных ответов.

  1. Определяется ли размер базы данных операционной системой или существует ограничение в 4 ГБ?
  2. Где я могу найти статистику perforamnce по сравнению с другими базами данных (sqlServer, oracle ect)
mysql
Поделиться Источник stackoverflow     03 мая 2012 в 17:14

4 ответа




31

В соответствии с руководством MySQL :

E.10.3. Ограничения на размер таблицы

Эффективный максимальный размер таблицы для баз данных MySQL обычно определяется ограничениями операционной системы на размеры файлов, а не внутренними ограничениями MySQL. В следующей таблице приведены некоторые примеры ограничений размера файлов операционной системы. Это только приблизительное руководство и не предназначено для того, чтобы быть окончательным. Для получения наиболее подробной информации о up-to-date обязательно ознакомьтесь с документацией, относящейся к вашей операционной системе.

Operating System                     File-size Limit
Win32 w/ FAT/FAT32                   2GB/4GB
Win32 w/ NTFS                        2TB (possibly larger)
Linux 2.2-Intel 32-bit               2GB (LFS: 4GB)
Linux 2.4+  (using ext3 file system) 4TB
Solaris 9/10                         16TB
MacOS X w/ HFS+                      2TB

Windows пользователей, пожалуйста, обратите внимание, что FAT и VFAT (FAT32) не считаются подходящими для производственного использования с MySQL. Вместо этого используйте NTFS.

На Linux 2.2 вы можете получить MyISAM таблиц размером более 2 ГБ с помощью исправления Поддержки больших файлов (LFS) для файловой системы ext2. Большинство текущих дистрибутивов Linux основаны на kernel 2.4 или выше и включают все необходимые патчи LFS. На Linux 2.4 также существуют патчи для ReiserFS, чтобы получить поддержку больших файлов (до 2 ТБ). С JFS и XFS на Linux возможны файлы размером в петабайт и больше.

Что касается другой части вашего вопроса, несколько мыслей:

  1. Это широкий, сложный, многофакторный вопрос. Подумайте о том, чтобы сузить область вопроса до MySQL и еще одного RDBMS (например, SQL Server) и, возможно, даже одной конкретной функции.
  2. Google-ваш друг.
  3. Поставщики, как правило, публикуют свои собственные предвзятые сравнения. Возьмите номера поставщиков с солью.

Поделиться Asaph     03 мая 2012 в 17:17



3

1 — Что касается размера базы данных, ограничение зависит от размера файла операционной системы. Пожалуйста, ознакомьтесь с этой статьей
2 — Эффективный максимальный размер таблицы для баз данных MySQL обычно определяется ограничениями операционной системы на размеры файлов, а не внутренними ограничениями MySQL. ( Источник )

3 — Вы можете погуглить MySQL против SQL Server против Oracle, также проверьте эту ссылку

Поделиться Habib     03 мая 2012 в 17:25



1

по умолчанию mysql равно 256 TB для файла myd с размером указателя 6 байт. я знаю, что это нелепый ответ, но это то, что вы хотели знать. в реальной жизни все зависит от запросов, индексов, количества столбцов, количества строк и т. Д.

Поделиться Valters Boze     07 октября 2014 в 20:04




1

С сегодняшним оборудованием и OS, а также предпочтительным движком InnoDB MySQL, ограничение размера

таблицы составляет 64 ТБ. С PARTITIONing это может быть растянуто до более чем ста петабайт.

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

См .также Жесткие ограничения в MySQL .

Поделиться Rick James     19 января 2018 в 16:13


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


Каков максимальный размер базы данных mongodb 3.0.3 с движком WiredTiger

Каков максимальный размер базы данных движка WiredTiger? Существует только максимальный размер базы данных MMAPv1 в руководстве MongoDB, как показано ниже. http:/ / docs.mongodb.org / руководство /…


каков максимальный размер базы данных при использовании инструмента AMR?

каков максимальный размер базы данных, используемой для инструмента AMR, который мы использовали для идентификации таблицы/процедуры, которую мы можем переместить в память OLTP?


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

Каков максимальный размер таблицы MySQL? Это 2 миллиона на 50 ГБ? 5 миллионов на 80 ГБ? На более высоком конце шкалы размеров нужно ли думать о сжатии данных? Или, может быть, расколоть стол, если…


Максимальный размер базы данных в SQL Server 2008

Каков максимальный размер базы данных .mdf в SQL Server 2008 Enterprise ?


Каков максимальный размер базы данных MySQL в версии 5 и выше?

Каков максимальный размер базы данных MySQL в версии 5 и выше? Я имею в виду не максимальный размер строки или таблицы, а максимальный размер всей базы данных.


Каков максимальный размер базы данных SQLite или Core Data на iOS?

Каков максимальный размер базы данных SQLite или Core Data на iOS, сколько строк можно добавить в базу данных sqlite/Core Data на iOS?


максимальный размер базы данных phonegap sqlite?

Каков максимальный размер базы данных допускается использование для хранения api помощью PhoneGap? Каковы варианты на случай, если размер DB будет постепенно увеличиваться по мере того, как мои…


Каков максимальный размер MySQL VARCHAR?

Я хотел бы знать, каков максимальный размер для типа MySQL VARCHAR. Я читал,что максимальный размер ограничен размером строки, который составляет около 65 тыс. Я попытался установить поле на…


Каков максимальный размер запроса для mysql?

Каков максимальный размер запроса для mysql? Иногда сервер перестает работать, когда я запускаю слишком длинный запрос.


Каков максимальный размер базы данных в Titanium?

Каков максимальный размер базы данных? Есть ли диаграмма, которая показывает максимальный размер базы данных на разных устройствах? Можете ли вы сохранить предварительно заполненную базу данных на…

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

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

Пределы размера строки

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

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

Максимальный размер строки для таблицы InnoDB, который применяется к данным, хранящимся локально на странице базы данных, составляет чуть меньше половины страницы для настроек 4nB, 8KB, 16KB и 32KB innodb_page_size. Например, максимальный размер строки составляет чуть менее 8 КБ для размера страницы InnoDB по умолчанию 16 КБ. Для страниц размером 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

Как добавить пользователя базы данных в ispmanager, как посмотреть кодировку и другие проблемы при работе с MySQL

На тарифе Host-Lite и Win-Lite нет поддержки баз данных. Если у вас один из данных тарифов, вы можете повысить тарифный план, и у вас появится возможность создавать базы данных.

Как посмотреть текущую кодировку базы данных

ISPmanager

  1. 2.

    Перейдите в раздел «Базы данных», кликните по нужной базе данных и нажмите Изменить:

  2. 3.

    На открывшейся вкладке отображается текущая версия кодировки базы данных в которой хранятся данные в таблицах:

cPanel

  1. 2.

    В разделе «Базы данных» выберите phpMyAdmin:

  2. 3.

    На открывшейся странице отображается текущая кодировка базы данных:

Plesk

  1. 2.

    Перейдите в раздел «Базы данных». Выберите нужную базу и кликните по пункту phpMyAdmin:

  2. 3.

    На открывшейся странице отображается текущая кодировка базы данных:

Сколько баз данных можно создать на хостинге?

В зависимости от тарифного плана, вы можете создать следующее количество баз данных:

Тарифный планСколько баз данных можно создать
Host-Lite, Win-Liteни одной: нет поддержки баз данных
Host-A, Win-Aколичество баз данных не ограниченно
Host-B, Win-Bколичество баз данных не ограниченно
Host-0, Win-0количество баз данных не ограниченно
Host-1, Win-1количество баз данных не ограниченно
Host-2, Win-2количество баз данных не ограниченно
Host-3, Win-3количество баз данных не ограниченно
Host-Pro, Win-Proколичество баз данных не ограниченно
Host-Unlim, Win-Unlimколичество баз данных не ограниченно
VIP-1количество баз данных не ограниченно
VIP-2количество баз данных не ограниченно
VIP-3количество баз данных не ограниченно

Превышен лимит на размер базы данных

На всех тарифах хостинга REG.RU максимальный размер базы данных составляет 4Гб

. Если размер базы превысит 3Гб, вам будут высланы уведомления. При превышении максимального размера (4Гб) высылается предупреждение с последующей блокировкой до момента устранения проблемы.

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

При ограничении доступа на все ваши сайты устанавливается форма базовой аутентификации:

Для получения доступа к сайту вам необходимо ввести логин: «regru» и пароль: «regru».

Чтобы убрать данную форму, вам необходимо устранить причину блокировки: уменьшить размер базы данных, выполнив наши рекомендации ниже.

После устранения превышения блокировка будет автоматически снята при следующей проверке (проверка осуществляется раз в сутки преимущественно в ночное время).

Если услуга хостинга была заказана на сайте REG.RU, а не через партнёра, вы можете произвести проверку и разблокировку услуги хостинга самостоятельно. Для этого вам необходимо перейти в раздел Домены и услуги, кликнуть по услуге и в разделе «Управление услугой» выбрать пункт Проверить блокировку:

По окончании проверки вам будет выслано письмо с результатами проверки на контактный e-mail услуги хостинга.

Размер базы данных не входит в расчёт дискового пространства на хостинге, он считается отдельно.

Технические ограничения хостинга

Как уменьшить размер базы данных MySQL

Для уменьшения размера базы данных и предотвращения её быстрого разрастания рекомендуем выполнить следующие действия:

Оптимизируйте таблицы в базе данных

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

  1. 1.

    Войдите в Phpmyadmin и выберите необходимую базу данных из списка, просто кликнув на её названии:

  2. 2.

    Отметьте все таблицы в базе данных и в выпадающем списке С отмеченными выберите пункт Оптимизировать таблицу:

В панели управления не изменился размер?

Если вы уменьшили размер базы данных, а в панели управления показывается прежняя информация, просто подождите. Статистика по размеру БД в панели управления обновляется в течении 30 минут.

Проанализируйте содержание таблиц

Тщательно проанализируйте таблицы, занимающие больше всего места:

  • какие данные в них заносятся?
  • нужны ли вам эти данные?

В базе данных могут присутствовать таблицы от плагинов, которые вы уже не используете. Такие таблицы можно очищать.

В некоторых случаях в базу данных записываются логи(журналы) доступа, в результате размер базы очень быстро растёт. Как правило, логи доступа в базу данных записывает один из установленных плагинов. Измените способ записи журналов в настройке CMS или плагина.

Не могу добавить пользователя базы данных в ISPmanager

На хостинге с панелью управления ISPmanger стоит ограничение на длину имени пользователя базы данных и самой базы данных в 16 символов.

При создании пользователя, к его имени приписывается префикс u1234567_ — 9 символов. Таким образом на вводимое вами имя пользователя остаётся 7 символов (16-9). Вероятнее всего вы указываете более 7 символов, в результате чего появляется ошибка.

Для решения проблемы в качестве имени пользователя введите менее 7 символов.

Как создать базу данных

Помогла ли вам статья?

10 раз уже
помогла

Импорт большой базы данных MySQL в phpMyAdmin в MAMP

Нажмите «Command + пробел», чтобы запустить поиск Spotlight на MacBook. Введите «терминал» и откройте приложение «Терминал». Введите команду ниже и нажмите Enter.

Вы получите приветственное сообщение в «MySQL Monitor» вместе с предупреждением об использовании пароля и справкой. Командная строка изменится с вашего имени пользователя на «mysql>».

Ввод MySQL в Терминал

База данных localhost использует как имя пользователя, так и пароль в качестве «root». Таким образом, uroot и proot в командах Терминала указывают, что имя пользователя базы данных – root, а пароль – root. Вы увидите предупреждающее сообщение об использовании пароля в командной строке как небезопасного.

Шаг 4 – Работа с базами данных в терминале

Перед загрузкой базы данных вам необходимо создать базу данных с таким же именем и использовать ее в командной строке mysql Terminal. Введите следующую команду, чтобы создать базу данных с именем «test_db».

CREATE DATABASE test_db;

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

show databases;

Эта команда покажет все базы данных текущего сервера MySQL, работающего с MAMP.

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

use test_db;

Вы увидите сообщение «База данных изменена».

Использование базы данных, созданной

Шаг 5 – Импорт базы данных

Введите команду ниже, чтобы импортировать базу данных, которую вы загрузили с реального сервера на шаге 1.

SET autocommit=0 ; source /Applications/MAMP/htdocs/test_db.sql ; COMMIT ;

В этом примере мы используем имя базы данных как «test_db.sql», которое сохраняется в папке «/ Applications / MAMP / htdocs /». Если вы не знаете путь к базе данных, просто введите следующую команду в строке терминала и нажмите клавишу пробела, чтобы освободить пробел.

SET autocommit=0 ; source

Откройте Finder и найдите файл базы данных, просто перетащите Терминал, чтобы добавить местоположение файла. Затем вы можете ввести оставшуюся команду ; COMMIT; чтобы завершить это.

SET autocommit=0 ; source SQL_database_file_path/database_name.sql ; COMMIT ;

Завершите ввод команды и нажмите Enter. Терминал начнет выгрузку базы данных и покажет статус выполнения запроса.

Навигация по записям

Похожие записи

Как увеличить размер импортируемой базы данных?

Привет!

Вот недавно решил создать на денвере дубликат одного из моих работающих сайтов в интернете. Сам процесс переноса сайта я затрагивать не буду, так как мы уже обсуждали его в данном уроке. Однако мы не говорили о том, что делать, если Ваша база данных весит больше 2-х мегабайт. Именно такая проблема у меня и встала. Моя база данных весила 17 мб, и phpMyAdmin никак не хотел ее импортировать, ибо максимально возможный размер загружаемой базы данных — не более 2 мб. Сегодня мы поговорим о том, как самому задать этот самый максимально допустимый размер.Все делается очень легко и быстро! Раз phpMyAdmin — всего лишь груда файлов, в нашем случае, на диске C, то логично предположить, что и изменить максимально допустимый размер импорта базы данных можно путем редактирования этих самых файлов. Даже одного файла!

Цель нашего поиска — файл php.ini. Не знаю, какой у Вас «джентльменский набор вебмастера», у меня он — Денвер. Поэтому у меня таких файлов аж 2 или 3 штуки. Но нужен лишь один.

Идем на диск Ц, там есть папка WebServers. Во всяком случае она там есть у меня, если Вы проходили данный урок, или же сами, при установке не меняли ничего, то и у Вас эта папка там же.

В данной папке ищем под папку usr. В этой папке лежит папка local, а в ней, в свою очередь, папка php5. А тут и расположен наш файл — php.ini.

Если кто-то запутался, то Вот мой полный путь до этого файла: C:\WebServers\usr\local\php5.

Сам файл открываем любым текстовым редактором, будь то Dreamweaver или обычный, стандартный блокнот. Далее находите по очереди ниже приведенные строки, и меняйте их.

; Maximum allowed size for uploaded files.

upload_max_filesize = 200M

 

; Maximum size of POST data that PHP will accept.

post_max_size = 200M

 

; Maximum execution time of each script, in seconds

max_execution_time = 600

 

; Maximum amount of time each script may spend parsing request data

max_input_time = 600

 

; Maximum amount of memory a script may consume (128MB)

memory_limit = 500M

То есть,  находите строку upload_max_filesize , и меняете значение в ней, к примеру, на 200, как у меня указано. Можете хоть на 900. Разницы нет.

Вот собственно и весь урок! После изменения файла не забудьте сохранить его и перезагрузить денвер. Последнее является важным, так как я минут 10 не понимал, почему изменения не вступили в силу, пока не вспомнил, что это денвер, и его надо перезагружать после внесения изменений.

На этом у меня все, до скорых встреч!

P.S. Ну и по традиции, свежий выпуск фэйлов со всех стран мира 🙂

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

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

Пределы размера строки

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

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

Максимальный размер строки для таблицы InnoDB, который применяется к данным, хранящимся локально на странице базы данных, составляет чуть меньше половины страницы для настроек 4nB, 8KB, 16KB и 32KB innodb_page_size. Например, максимальный размер строки составляет чуть менее 8 КБ для размера страницы InnoDB по умолчанию 16 КБ. Для страниц размером 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

База данных MySQL занимает много места?

Всем привет! Так получается, что со временем, по мере наполнения блога новыми постами и с появлением новых комментариев снижается свободное дисковое пространство на сервере. И часто виной тому бывает несоразмерно объемная база данных.

Посмотрите на свою базу данных, какая из таблиц занимает больше всего места? В прошлый раз мы рассмотрели какие стандартные таблицы присутствуют сразу после установки WordPress, до установки плагинов. Если префикс базы данных при установке не менялся, а был принят по-умолчанию, то таблица wp_commentmeta может быть довольно много весить.

Одной из основных причин, почему база данных занимает много места,  может стать наличие огромного числа спам-комментариев и в какой-то мере установленный плагин Akismet.

Дело в том, что Акисмет к каждому комментарию добавляет свои мета-данные и записывает их в таблицу wp_commentmeta. То есть абсолютно все комментарии, даже помеченные как спам, несут с собой ненужную информацию. А после очистки корзины и спама эти мета-данные не удаляются и продолжают занимать место.

Вот, посмотрите сколько спама принял на себя блог:

Подумать только, более 71 тысячи! И все эти данные до сих пор хранятся в базе данных, не мудрено что она так неприлично разрослась:

По сравнению с другими таблицами она имеет наибольший размер — 5.1 Мб. Поэтому я решил найти способ снизить размер таблицы wp_commentmeta, а соответственно и общий размер базы данных.

Зачем уменьшать размер базы данных?

Странный вопрос, естественно для экономии ресурсов сервера, это и свободное дисковое пространство, и время, затраченное на обращение в данным. Очень часто чрезмерно большая база данных может привести к внутренней ошибке сервера 500 Internal Server Error.

Ранее я уже писал о нескольких способах, позволяющих сократить базу данных, а именно:

  • оптимизация таблицы wp_postmeta, за счет удаления устаревшей служебной информации;
  • оптимизация таблицы wp_posts, путем удаления ревизий (резервных копий) постов.

Теперь есть еще один способ уменьшить базу данных, за счет снижения размера таблицы wp_commentmeta.

Снижение размера таблицы wp_commentmeta

Способ был найден на форуме русскоязычной поддержки WordPress. Для сокращения размера требуемой таблицы необходимо выполнить SQL-запрос к базе данных:

Для этого нужно выбрать требуемую базу данных на сервере из панели phpMyAdmin, перейти на вкладку SQL и в появившемся окне вставить этот код запроса к базе данных:

DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments)

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

Требуемый результат достигнут, таблица уменьшилась в размере почти в 5 раз! Теперь она весит 1,1 Мб, вместо 5.1 Мб. После таких операций я советую дополнительно оптимизировать базу данных стандартными средствами phpMyAdmin, отметив галочками все таблицы и выбрав в выпадающем списке «Оптимизировать таблицу», так сказать последний штрих)

В очередной раз обращаю особое внимание на осторожное обращение с базами данных и не забывайте делать резервные копии перед выполнением SQL-запросов.

Ну вот, пройдет очередной этап, но на этом оптимизация WordPress не заканчивается, подписывайтесь на обновления блога, чтобы не пропустить очередной пост! 😉

8.4.7 Ограничения на количество столбцов в таблице и размер строки

  • Максимальный размер строки MySQL 65 535 байт составляет продемонстрировано в следующем InnoDB и MyISAM примеров. Предел принудительно независимо от механизма хранения, даже если механизм хранения может поддерживать строки большего размера.

      mysql> СОЗДАТЬ ТАБЛИЦУ t (VARCHAR (10000), b VARCHAR (10000),
           c VARCHAR (10000), d VARCHAR (10000), e VARCHAR (10000),
           f VARCHAR (10000), g VARCHAR (6000)) ENGINE = InnoDB CHARACTER SET latin1;
    ОШИБКА 1118 (42000): слишком большой размер строки.Максимальный размер строки для используемого
    тип таблицы, не считая больших двоичных объектов, равен 65535. Это включает накладные расходы на хранилище,
    проверьте руководство. Вам нужно изменить некоторые столбцы на ТЕКСТ или BLOB-объекты  
      mysql> CREATE TABLE t (a VARCHAR (10000), b VARCHAR (10000),
           c VARCHAR (10000), d VARCHAR (10000), e VARCHAR (10000),
           f VARCHAR (10000), g VARCHAR (6000)) ENGINE = НАБОР СИМВОЛОВ MyISAM latin1;
    ОШИБКА 1118 (42000): слишком большой размер строки. Максимальный размер строки для используемого
    Тип таблицы, не считая больших двоичных объектов, равен 65535.Это включает накладные расходы на хранилище,
    проверьте руководство. Вам необходимо изменить некоторые столбцы на ТЕКСТ или BLOB  

    В следующем примере MyISAM , изменение столбца на ТЕКСТ позволяет избежать ограничения на размер строки в 65 535 байт и позволяет операция для успеха, потому что BLOB и ТЕКСТ только столбцов вносить от 9 до 12 байтов в размер строки.

      mysql> СОЗДАТЬ ТАБЛИЦУ t (VARCHAR (10000), b VARCHAR (10000),
           c VARCHAR (10000), d VARCHAR (10000), e VARCHAR (10000),
           f VARCHAR (10000), g TEXT (6000)) ENGINE = MyISAM CHARACTER SET latin1;
    Запрос выполнен, затронуты 0 строк (0.02 сек)  

    Операция успешна для InnoDB таблица, потому что изменение столбца на ТЕКСТ избегает MySQL Ограничение размера строки 65 535 байт и InnoDB внестраничное хранение столбцов переменной длины позволяет избежать InnoDB Ограничение размера строки .

      mysql> СОЗДАТЬ ТАБЛИЦУ t (VARCHAR (10000), b VARCHAR (10000),
           c VARCHAR (10000), d VARCHAR (10000), e VARCHAR (10000),
           f VARCHAR (10000), g TEXT (6000)) ENGINE = InnoDB CHARACTER SET latin1;
    Запрос выполнен, затронуты 0 строк (0.02 сек)  
  • Хранение столбцов переменной длины включает байты длины, которые засчитываются в размер строки. Например, VARCHAR (255) CHARACTER SET utf8mb3 столбец занимает два байта для сохранить длину значения, поэтому каждое значение может занимать до 767 байт.

    Заявление для создания таблицы t1 успешно, потому что столбцы требуют 32 765 + 2 байта и 32 766 + 2 байта, что соответствует максимальному размеру строки из 65 535 байт:

      mysql> СОЗДАТЬ ТАБЛИЦУ t1
           (c1 VARCHAR (32765) NOT NULL, c2 VARCHAR (32766) NOT NULL)
           ДВИГАТЕЛЬ = НАБОР СИМВОЛОВ InnoDB latin1;
    Запрос выполнен, затронуты 0 строк (0.02 сек)  

    Оператор для создания таблицы t2 не работает потому что, хотя длина столбца находится в пределах максимального длина 65 535 байт, требуются два дополнительных байта для записи длины, которая приводит к превышению размера строки 65 535 байт:

      mysql> СОЗДАТЬ ТАБЛИЦУ t2
           (c1 VARCHAR (65535) NOT NULL)
           ДВИГАТЕЛЬ = НАБОР СИМВОЛОВ InnoDB latin1;
    ОШИБКА 1118 (42000): слишком большой размер строки.Максимальный размер строки для используемого
    тип таблицы, не считая больших двоичных объектов, равен 65535. Это включает накладные расходы на хранилище,
    проверьте руководство. Вам необходимо изменить некоторые столбцы на ТЕКСТ или BLOB  

    Уменьшение длины столбца до 65 533 или менее позволяет заявление об успехе.

      mysql> СОЗДАТЬ ТАБЛИЦУ t2
           (c1 VARCHAR (65533) NOT NULL)
           ДВИГАТЕЛЬ = НАБОР СИМВОЛОВ InnoDB latin1;
    Запрос в порядке, затронуты 0 строк (0,01 сек)  
  • Для таблиц MyISAM , NULL столбцов требуют дополнительного места в строке, чтобы записать, соответствуют ли их значения НУЛЬ .Каждые NULL столбец занимает на один бит больше, округляется до ближайшего байт.

    Оператор для создания таблицы t3 не работает потому что MyISAM требует места для NULL столбцов в дополнение к пространство, необходимое для байтов длины столбца переменной длины, в результате чего размер строки превышает 65 535 байт:

      mysql> СОЗДАТЬ ТАБЛИЦУ t3
           (c1 VARCHAR (32765) NULL, c2 VARCHAR (32766) NULL)
           ДВИГАТЕЛЬ = НАБОР СИМВОЛОВ MyISAM latin1;
    ОШИБКА 1118 (42000): слишком большой размер строки.Максимальный размер строки для используемого
    тип таблицы, не считая больших двоичных объектов, равен 65535. Это включает накладные расходы на хранилище,
    проверьте руководство. Вам необходимо изменить некоторые столбцы на ТЕКСТ или BLOB  

    Для получения информации о InnoDB NULL хранилище столбцов, см. Раздел 15.10, «Форматы строк InnoDB».

  • InnoDB ограничивает размер строки (для данных хранится локально на странице базы данных), чтобы немного меньше более половины страницы базы данных для 4 КБ, 8 КБ, 16 КБ и 32 КБ innodb_page_size настройки и чуть меньше 16 КБ для страниц размером 64 КБ.

    Оператор для создания таблицы t4 не работает потому что определенные столбцы превышают предел размера строки для страница 16KB InnoDB .

      mysql> СОЗДАТЬ ТАБЛИЦУ t4 (
           c1 СИМВОЛ (255), c2 СИМВОЛ (255), c3 СИМВОЛ (255),
           c4 СИМВОЛ (255), c5 СИМВОЛ (255), c6 СИМВОЛ (255),
           c7 СИМВОЛ (255), c8 СИМВОЛ (255), c9 СИМВОЛ (255),
           c10 СИМВОЛ (255), c11 СИМВОЛ (255), c12 СИМВОЛ (255),
           c13 СИМВОЛ (255), c14 СИМВОЛ (255), c15 СИМВОЛ (255),
           c16 СИМВОЛ (255), c17 СИМВОЛ (255), c18 СИМВОЛ (255),
           c19 СИМВОЛ (255), c20 СИМВОЛ (255), c21 СИМВОЛ (255),
           c22 СИМВОЛ (255), c23 СИМВОЛ (255), c24 СИМВОЛ (255),
           c25 СИМВОЛ (255), c26 СИМВОЛ (255), c27 СИМВОЛ (255),
           c28 СИМВОЛ (255), c29 СИМВОЛ (255), c30 СИМВОЛ (255),
           c31 СИМВОЛ (255), c32 СИМВОЛ (255), c33 СИМВОЛ (255)
           ) ДВИГАТЕЛЬ = InnoDB ROW_FORMAT = ДИНАМИЧЕСКАЯ СИСТЕМА ДИНАМИКИ ПО УМОЛЧАНИЮ latin1;
    ОШИБКА 1118 (42000): слишком большой размер строки (> 8126).Может помочь изменение некоторых столбцов на TEXT или BLOB.
    В текущем формате строки префикс BLOB, равный 0 байтам, хранится в строке.  
  • 12,4 Пределы размера стола

    Вы используете таблиц InnoDB и запустили вне места в файле табличного пространства InnoDB . Максимальный размер табличного пространства также является максимальным размером для Таблица. Для получения информации об ограничениях на размер табличного пространства см. Ограничения InnoDB.

    Как правило, разделение таблиц на несколько табличных пространств files рекомендуется для таблиц размером более 1 ТБ.

    Вы используете таблицу MyISAM и пространство, необходимое для стола, превышает разрешенное размер внутреннего указателя. MyISAM разрешений файлы данных и индексные файлы по умолчанию увеличиваются до 256 ТБ, но этот предел может быть изменен до максимально допустимого размера из 65 536 ТБ (256 7 — 1 байтов).

    Если вам нужен стол MyISAM большего размера чем предел по умолчанию, и ваша операционная система поддерживает большие файлы, СОЗДАТЬ ТАБЛИЦУ оператор поддерживает AVG_ROW_LENGTH и MAX_ROWS опций.Видеть CREATE TABLE Заявление. Сервер использует эти параметры, определяющие допустимый размер таблицы.

    Если размер указателя слишком мал для существующей таблицы, вы можно изменить параметры с помощью ALTER ТАБЛИЦА для увеличения максимума таблицы допустимый размер. См. Инструкцию ALTER TABLE.

      ALTER TABLE  имя_таблицы  MAX_ROWS = 1000000000 AVG_ROW_LENGTH =  nnn ;  

    Необходимо указать только AVG_ROW_LENGTH для столов с BLOB или ТЕКСТ столбцов; в таком случае, MySQL не может оптимизировать необходимое пространство только на основе количество рядов.

    Чтобы изменить ограничение размера по умолчанию для MyISAM , установите myisam_data_pointer_size , который устанавливает количество байтов, используемых для внутренней строки указатели. Значение используется для установки размера указателя для нового таблицы, если вы не укажете MAX_ROWS вариант. Значение myisam_data_pointer_size может быть от 2 до 7. Например, для таблиц, в которых используется динамический формат хранения, значение 4 разрешает таблицы до 4ГБ; значение 6 разрешает таблицы размером до 256 ТБ.Таблицы, которые использовать фиксированный формат хранения, иметь больший максимальный объем данных длина. Характеристики формата хранения см. Форматы хранения таблиц MyISAM.

    Вы можете проверить максимальные размеры данных и индексов с помощью этого утверждение:

      ПОКАЗАТЬ СОСТОЯНИЕ ТАБЛИЦЫ ИЗ  db_name  LIKE ' tbl_name ';  

    Вы также можете использовать myisamchk -dv / путь / к / индексу-таблицы-файла .Видеть Операторы SHOW, или myisamchk — Утилита обслуживания таблиц MyISAM.

    Другие способы обойти ограничения размера файла для MyISAM следующие таблицы:

    • Если ваша большая таблица предназначена только для чтения, вы можете использовать myisampack , чтобы сжать его. myisampack обычно сжимает стол не менее чем на 50%, поэтому вы можете получить гораздо больше таблицы. myisampack тоже можно сливать несколько таблиц в одну. Видеть myisampack — создание сжатых таблиц MyISAM, доступных только для чтения.

    • MySQL включает библиотеку MERGE , которая позволяет обрабатывать коллекцию MyISAM таблиц, которые имеют идентичные структура в виде единой таблицы MERGE . См. Механизм хранения MERGE.

    8.4.6 Пределы размера стола

    Вы используете таблиц InnoDB и запустили вне места в файле табличного пространства InnoDB . Максимальный размер табличного пространства также является максимальным размером для Таблица. Для получения информации об ограничениях на размер табличного пространства см. Раздел 15.22, «Ограничения InnoDB».

    Как правило, разделение таблиц на несколько табличных пространств files рекомендуется для таблиц размером более 1 ТБ.

    Вы используете таблицу MyISAM и пространство, необходимое для стола, превышает разрешенное размер внутреннего указателя. MyISAM разрешений файлы данных и индексные файлы по умолчанию увеличиваются до 256 ТБ, но этот предел может быть изменен до максимально допустимого размера из 65 536 ТБ (256 7 — 1 байтов).

    Если вам нужен стол MyISAM большего размера чем предел по умолчанию, и ваша операционная система поддерживает большие файлы, СОЗДАТЬ ТАБЛИЦУ оператор поддерживает AVG_ROW_LENGTH и MAX_ROWS опций.Видеть Раздел 13.1.20, «Оператор CREATE TABLE». Сервер использует эти параметры, определяющие допустимый размер таблицы.

    Если размер указателя слишком мал для существующей таблицы, вы можно изменить параметры с помощью ALTER ТАБЛИЦА для увеличения максимума таблицы допустимый размер. См. Раздел 13.1.9, «Оператор ALTER TABLE».

      ALTER TABLE  имя_таблицы  MAX_ROWS = 1000000000 AVG_ROW_LENGTH =  nnn ;  

    Необходимо указать только AVG_ROW_LENGTH для столов с BLOB или ТЕКСТ столбцов; в таком случае, MySQL не может оптимизировать необходимое пространство только на основе количество рядов.

    Чтобы изменить ограничение размера по умолчанию для MyISAM , установите myisam_data_pointer_size , который устанавливает количество байтов, используемых для внутренней строки указатели. Значение используется для установки размера указателя для нового таблицы, если вы не укажете MAX_ROWS вариант. Значение myisam_data_pointer_size может быть от 2 до 7. Например, для таблиц, в которых используется динамический формат хранения, значение 4 разрешает таблицы до 4ГБ; значение 6 разрешает таблицы размером до 256 ТБ.Таблицы, которые использовать фиксированный формат хранения, иметь больший максимальный объем данных длина. Характеристики формата хранения см. Раздел 16.2.3, «Форматы хранения таблиц MyISAM».

    Вы можете проверить максимальные размеры данных и индексов с помощью этого утверждение:

      ПОКАЗАТЬ СОСТОЯНИЕ ТАБЛИЦЫ ИЗ  db_name  LIKE ' tbl_name ';  

    Вы также можете использовать myisamchk -dv / путь / к / индексу-таблицы-файла .Видеть Раздел 13.7.7, «Выражения SHOW» или Раздел 4.6.4, «myisamchk — Утилита обслуживания таблиц MyISAM».

    Другие способы обойти ограничения размера файла для MyISAM следующие таблицы:

    12,5 Пределы количества столбцов в таблице и размера строки

  • Максимальный размер строки MySQL 65 535 байт составляет продемонстрировано в следующем InnoDB и MyISAM примеров.Предел принудительно независимо от механизма хранения, даже если механизм хранения может поддерживать строки большего размера.

      mysql> СОЗДАТЬ ТАБЛИЦУ t (VARCHAR (10000), b VARCHAR (10000),
           c VARCHAR (10000), d VARCHAR (10000), e VARCHAR (10000),
           f VARCHAR (10000), g VARCHAR (6000)) ENGINE = InnoDB CHARACTER SET latin1;
    ОШИБКА 1118 (42000): слишком большой размер строки. Максимальный размер строки для используемого
    Тип таблицы, не считая больших двоичных объектов, равен 65535.Это включает накладные расходы на хранилище,
    проверьте руководство. Вам нужно изменить некоторые столбцы на ТЕКСТ или BLOB-объекты  
      mysql> CREATE TABLE t (a VARCHAR (10000), b VARCHAR (10000),
           c VARCHAR (10000), d VARCHAR (10000), e VARCHAR (10000),
           f VARCHAR (10000), g VARCHAR (6000)) ENGINE = НАБОР СИМВОЛОВ MyISAM latin1;
    ОШИБКА 1118 (42000): слишком большой размер строки. Максимальный размер строки для используемого
    тип таблицы, не считая больших двоичных объектов, равен 65535. Это включает накладные расходы на хранилище,
    проверьте руководство. Вам необходимо изменить некоторые столбцы на ТЕКСТ или BLOB  

    В следующем примере MyISAM , изменение столбца на ТЕКСТ позволяет избежать ограничения на размер строки в 65 535 байт и позволяет операция для успеха, потому что BLOB и ТЕКСТ только столбцов вносить от 9 до 12 байтов в размер строки.

      mysql> СОЗДАТЬ ТАБЛИЦУ t (VARCHAR (10000), b VARCHAR (10000),
           c VARCHAR (10000), d VARCHAR (10000), e VARCHAR (10000),
           f VARCHAR (10000), g TEXT (6000)) ENGINE = MyISAM CHARACTER SET latin1;
    Запрос в порядке, затронуты 0 строк (0,02 сек)  

    Операция успешна для InnoDB таблица, потому что изменение столбца на ТЕКСТ избегает MySQL Ограничение размера строки 65 535 байт и InnoDB внестраничное хранение столбцов переменной длины позволяет избежать InnoDB Ограничение размера строки .

      mysql> СОЗДАТЬ ТАБЛИЦУ t (VARCHAR (10000), b VARCHAR (10000),
           c VARCHAR (10000), d VARCHAR (10000), e VARCHAR (10000),
           f VARCHAR (10000), g TEXT (6000)) ENGINE = InnoDB CHARACTER SET latin1;
    Запрос в порядке, затронуты 0 строк (0,02 сек)  
  • Хранение столбцов переменной длины включает байты длины, которые засчитываются в размер строки. Например, VARCHAR (255) CHARACTER SET utf8mb3 столбец занимает два байта для сохранить длину значения, поэтому каждое значение может занимать до 767 байт.

    Заявление для создания таблицы t1 успешно, потому что столбцы требуют 32 765 + 2 байта и 32 766 + 2 байта, что соответствует максимальному размеру строки из 65 535 байт:

      mysql> СОЗДАТЬ ТАБЛИЦУ t1
           (c1 VARCHAR (32765) NOT NULL, c2 VARCHAR (32766) NOT NULL)
           ДВИГАТЕЛЬ = НАБОР СИМВОЛОВ InnoDB latin1;
    Запрос в порядке, затронуты 0 строк (0,02 сек)  

    Оператор для создания таблицы t2 не работает потому что, хотя длина столбца находится в пределах максимального длина 65 535 байт, требуются два дополнительных байта для записи длины, которая приводит к превышению размера строки 65 535 байт:

      mysql> СОЗДАТЬ ТАБЛИЦУ t2
           (c1 VARCHAR (65535) NOT NULL)
           ДВИГАТЕЛЬ = НАБОР СИМВОЛОВ InnoDB latin1;
    ОШИБКА 1118 (42000): слишком большой размер строки.Максимальный размер строки для используемого
    тип таблицы, не считая больших двоичных объектов, равен 65535. Это включает накладные расходы на хранилище,
    проверьте руководство. Вам необходимо изменить некоторые столбцы на ТЕКСТ или BLOB  

    Уменьшение длины столбца до 65 533 или менее позволяет заявление об успехе.

      mysql> СОЗДАТЬ ТАБЛИЦУ t2
           (c1 VARCHAR (65533) NOT NULL)
           ДВИГАТЕЛЬ = НАБОР СИМВОЛОВ InnoDB latin1;
    Запрос в порядке, затронуты 0 строк (0,01 сек)  
  • Для таблиц MyISAM , NULL столбцов требуют дополнительного места в строке, чтобы записать, соответствуют ли их значения НУЛЬ .Каждые NULL столбец занимает на один бит больше, округляется до ближайшего байт.

    Оператор для создания таблицы t3 не работает потому что MyISAM требует места для NULL столбцов в дополнение к пространство, необходимое для байтов длины столбца переменной длины, в результате чего размер строки превышает 65 535 байт:

      mysql> СОЗДАТЬ ТАБЛИЦУ t3
           (c1 VARCHAR (32765) NULL, c2 VARCHAR (32766) NULL)
           ДВИГАТЕЛЬ = НАБОР СИМВОЛОВ MyISAM latin1;
    ОШИБКА 1118 (42000): слишком большой размер строки.Максимальный размер строки для используемого
    тип таблицы, не считая больших двоичных объектов, равен 65535. Это включает накладные расходы на хранилище,
    проверьте руководство. Вам необходимо изменить некоторые столбцы на ТЕКСТ или BLOB  

    Для получения информации о InnoDB NULL хранилище столбцов, см. Форматы строк InnoDB.

  • InnoDB ограничивает размер строки (для данных хранится локально на странице базы данных), чтобы немного меньше более половины страницы базы данных для 4 КБ, 8 КБ, 16 КБ и 32 КБ innodb_page_size настройки и чуть меньше 16 КБ для страниц размером 64 КБ.

    Оператор для создания таблицы t4 не работает потому что определенные столбцы превышают предел размера строки для страница 16KB InnoDB .

      mysql> СОЗДАТЬ ТАБЛИЦУ t4 (
           c1 СИМВОЛ (255), c2 СИМВОЛ (255), c3 СИМВОЛ (255),
           c4 СИМВОЛ (255), c5 СИМВОЛ (255), c6 СИМВОЛ (255),
           c7 СИМВОЛ (255), c8 СИМВОЛ (255), c9 СИМВОЛ (255),
           c10 СИМВОЛ (255), c11 СИМВОЛ (255), c12 СИМВОЛ (255),
           c13 СИМВОЛ (255), c14 СИМВОЛ (255), c15 СИМВОЛ (255),
           c16 СИМВОЛ (255), c17 СИМВОЛ (255), c18 СИМВОЛ (255),
           c19 СИМВОЛ (255), c20 СИМВОЛ (255), c21 СИМВОЛ (255),
           c22 СИМВОЛ (255), c23 СИМВОЛ (255), c24 СИМВОЛ (255),
           c25 СИМВОЛ (255), c26 СИМВОЛ (255), c27 СИМВОЛ (255),
           c28 СИМВОЛ (255), c29 СИМВОЛ (255), c30 СИМВОЛ (255),
           c31 СИМВОЛ (255), c32 СИМВОЛ (255), c33 СИМВОЛ (255)
           ) ENGINE = InnoDB ROW_FORMAT = КОМПАКТНЫЙ НАБОР ДАННЫХ ПО УМОЛЧАНИЮ latin1;
    ОШИБКА 1118 (42000): слишком большой размер строки (> 8126).Изменение некоторых столбцов на ТЕКСТ или BLOB или использование
    ROW_FORMAT = DYNAMIC или ROW_FORMAT = COMPRESSED может помочь. В текущем формате строки префикс BLOB равен 768.
    байты хранятся встроенными.  
  • php — Ограничение размера импортируемого файла в PHPMyAdmin

    Примечание: (добавлено в июле 2020 г.)

    Я удивлен, что никто об этом не упомянул … изменение php.ini, вероятно, должно быть вашим последним средством при увеличении размера загружаемых файлов до 64 МБ.

    Это может не иметь большого значения на машинах для разработки, но редактирование php.ini для глобального увеличения максимального размера загрузки может быть очень плохой идеей на сервере, на котором у вас работает несколько веб-сайтов. Импорт MySQL в PHPMyAdmin часто бывает большим, но вы не хотите, чтобы каждый Том, Дик и Мэри загружали файлы размером 64 МБ на другой сайт на вашем сервере, потому что вам нужно делать это время от времени для вашей базы данных MySQL.

    Поэтому я бы предложил лучшее решение (при условии, что вы используете стандартный модуль Apache PHP) для редактирования конкретной конфигурации виртуального хоста для PHPMyAdmin.

    В Ubuntu Linux это находится в / etc / apache2 / conf-enabled / phpmyadmin.conf. В WAMP / Windows / Все, что вам нужно, чтобы посмотреть настройку вашей конфигурации Apache, но, вероятно, она будет в conf-enabled, conf.d, sites-enabled или что-то в этом роде. На самом деле это часто просто символические ссылки на фактический файл, который находится где-то вроде /etc/phpmyadmin/apache.conf (снова используя Ubuntu в качестве примера здесь).

    Ваш файл apache.conf будет содержать примерно такие строки:

      Псевдоним / phpmyadmin / usr / share / phpmyadmin
    
    <Каталог / usr / share / phpmyadmin>
        Параметры SymLinksIfOwnerMatch
        DirectoryIndex индекс.php
    
        # ограничить libapache2-mod-php файлами и каталогами, необходимыми для pma
        
            php_admin_value upload_tmp_dir / var / lib / phpmyadmin / tmp
            php_admin_value open_basedir / usr / share / phpmyadmin /: / etc / phpmyadmin /: / var / lib / phpmyadmin /: / usr / share / php / php-gettext /: / usr / share / php / php-php-gettext /: / usr / share / javascript /: / usr / share / php / tcpdf /: / usr / share / doc / phpmyadmin /: / usr / share / php / phpseclib /: / usr / share / php / PhpMyAdmin /: / usr / share / php / Symfony /: / usr / share / php / Twig /: / usr / share / php / Twig-Extensions /: / usr / share / php / ReCaptcha /: / usr / share / php / Psr / Контейнер /: / usr / share / php / Psr / Cache /: / usr / share / php / Psr / Log /: / usr / share / php / Psr / SimpleCache /
        
    
    
      

    Сразу после добавьте эти строки:

      php_value post_max_size 64M
        php_value upload_max_filesize 64M
      

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

    Если вы используете fpm или fastcgi или что-то еще с Apache или без него, такой же более локализованный подход к управлению размерами загрузки может быть достигнут с помощью.файлы user.ini.

    Ограничения базы данных MySQL

    | Поддержка Tiger Technologies

    Для баз данных MySQL применяются наши обычные ограничения на дисковое пространство и ограничения ресурсов сервера, включая использование памяти, использование ЦП и запись на диск. Другими словами, использование ресурсов сервера для любых запросов MySQL, которые вы выполняете, засчитывается для ваших ограничений ресурсов, как и использование самого скрипта.

    Кроме того, практический предел размера баз данных MySQL с общим хостингом составляет:

    • База данных не должна содержать более 1000 таблиц;
    • Размер каждой отдельной таблицы не должен превышать 1 ГБ или 20 миллионов строк;
    • Общий размер всех таблиц в базе данных не должен превышать 2 ГБ.

    Эти пределы довольно высоки. Менее 0,05% наших клиентов когда-либо создавали базы данных такого размера, и мы сообщим вам, если это произойдет. (Если вы получили такое уведомление, вы можете попробовать оптимизировать таблицу, чтобы увидеть, можно ли ее сжать для экономии места, хотя это может помешать обновлению таблицы в течение нескольких минут.)

    Хотя мы не устанавливаем эти ограничения вручную, чтобы вы не превысили их на небольшие суммы, в этом случае у вас могут возникнуть проблемы. В качестве одного примера, сценарии на вашем сайте могут испытывать тайм-ауты во время резервного копирования MySQL таких больших таблиц.В качестве другого примера мы ограничиваем размер временной таблицы MySQL до 6 ГБ, что может предотвратить сортировку неиндексированных таблиц, размер которых превышает 1 ГБ. Кроме того, мы можем отключить базы данных, которые превышают эти ограничения, если они мешают другим базам данных на том же сервере.

    Могу ли я заплатить вам за план, который превышает эти ограничения?

    К сожалению нет. Подобные ограничения присущи хостингу с общей базой данных, который является единственным из предлагаемых нами; единственное решение — уменьшить объем данных, которые вы храните, или распределить их по разным базам данных или таблицам.Если вы не можете этого сделать, вам, к сожалению, придется переключить свой сайт на выделенный сервер, который сможет справиться с высокой нагрузкой.

    Что еще мне следует знать о MySQL и больших наборах данных?

    Если вы импортируете большие объемы данных, убедитесь, что вы следуете советам на нашей странице «Большой импорт MySQL». Это позволит избежать проблем и ускорит импорт.

    Насколько большой может стать база данных MySQL?

    Максимальный размер базы данных MySQL? Ник Дункан хочет выяснить, каким может быть максимальный размер его базы данных MySQL.Он отвечает на это списком максимальных размеров файлов для каждого типа файловой системы. Это бесполезный ответ.

    Хотя каждая файловая система имеет максимальный размер файла, это ограничение обычно не актуально, когда речь идет о максимальном размере базы данных MySQL. Но все же начнем с файловых систем.

    Во-первых: вы, , никогда не хотите, , запускать систему баз данных на файловой системе FAT. В FAT файл представляет собой связанный список блоков в FAT. То есть некоторые операции «поиска» (операции обратного поиска) становятся медленнее, чем больше файл, потому что файловая система должна позиционировать указатель файла, просматривая связанный список блоков в FAT.Поскольку операции поиска — это в основном то, что большая база данных делает весь день, FAT для этого совершенно бесполезен. Таким образом, фактический предел размера файла FAT является спорным для целей этого обсуждения.

    Второй: вы также никогда не хотите запускать систему баз данных в 32-битной операционной системе. Это не только ограничивает размер вашего файла в Windows, а также в некоторых случаях в Linux, но также ограничивает объем системной памяти, которую вы можете инвестировать в буферные кеши MySQL. Это бесполезно, потому что именно память делает базы данных быстрыми.

    В 64-битных системах и с современными файловыми системами (NTFS в Windows и XFS на LVM2 в Linux с последним ядром) установленный операционный предел размера файла составляет даже несколько терабайт или петабайт. Скоро мы увидим, что точное число на самом деле не актуально.
    Пределы, перечисленные в таблице Ника, являются ограничениями на размер файла, а не на размер базы данных.

    В MyISAM ограничение, если оно когда-либо будет достигнуто, означает, что одна таблица ограничена таким количеством данных или размером индекса (данные хранятся в одном файле с расширением MYD, а индексы хранятся в другом файле с расширением Расширение MYI).

    В InnoDB у нас есть два режима работы, в зависимости от innodb_file_per_table. Если он включен, каждая таблица получает свой собственный файл с расширением ibd; если он выключен, фактические таблицы сохраняются в наборе файлов, обычно называемых ibdataXXX, размер и количество которых можно свободно настраивать.

    Каждая база данных использует индексы, и в каждой базе данных индекс должен иметь возможность обращаться к записям данных. В MyISAM таблица может иметь ФИКСИРОВАННЫЙ или ДИНАМИЧЕСКИЙ строковый формат (СЖАТИЕ также существует, но здесь это не актуально).В ФИКСИРОВАННОМ формате файл MYI ссылается на позиции в файле MYD с помощью номеров записей. Они преобразуются в байтовые смещения в файле MYD путем умножения на фиксированную длину строки. В таблице формата строки DYNAMIC файлы MYI хранят байтовые смещения в файле MYD.

    Бесполезно иметь файл MYD, размер которого превышает адресный диапазон индекса, поэтому MySQL не позволяет вам иметь такой файл с сообщением об ошибке «таблица заполнена». Адресный диапазон задается в MyISAM с помощью атрибута таблицы MAX_ROWS: вы можете CREATE TABLE t… MAX_ROWS = x или можете позже ALTER TABLE t MAX_ROWS =… и MyISAM определит, сколько байтов потребуется для хранения указателя на строку для иметь возможность обращаться к данным.Однако будьте осторожны: ALTER TABLE создает копию ваших данных во время выполнения команды ALTER TABLE, и это займет время. Выполнение ALTER TABLE для таблицы размером 4 ГБ может занять некоторое время — не рекомендуется устанавливать слишком маленькое значение MAX_ROWS.

    Если вы вообще не определяете атрибут MAX_ROWS, MyISAM будет использовать количество байтов по умолчанию для указателя строки: myisam_data_pointer_size. Раньше это было 4 байта до MySQL 5.0 и 6 байтов с MySQL 5.0 включительно.

    Как и любое другое значение по умолчанию, его, конечно, можно изменить в вашем файле my.cnf файл. Если вы его измените, это повлияет на все вновь созданные или измененные таблицы, но не на существующие. Значение по умолчанию в 6 байтов подходит для 256 ТБ данных в каждом отдельном файле MYD. Обратите внимание, что даже в версиях MySQL до 5.0 можно было использовать более 4 ГБ на файл, но не по умолчанию. Также обратите внимание, что в документации указано, что размер указателя данных может достигать 8 байтов, но это бессмысленно, как мы увидим позже.

    В InnoDB ситуация более сложная: вторичные индексы используют первичный ключ для адресации строки данных.В зависимости от определения первичного ключа он может быть меньше или намного больше, чем в MyISAM. В InnoDB есть и другие внутренние ограничения, и они ограничивают размер любой отдельной таблицы до 256 ТБ.

    Таким образом, пока ваша файловая система поддерживает максимальный размер файла не менее 256 ТБ, вы никогда не столкнетесь с какими-либо ограничениями файловой системы до того, как MySQL столкнется с другими внутренними ограничениями.

    Но очень вероятно, что ваша база данных будет работать очень плохо задолго до этого: базам данных требуется память для эффективной работы — поиски на диске считаются в миллисекундах (1/1 000 секунды), а обращения к памяти — в наносекундах (1 / 1 000 000 000 секунд, что в миллион раз быстрее).Таким образом, любой поиск диска, необходимый из-за промаха в кэше, будет примерно в сто тысяч или миллион раз медленнее, чем при обычном попадании в кэш.

    Таким образом, полезный размер вашей базы данных, скорее всего, ограничен объемом оперативной памяти, которую может использовать ваша база данных. Полезное практическое правило — примерно в 10 раз больше памяти, которую вы выделяете для своих кешей, но, зная внутреннюю работу базы данных, легко построить патологический случай, который пессимизирует это намного ниже этого, а также оптимизировать его. путь за пределы этого предела.

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

    Подробнее:

    .