2013-08-19 2 views
1

Я запускаю mysqltuner для настройки моей базы данных, и я сталкиваюсь с очень странным явлением.Большой размер данных InnoDB, хотя полная база данных MyISAM?

Даже если вся база данных MyISAM (все таблицы) он говорит следующее:

[!!] InnoDB data size/buffer pool: 403.1M/128.0M 

двигатель базы данных хранения по умолчанию был InnoDB (хотя все таблицы MyISAM), поэтому я думал, что может быть вызвав проблему как-то, но когда я изменил значение по умолчанию-хранилище-движок в MyISAM, я все еще вижу то же самое предупреждение, связанное с InnoDB в mysqltuner.

Так почему это происходит и как я могу это исправить? Я бы предпочел не тратить 400M на буферный пул InnoDB, когда я не использую InnoDB для начала.

Примечание: То, что я НЕ пытаюсь сделать здесь, - это обсудить давний вопрос MyISAM VS InnoDB, мне просто нужно выяснить, почему InnoDB ест мои ресурсы, хотя я его не использую.

+0

'default-storage-engine' предназначен только для новых таблиц. Если вы не укажете движок при создании новой таблицы, он использует значение по умолчанию. –

+0

Все таблицы являются MyISAM, поскольку они были импортированы с другого сервера, а не создаются на этом. – jovan

ответ

1

значения: «Размер данных» не «Буферный пул».

Размер данных - это размер файлов базы данных на диске. Его можно настроить с помощью сервера innodb_data_file_path.

Буферный пул - это пространство памяти (ОЗУ), используемое в качестве буфера для данных и индексов таблиц InnoDB. Его вариант конфигурации - innodb_buffer_pool_size.


Во-первых, убедитесь, что нет таблицы InnoDB вообще в вашем случае:

SELECT * FROM information_schema.tables WHERE engine='InnoDB'; 

Тогда, если нет действительно никакой таблицы InnoDB, вы можете rebuild the InnoDB tablespace с нуля (единственный способ уменьшить таблицу space, это досадная недостающая функция MySQL). Даже если есть таблицы InnoDB, вы все равно можете восстановить табличное пространство, чтобы восстановить неиспользуемое пространство (см. Также this answer для получения дополнительной информации).

Уведомление, что вы не можете установить innodb_buffer_pool_size размером менее 5 МБ. Но вы можете полностью отключить InnoDB (вместе с его буферами) с опцией skip-innodb.

+0

Ну, на самом деле, я был глупым, а таблицы information_schema - InnoDB. Я проверял только свои таблицы. Теперь, как вы думаете, я должен делать то, что говорит mysqltuner, и увеличивать пул буферов InnoDB? Это важно для производительности? – jovan

+0

Трудно сказать точно. Проверьте использование пула с помощью 'SHOW ENGINE INNODB STATUS' (найдите раздел« BUFFER POOL AND MEMORY »). Если пул близок к полному, да, вы можете извлечь выгоду из большего пула. Это вопрос сам по себе, и эти настройки всегда рассматриваются в каждом конкретном случае. – RandomSeed