Mysql
 sql >> база данни >  >> RDS >> Mysql

Защо MySQL InnoDB е толкова по-бавен при пълно сканиране на таблицата от MyISAM?

На моя сървър с вашата конфигурация моята основна производителност е както следва:

  • InnoDB:5.71s
  • MyISAM:2,50 сек.

Това не е лошо в моята книга, но може да използва някои настройки.

Вашата InnoDB производителност може да бъде подобрена на няколко фронта:

Увеличете innodb_buffer_pool_size

  • Това е единствената най-важна конфигурационна променлива на InnoDB. В идеалния случай трябва да е 70-80% от наличната ви RAM на сървър, посветен на MySQL и InnoDB.
  • Увеличаване на innodb_buffer_pool_size на моя сървър до 2G (повече от достатъчно за този тест) намалено времето на InnoDB до 4.60s

Направете идентификатора ПЪРВИЧЕН КЛЮЧ

  • InnoDB клъстерира своите данни въз основа на ПЪРВИЧЕН КЛЮЧ. Когато не декларирате такъв, InnoDB генерира произволен такъв имплицитно. Наличието на последователен първичен ключ (id) е по-бързо от произволен.
  • Намаляването на идентификатора като ПРАВИЛЕН КЛЮЧ на сървъра ми е намалено времето на InnoDB до 3.80s

Надстройте своя MySQL/InnoDB

С MySQL 5.1+ MySQL поддържа плъзгащи се машини за съхранение. По-конкретно новият InnoDB Plugin .

Новият двигател InnoDB предоставя многобройни подобрения в производителността, които може да оказват значително влияние върху този конкретен тип заявка.

Забележка:

  • От MySQL 5.1.38 плъгинът InnoDB е включен в MySQL
  • От MySQL 5.1.43, плъгинът InnoDB не само е включен, но и е машината по подразбиране за MySQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Поставяне на SQL заявка в PHP функция

  2. Сигурен начин за съхранение на ключове за криптиране - PHP

  3. Вмъкване на изображения в база данни

  4. Как да вмъкна записа с функцията MySQL NOW() в MySQLi с bind_param?

  5. ПЪЛНО ПРИСЪЕДИНЯВАНЕ към MySQL?