понедельник, 27 декабря 2010 г.

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

Сейчас занимаюсь разработкой одного интересного проекта. Там была поставлена задача сделать горизонтальное масштабирование БД. Структура проекта такова, что в нем будет много-много сайтов. Тоесть, шардить придется по-проекту. В результате, будет создано очень много таблиц. Напрашивается вопрос "какой максимальное количество таблиц и записей в MySQL?". Пришел к выводу, что кол-во таблиц и количество записей не лимитируются. Кол-во таблиц myisam зависит от ограничения ОС в размещении нужного количества файлов (кол-во таблиц * 3) и от объема несущих дисков.

Для InnoDB - это ограничение на размер одного файла, но можно создавать сколько угодно файдов для хранения. Объем ограничивается размером дисков.

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

Несколько ссылок о масштабировании БД:
http://www.jurriaanpersyn.com/archives/2009/02/12/database-sharding-at-netlog-with-mysql-and-php/
http://www.ibm.com/developerworks/ru/library/os-mysql-postgresql/04/
http://habrahabr.ru/blogs/mysql/87147/


Читать далее