Tôi đang gặp vấn đề nghiêm trọng về hiệu năng với MySQL và công cụ InnoDB. Ngay cả bảng đơn giản nhất cũng khiến các thao tác viết (tạo bảng, chèn, cập nhật và xóa) chậm khủng khiếp, như bạn có thể thấy trong đoạn trích sau.
mysql> CREATE TABLE `test` (`id` int(11) not null auto_increment,
-> PRIMARY KEY(`id`)) ENGINE=InnoDB;
Query OK, 0 rows affected (4.61 sec)
mysql> insert into test values ();
Query OK, 1 row affected (1.92 sec)
mysql> insert into test values ();
Query OK, 1 row affected (0.88 sec)
mysql> insert into test values ();
Query OK, 1 row affected (1.10 sec)
mysql> insert into test values ();
Query OK, 1 row affected (6.27 sec)
mysql> select * from test;
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
+----+
4 rows in set (0.00 sec)
mysql> delete from test where id = 2;
Query OK, 1 row affected (0.28 sec)
mysql> delete from test where id = 3;
Query OK, 1 row affected (6.37 sec)
Tôi đã nhìn vào htop và thời gian chờ đợi lâu không phải vì tải CPU bất thường. Nó gần như bằng không, và việc sử dụng bộ nhớ cũng bình thường. Nếu tôi tạo cùng một bảng bằng công cụ MyISAM, thì nó hoạt động bình thường. Tệp my.cnf của tôi chứa tệp này (nếu tôi nhớ đúng, tôi đã không thay đổi bất cứ điều gì từ cấu hình Debian mặc định):
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
bind-address = 127.0.0.1
key_buffer = 40M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 8
myisam-recover = BACKUP
max_connections = 100
table_cache = 64
thread_concurrency = 10
query_cache_limit = 1M
query_cache_size = 40M
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
expire_logs_days = 10
max_binlog_size = 100M
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[isamchk]
key_buffer = 16M
!includedir /etc/mysql/conf.d/
Tôi cũng đã cố gắng khởi động lại máy chủ, nhưng nó không giải quyết được gì.
Nhật ký truy vấn chậm không cung cấp thêm thông tin.
iostat
thông tin trong quá trình chèn, kết quả cho SHOW VARIABLES LIKE '%version%'
vàSHOW VARIABLES LIKE '%innodb%';