1、MySQLMySQL介绍及性能优化介绍及性能优化 数据量/单位:万MyISAMInnoDB备注:f 特殊选项插入:插入:1w1w3 3秒秒219219秒秒innodb_flush_log_at_trx_commit=1innodb_flush_log_at_trx_commit=1插入:插入:10w10w29 29 秒秒20922092秒秒innodb_flush_log_at_trx_commit=1innodb_flush_log_at_trx_commit=1插入:插入:100w100w287287秒秒N/AN/Ainnodb_flush_log_at_trx_commit=1innod
2、b_flush_log_at_trx_commit=1插入:插入:1w1w3 3秒秒3 3秒秒innodb_flush_log_at_trx_commit=0 innodb_flush_log_at_trx_commit=0 插入:插入:10w10w3030秒秒2929秒秒innodb_flush_log_at_trx_commit=0 innodb_flush_log_at_trx_commit=0 插入:插入:100w100w273273秒秒423423秒秒innodb_flush_log_at_trx_commit=0 innodb_flush_log_at_trx_commit=0 插
3、入:插入:1w1wN/AN/A3 3秒秒innodb_flush_log_at_trx_commit=0 innodb_flush_log_at_trx_commit=0 innodb_buffer_pool_size=256Minnodb_buffer_pool_size=256M插入:插入:10W10WN/AN/A2626秒秒innodb_flush_log_at_trx_commit=0 innodb_flush_log_at_trx_commit=0 innodb_buffer_pool_size=256Minnodb_buffer_pool_size=256M插入:插入:100W10
4、0WN/AN/A379379秒秒innodb_flush_log_at_trx_commit=0innodb_flush_log_at_trx_commit=0innodb_buffer_pool_size=256Minnodb_buffer_pool_size=256M选项选项缺省值缺省值推荐值推荐值说明说明max_connections1001024MySQL服务器同时处理的数据库连接的最大数量query_cache_size0(不打开)16M查询缓存区的最大长度,按照当前需求,一倍一倍增加,本选项比较重要sort_buffer_size512K16M每个线程的排序缓存大小,一般按照内存可
5、以设置为2M以上,推荐是16M,该选项对排序order by,group by起作用record_buffer128K16M每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区,可以设置为2M以上table_cache64512为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。MySQL对每个唯一打开的表需要2个文件描述符。选项缺省值推荐值说明key_buffer_size8M256M用来存放索引区块的缓存值,建议128M以上,不要大于内存的30%read_buffer_size128K16M用来做MyISAM表全表扫描的缓冲大小.为从数据表顺序读取数据的
6、读操作保留的缓存区的长度myisam_sort_buffer_size16M128M设置,恢复,修改表的时候使用的缓冲大小,值不要设的太大选项选项缺省值缺省值推荐值推荐值说明说明innodb_buffer_pool_size32M1GInnoDB使用一个缓冲池来保存索引和原始数据,这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少,一般是内存的一半,不超过2G,否则系统会崩溃,这个参数非常重要innodb_additional_mem_pool_size2M128MInnoDB用来保存 metadata 信息,如果内存是4G,最好本值超过200Minnodb_flush_log_at_
7、trx_commit10 0 代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘;1 为执行完没执行一条SQL马上commit;2 代表日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上.对速度影响比较大,同时也关系数据完整性innodb_log_file_size8M256M在日志组中每个日志文件的大小,一般是innodb_buffer_pool_size的25%,官方推荐是 innodb_buffer_pool_size 的 40-50%,设置大一点来避免在日志文件覆写上不必要的缓冲池刷新行为innodb_log_buffer_size128K8M用来缓冲日志数据的缓冲区的大小.推荐是8M,官方推荐该值小于16M,最好是 1M-8M 之间 http:/