小编MrD*_*MrD的帖子

我应该使用 MyISAM 以外的存储引擎来优化这些表还是应该获得更好的磁盘?

我正在开发一个生产数据库,它的 4 个最大的表每个包含 400 万到 1000 万行,每个包含大约 15 个字段,并在不同的字段类型(数字、varchar 和文本)上有索引。总index_length容量为 2.2GB,总容量data_length为 6GB。所有这些表都使用 MyISAM,它们的读/写比为 66/33。

这是空闲时间 /etc/init.d/mysql status 的输出:

Server version          5.1.37-1ubuntu5
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
...

Threads: 27  Questions: 5430994  Slow queries: 59  Opens: 298  Flush tables: 1  Open tables: 128  Queries per second avg: 182.695
Run Code Online (Sandbox Code Playgroud)

在高峰时段,每秒的查询数约为 300。

在过去的几周里,数据库变得如此缓慢,有时查询会锁定 2 分钟以上。所以,我增加到key_buffer_size4GB(我机器上有 8GB)。锁定时间减少了。但是在高峰时段还是难以忍受,尤其是读写比接近50/50的时候。

服务器在虚拟环境中运行,因此 I/O 不是很好,并且大多数选择查询ORDER BY <some_indexed_field>在平均 50k 行的结果集上执行。

之前我已经成功地调整了这个数据库,但现在它仍然较小,但现在我被卡住了。

更新: 白天磁盘利用率很容易达到 100%。

mysql myisam database-tuning

5
推荐指数
1
解决办法
1138
查看次数

标签 统计

database-tuning ×1

myisam ×1

mysql ×1