MySQL 并发参数调整
max_connections 参数
该参数设置mysql连接最大数量. max_connections 默认151个连接.
|
|
服务器性能优时可以调节这个参数, 范围: 500~1000
注
当连接过大时, 查看 Connection_errors_max_connections
参数是否大于0 , 表示连接过多, 错误连接
|
|
back_log 参数
积压栈的大小.
也就是说当 mysql 连接超过 max_connections
连接数时, 如果back_log
大小为0时, mysql将授予连接资源. 如果back_log
大于零时,则接受多余的请求, 以等待某一连接释放.而等待的连接数大于back_log
数时则也将不授予连接资源.
back_log
默认大小: 50 + (max_connections/5), 最大可设置为900
|
|
table_open_cache
该参数用来控制所有SQL语句执行线程可打开表缓存的数量.
最大数量设定: max_connections * N
|
|
thread_cache_size
该参数可控制 mysql缓存客户服务线程的数量, 相当于mysql的线程池, 也备重用.
|
|
innodb_lock_wait_timeout
该参数是用来设置innoDB事务等待行锁的时间, 默认值:50ms. 如果并发要求高时: 可以设置小一点, 以避占用时间过长.
|
|
InnoDB 内存优化
innodb用了一块内存区做IO缓存池, 该缓存池不仅用来缓存innodb的索引块, 而且也用来缓存innodb的数据块.
innodb_buffer_pool_size
该参数决定了innodb存储引擎表数据和索引数据的最大缓存区大小.在保证操作系统及其它程序有足够的内存可用的情况下, innodb_buffer_pool_size的值越大,缓存命中率越高, 访问innodb表需要的磁盘IO就越小, 性能也越高.
|
|
innodb_log_buffer_size
决定innodb重做日志缓存的大小, 对于可能产生大量更新记录的大事务, 增加innodb_log_buffer_size的大小, 可以避免innodb在事务提交前就执行不必要的日志写入磁盘操作.
|
|
常用SQL技巧
SQL执行顺序
编写顺序
执行顺序
from->on->join->where->group by->having->select field->order by-> limit

正则查询
mysql支持的正则的符号
实例
|
|