磁盘速度测试:
写速度
time dd if=/dev/zero of=/tmp/test bs=8k count=1000000
time dd if=/dev/zero of=/u01/test bs=8k count=1000000
读速度
time dd if=/tmp/test of=/dev/null bs=8k
time dd if=/u01/test of=/dev/null bs=8k
读写速度
time dd if=/tmp/test of=/var/test bs=64k
time dd if=/u01/test of=/var/test1 bs=64k
1、在 my.cnf 中做如下配置:
key_buffer_size=512M
## 默认 8M 最大不要超过 4G
read_buffer_size
## 默认 128K
如果需要经常顺序扫描 MyISAM 表,可以通过增大 read_buffer_size 的值来改善性能。但需要注意的是
read_buffer_size 是每个 session 独占的,如果默认值设置太大,就会造成内存浪费。
read_rnd_buffer_size ## 默认 256K
对于需要做排序的 MyISAM 表的查询,如带有 order by 子句的 sql,适当增加
read_rnd_buffer_size 的值,可以改善此类的 sql 性能。
但需要注意的是 read_rnd_buffer_size 是每个 session 独占的,如果默认值设置太大,就会造成内存
浪费。
3) InnoDB 内存优化
innodb 用一块内存区做 IO 缓存池,该缓存池不仅用来缓存 innodb 的索引块,而且也用来缓存 innodb
的数据块。
innodb_buffer_pool_size=512M
## 默认 128m
该变量决定了 innodb 存储引擎表数据和索引数据的最大缓存区大小。在保证操作系统及其他程序有足够内
存可用的情况下,innodb_buffer_pool_size 的值越大,缓存命中率越高,访问 InnoDB 表需要的磁盘
I/O 就越少,性能也就越高
innodb_log_buffer_size=10M
决定了 innodb 重做日志缓存的大小,对于可能产生大量更新记录的大事务,增加
innodb_log_buffer_size 的大小,可以避免 innodb 在事务提交前就执行不必要的日志写入磁盘操作。
innodb_log_buffer_size=10M
mysql> show innodb_log_file_size ;
1064 - You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near
'innodb_log_file_size' at line 1
mysql> show key_buffer_size ;
1064 - You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near 'key_buffer_size'
at line 1
mysql> show variables like '%key_buffer_size%';
+-----------------+---------+
| Variable_name | Value |
+-----------------+---------+
| key_buffer_size | 8388608 |
+-----------------+---------+
1 row in set (0.17 sec)
相关文档
评论