MySQL优化方法

1、提高sql文件导入的效率有以下几种方法:

1.1、主键顺序插入:

主键有顺序:主键自增 执行效率快
主键无顺序:自定义主键 执行效率相对较慢

1.2、关闭唯一性校验

在导入之前关闭唯一性校验         set unique_checks = 0;         
在导入之后开启唯一性校验         set unique_checks = 1;     

1.3、手动提交事务

关闭自动提交:set autocommit = 0;
开启自动提交:set autocommit = 1;

2、查看sql主键

head sql1.log

3、sql文件导入

load data local infile 本地SQL文件地址 into table 表名 fields terminated by ',' lines terminated by '\n';

4、优化insert语句

多行插入
在事务中进行数据插入
数据有序插入

5、优化order by语句

多字段排序
有序索引

6、优化group by语句

order by null 不排序

7、优化嵌套查询

子查询产生一个临时表,在临时表中进行查询。
exist  走索引
in     走索引

8、优化OR条 件

建议使用uninone(并集)来替换null

9、优化分页

越往后查询效率越低,分页加排序
根据id进行查询
适用于主键自增的表,可以把limit查询转换成某个位置的查询。

10、filesort的优化

MySQL的两种排序算法:

(1)两次扫描算法:根据条件去除排序字段和行指针信息,然后再排序区排序,如果surt buffer不够,则在临时表在存储排序结果。完成排序之后,在根据行指针徽标读取记录。

(2)一次扫描算法:一次性去除满足条件的所有字段,然后再排序后直接输出结果集。排序时内存开销大,但是效率高。

11、使用SQL提示

SQL提示,是优化数据库的一个重要手段,SQL提示就是在sql语句中加入一些人为的提示来达到优化操作的目的
use index 提供一个参考,建议你使用
ignore index 忽略一个索引
force index 强制使用一个索引

12、两种排序方式

(1)通过对返回数据进行排序,也就是通常说的filesort排序,所有不是通过索引直接返回排序结果的排序都叫FileSort排序。

(2)通过有序索引顺序扫描直接返回有序数据,这种情况即为using index,不需要额外排序,操作效率高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值