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

Максимальное количество таблиц в MySQL

Какое максимальное количество таблиц может обрабатывать MySQL?

4b9b3361

Ответ 1

Тот факт, что вы задаете этот вопрос, вероятно, является показателем того, что вы не применяете передовой подход к своей проблеме.

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

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

Ответ 2

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

Как упоминал Роб Гиннесс, для файлов .frm есть значительные накладные расходы. Также важно отметить, что любые запросы в information_schema без ограничений на схему и, если возможно, сама таблица приведут к серьезному поражению производительности во время выполнения запроса.

Ответ 3

В отличие от ответа Даниэля Вассалло, у меня есть прецедент, где требуется большое количество таблиц. Я могу ошибаться, но я не думаю, что есть "лучшая практика", благодаря которой я мог бы уменьшить количество таблиц.

Хотя, вероятно, правильно, что количество таблиц ограничено только ОС, я просто хочу добавить, что я использую более 1000 таблиц в базе данных с довольно хорошей производительностью. Единственным недостатком, по-видимому, является увеличение накладных расходов для файлов .frm. В моем случае я разделил очень большую таблицу на 1000 + отдельные таблицы с одинаковой структурой таблицы. Разделение MySQL не было для меня вариантом из-за денормализации, которая требует двух копий каждой записи в отдельных таблицах.

Ответ 4

Тот факт, что вы задаете этот вопрос, вероятно, является индикатором что вы не применяете оптимальный подход к своей проблеме.

Одна потенциальная ситуация, когда вам нужно много таблиц, - это когда вы разрабатываете приложение с несколькими арендаторами, где для каждого арендатора вы создаете отдельный набор таблиц (например, с помощью tentantId в качестве префикса имени таблицы). См. Эту статью (часть Data Isolation): http://www.javacodegeeks.com/2013/11/architecting-a-multi-tenant-application.html