Какое оптимальное кол-во таблиц в MySQL?

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.526
Реакции
121
У меня форум ipb и CMS стоят в одной базе. Получается более 200 таблиц. Хостер сказал, что таблицы из-за этого летят, нужно разнести по разным базам.
Действительно много?
 
Каждая отдельная таблица в представлении MySQL хранится в отдельном файле. Причин, по которым таблицы могли бы "лететь" - я лично не вижу. Если раскинуть по разным базам данных, то на файловом уровне вся разница сводится только к тому, что файлы таблиц просто будут находиться в двух разных папках. Посоветуйте хостеру немного почитать для начала мануалы по MySQL и научиться выдумывать более изощренные "отмазки".

P.S. Все выше написанное действительно в том случае, если хостер не ограничил принудительно количество таблиц на одну базу для своих клиентов.
 
При использовании типа баз/таблиц InnoDB такая ситуация возможна при некоторых настройках БД.
Если точнее, то для повышения производительности при таком типе таблиц достаточно часто изменяют хранилище ibdata* с единого на все базы (дефолтно) на разделенное (каждой InnoDB базе свой файл создается).
Из за особенностей этого типа хранилищ это значительно снижает нагрузку на диск в ряде случаев, для хостеров это более чем актуально на мой взгляд. Если же при таком раскладе появляется одна большая база на несколько движков с высокой нагрузкой, то разделение ее на несколько меньших баз вполне оправдано.
Тоесть, если у тебя твоя единая база такого типа, то на самом деле может иметь смысл разделить ее на 2 базы и хостер твой прав.
Но если у тебя база MyISAM, разделение ничего не изменит и требования хостера по сути безосновательны.
Посмотри на все таблицы в базе если там нет InnoDB но при этом сама база в InnoDB, то достаточно будет просто сдампить существующую базу, снести ее (или рядом создать новую сначала на всякий случай, типа не получится что-то) и новую сделать MyISAM и залить дамп в нее. Это тоже решит проблему. Если в самих таблицах присутствует InnoDB то чисто теоретически можно сменить их тип на MyISAM и сделать то, что в предидущем предложении посоветовал - вполне может решить траблу, но лучше если не занеш - не лезть и последовать совету хостера в этом случае.

п.с. Конверт базы "на лету" из InnoDB в MyISAM проблему не решит, а при значительном размере базы положит хост мускула "на раз-два" и хостер тебя вполне обосновано натянет за это. Так что толкьо через дамп и пересоздание базы сразу в нужном типе решается все это.

п.п.с. А вообще первый раз вижу, чтоб количеством таблиц мерили нагрузку на базу. Какого она у тебя размера в дампе выходит?
 
В том то и дело, что IP-бурда по дефолту создает табы MyISAM(на сколько я помню).
 
В том то и дело, что IP-бурда по дефолту создает табы MyISAM(на сколько я помню).
Достаточно 1 таблицы в базе, чтоб у базы появился такой "хвостик". На сколько я помню, эта фигня старая и известная трабла в спорах против мускула и козырь например в марии. Но могу и ошибаться.
Я очень давно не ставил сам руками мускул, на днях исправлю это недоразумение и посмотрю специально, какой тип таблиц он создаст.
В портативном сервере XAMPP по дефолту InnoDB точно и его еще и хрен отключиш там.
 
На самом деле, InnoDB - штука довольно противная. Но при правильном обращении - дает изумительные результаты. Не нужно далеко ходить - все прекрасно помним первые недели работы Nulled на движке XenForo. Тормозов тоже было довольно много. Хотя, с другой стороны, у XF - 90% таблиц InnoDB. Разумеется, для корректной работы InnoDB необходимо ковырять настройки сервера.
 
Назад
Сверху