В какой момент точная настройка MySQL INNODB становится требованием? - PullRequest
8 голосов
/ 09 марта 2011

Я посмотрел на это:http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/а также:http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/

Они отвечают на многие мои вопросы относительно INNODB против MyISAM.Я не сомневаюсь, что INNODB - это путь, которым я должен идти.Однако я работаю самостоятельно и для разработки создал виртуальный сервер LAMP (ubuntu 10.10 x64).В настоящее время сервер имеет 2 ГБ памяти и один диск SATA 20 ГБ.Я могу увеличить оба этих объема без особых проблем до 3-3,5 ГБ памяти и 200 ГБ диска.

Причины, по которым я не решаюсь перейти на INNODB: A) В вышеприведенных статьях упоминается, что INNODB значительно увеличит размер таблиц, и он рекомендует гораздо больший объем оперативной памяти и дискового пространства.В то время как в производственной среде я не против этого увеличения, в среде разработки, я боюсь, не могу приспособиться. B) Я не вижу смысла в тонкой настройке движка INNODB на моей виртуальной машине.Это, вероятно, то, что мне даже не позволят делать в моей производственной среде.В статьях звучит так, будто INNODB обречен на провал без тонкой настройки.

У меня такой вопрос.В какой момент INNODB жизнеспособен?Сколько оперативной памяти мне понадобится для запуска INNODB на моем сервере (только с моими данными для тестирования. Этот сервер не открыт ни для кого, кроме меня)?а также безопасно ли для меня предположить, что производственная среда, которая не позволяет мне точно настраивать БД, вероятно, уже сама настроила ее?

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

Ответы [ 2 ]

14 голосов
/ 09 марта 2011

ИМХО, это становится требованием, когда у вас десятки тысяч строк или когда вы можете прогнозировать скорость роста данных.

Вы должны сосредоточиться на настройке пула буферов innodb и размера файла журнала. Также убедитесь, что у вас включена innodb_file_per_table.

Чтобы получить представление о том, насколько велик размер пула буферов innodb в КБ, выполните этот запрос:

SELECT SUM(data_length+index_length)/power(1024,1) IBPSize_KB
FROM information_schema.tables WHERE engine='InnoDB';

Вот оно в МБ

SELECT SUM(data_length+index_length)/power(1024,2) IBPSize_MB
FROM information_schema.tables WHERE engine='InnoDB';

Вот оно в ГБ

SELECT SUM(data_length+index_length)/power(1024,3) IBPSize_GB
FROM information_schema.tables WHERE engine='InnoDB';

Я писал статьи об этом виде тюнинга

ЕСЛИ вы ограничены объемом ОЗУ на вашем сервере, не превышайте более 25% установленного ради ОС.

0 голосов
/ 09 марта 2011

Я думаю, что вы, может быть, задумались.Это правда, что INNODB любит оперативную память, но если ваша база данных мала, я не думаю, что у вас будет много проблем.Единственная проблема, с которой я столкнулся при работе с MYSQL или любой другой базой данных, заключается в том, что по мере роста данных возрастают требования для быстрого доступа к ним.Вы также можете использовать сжатие таблиц, чтобы уменьшить их размер, но INNODB значительно лучше, чем MYISAM, в отношении целостности данных.

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

...