MySQL性能优化
查询缓存
查询缓存(Query Caching)缓存了SELECT查询及其结果数据集,当执行一个同样的SELECT查询时,MySQL会从内存中直接取出结果,加快了查询执行速度、减小了数据库的压力。执行SHOW VARIABLES LIKE 'have_query_cache';
可以查看MySQL查询缓存是否打开,开启查询缓存只需配置my.cnf文件即可,具体如下:
query_cache_type = 1
query_cache_size = 128M
query_cache_limit = 1M
保存好后重启MySQL。
存储引擎
MySQL常用存储引擎是MyISAM和InnoDB,二者区别如下:
MyISAM
查询速度快;
支持表级锁,在上锁期间表上不能进行其他操作;
支持全文检索;
支持数据压缩、自我复制、查询缓存、数据加密;
不支持外键;
不支持事务,所以也就没有COMMIT和ROLLBACK操作;
不支持集群数据库。
InnoDB
支持行级锁;
支持外键,对外键约束强制;
支持事务,可执行COMMIT和ROLLBACK操作;
支持数据压缩、自我复制、查询缓存、数据加密;
可用在集群环境,但并不完全支持。InnoDB表可以转换为NDB存储引擎,这样就能用在集群环境。