mysql 优化
show variables;
查看静态参数
show status;
查看动态状态
#mysqladmin variables -u root -p
1,key_buffer_key
5.1后可以为某表指定key_buffer
set global hot_cache.key_buffer_size=5*1024;
创建
cache index t_art in hot_cache;
指定
load index into caceh t_art;
将索引预安装到默认key_buffer
以上是动态方法,如果需要重启时自动执行可以:
vi /etc/my.cnf
key_buffer_size=4G
hot_cache.key_buffer_siez=2G
init_file=/path/mysql_init_sql
vi /path/mysql_init_sql
CACHE INDEX a.t1 b.t2 IN hot_cache
2,table_open_cache
(variables)max_connections:并行连接数
(variables)open-files-limit:每个进程的可打开文件数量
(status)open_tables:当前打开表数量
(status)opened_tables:历史打开表数量
3,innodb_buffer_pool_size
等于key_buffer,设置越大,你在存取表里面数据时所需要的磁盘I/O越少
4,innodb_flush_log_at_trx_commit
控制缓存区中数据写入日记与日记文件刷新磁盘的时机
5,innodb_additional_mem_pool_size
存储数据库结构与其他内部数据结构的内存池
6,innodb_lock_wait_timeout
检查表锁导致的死锁,出现死锁等候多长时间回滚
7,innodb_support_xa
是否使用分布式事务
8,innodb_log_buffer_size
用于日志的内存大小 8~16M
9,innodb_log_file_size
日志大小,越大性能越高
10,软件RAID优化
读写频繁,可靠性要求高,用raid5
读频繁,可靠性一般,用raid1+0
写频繁,可靠性不高,用raid0
11,查询缓存MYSQL QUERY CACHE
show variables like '%query_cache%';主要参数
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| have_query_cache | YES | 是否提供缓存功能
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 0 |
| query_cache_type | ON | 是否使用缓存功能
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+
show status like '%Qcache%';监视查询缓存状态
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Qcache_free_blocks | 0 |
| Qcache_free_memory | 0 |
| Qcache_hits | 0 |
| Qcache_inserts | 0 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 0 |
| Qcache_queries_in_cache | 0 |
| Qcache_total_blocks | 0 |
+-------------------------+-------+