2015-05-08 2 views
0

Я читал, что InnoDB должен лучше писать в MySQL, чем MyISAM, однако я пытаюсь его запустить, выполнив 3000 запросов MySQL (Вставка строк, 8 столбцов + id) ... но результаты haven Я так и не понял.
Использование InnoDB Время исполнения составляет около 5,5 секунды, а для MyISAM - около 2,2 секунды.Лучшая конфигурация для MySQL? InnoDB и MyISAM

Моя текущая конфигурация MySQL является:

innodb_io_capacity = 8000 
innodb_read_io_threads = 64 
innodb_write_io_threads = 64 
innodb_log_buffer_size = 32M 
innodb_log_file_size = 564M 
innodb_buffer_pool_size = 6G 
innodb_buffer_pool_instances = 6 
innodb_thread_concurrency = 0 

Все остальное на его значение по умолчанию.
Мой сервер в настоящее время работает: Ubuntu 14.04 x64
имеет 12GB RAM
6 ядер
А с помощью SSD (поставщик услуг говорит, что обеспечивает 10000 IOPS)

Что бы быть лучшей конфигурацией для InnoDB, если Я должен был использовать только InnoDB, и какая была бы лучшая конфигурация только для MyISAM (вроде бы по какой-то причине была бы быстрее, если бы я отключил InnoDB, не используя его.)?

Прямо сейчас, просто думая о том, как использовать мой сервер для хранения материала, и вам нужно будет написать больше данных, чем читать его ... а потом подумать о чтении больше, чем писать.
Не уверен, имеет ли значение, но прямо сейчас работает nginx (не имеют apache на сервере), php 5.6 и MySQL 5.6.19.

+1

Это может быть лучше задано на ** dba.stackexchange.com **. С InnoDB есть накладные расходы. Являются ли эти 3000 отдельных инструкций INSERT объединенными в транзакцию или являются этими отдельными транзакциями? – spencer7593

+0

Это может помочь вам: http://stackoverflow.com/questions/20148/myisam-versus-innodb –

+0

Если ваш запрос занимает 2 секунды для выполнения, обвините механизм запроса не в хранилище. Таким образом, вопрос конфигурации не имеет значения – akuzminsky

ответ

0

MyISAM не является аварийным или транзакционным .. InnoDB является и обеспечивает синхронизацию данных с диском (MyISAM не делает) до завершения инструкции (или COMMIT).

Попробуйте объединить ваши записи вместе в одну транзакцию (BEGIN; INSERT, INSERT; COMMIT) или запустить несколько вставок параллельно, а не последовательно (или оба одновременно). Эти вещи значительно улучшат производительность ,

Я также прочитал бы ссылку, предложенную Стюартом Вагнером.