mysql优化

首先,通过show status 查看sql 语句状态


show session/global status


session 表示当前连接 global 表示数据启动之后


show status like "com_select%" 查询执行查询的次数


定位效率低的sql

开启慢查询日志

show variable like 'long_query_time'


解析效率低的sql 语句

explain select * from tablename;

desc select * from tablename;


优化

1:索引优化

where 语句中出现的列加索引

mysql 默认的索引结构BTREE

什么情况索引不生效?

1.like操作可能不会使用索引(一般使用like,而非正则,前者性能较高)

百分号在前的情况就不能使用索引 ‘%keyword’

2.column is null 时,索引生效, column is not null 时 索引不生效

3. where column1 or/and column2 必须两列都加索引 索引才生效

4. 索引列的类型是varchar ,如果输入查询条件输入整型, 索引不生效

show status like 'handler_read' 查看索引使用情况


2:表优化

check table tablename 检查表是否有错误

optimize table tablename 优化表,整合表空间碎片


3.分区技术

create table ...

partion by hash()/range/key/list


使用mysim存储引擎

innoDB 与 mysim 区别 

mysim 不支持事务 不支持外键 但是性能高

innoDB 默认是共享表空间,使用分区技术需要修改配置文件




你可能感兴趣的:(mysql学习日记)