Назад | Перейти на главную страницу

Как я могу уменьшить дисковый ввод-вывод в MySQL 5.6.26?

Я использовал MySQL версии 5.1.52 для своего приложения, но недавно я обновил его до версии 5.6.26, но теперь у меня очень высокий дисковый ввод-вывод.

Ниже приводится конфигурация системы:

Моя ОС такая же, только версия MySQL изменена. Я провел наблюдение ввода-вывода в MySQL версий 5.1.52 и 5.6.26 с помощью утилиты iotop, в обеих версиях выполняются одни и те же запросы, чтение - это количество записей на диск. Ниже приведены наблюдения:

5.1.52 Версия MySQL:

Number of Queries     All Innodb Tables          All MyISAM Tables
900                     12.45M                        192K
1800                    23.76M                        424K
2700                    36.02M                        680K
3600                    46.33M                        924K

5.6.26 Версия MySQL:

Number of Queries     All Innodb Tables          All MyISAM Tables
900                      75.04M                       212K
1800                    158.03M                       472K
2700                    245.93M                       756K
3600                    346.66M                      1016K

Я могу пойти на компромисс со свойствами ACID, но не с IO.

Почему IO увеличен в MySQl 5.6.26?

Как я могу уменьшить дисковый ввод-вывод?

Можно ли использовать движок MyISAM вместо движка InnoDB с MySQL 5.6.26?

my.cnf для MySQL 5.6.26:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-storage-engine=MyISAM
general_log=on
general_log_file=/dev/shm/mysql.logs
thread_cache_size=9
table_open_cache=2000
table_definition_cache=1400
sort_buffer_size=2097152
query_cache_size=1048576
max_allowed_packet=4194304
key_buffer_size=8388608
join_buffer_size=262144
back_log=80
query_cache_type=OFF
open_files_limit=5000
event_scheduler=OFF
innodb_thread_concurrency=0
innodb_sync_spin_loops=30
innodb_stats_on_metadata=OFF
innodb_max_dirty_pages_pct=90
innodb_file_per_table=ON
innodb_concurrency_tickets=5000
innodb_autoextend_increment=8
innodb_open_files=2000
innodb_log_file_size=67108864
innodb_log_buffer_size=67108864
innodb_additional_mem_pool_size=1048576
innodb_log_buffer_size=1048576
innodb_max_dirty_pages_pct=90
innodb_max_dirty_pages_pct_lwm=90
innodb_adaptive_flushing_lwm=70
innodb_adaptive_flushing=0
innodb_io_capacity=2000
innodb_io_capacity_max=6000
innodb_lru_scan_depth=2000
innodb_write_io_threads=1
innodb_read_io_threads=1
innodb_buffer_pool_instances=1
innodb_buffer_pool_size=20971520
innodb_flush_method=O_DIRECT
innodb_flush_log_at_trx_commit=2

[mysqld_safe]
pid-file=/var/run/mysqld/mysqld.pid

заранее спасибо