SQL优化

1. 导入数据优化

1.对于InnoDB类型的表示按照主键的顺序保存的,所以在导入前能将数据按主键顺序进行排序, 这样可以提高导入速度 2.导入数据前关闭数据库中唯一性检查, set UNIQUE_CHECKS=0,导入后再开启唯一性检查 set UNIQUE_CHECKS=1; 3. 导入数据前关闭自动提交方式, set AUTOCOMMIT=0, 导入数据后再开启自动提交 set AUTOCOMMIT=1, 这样也可以提高导入速度

2. INSERT 数据插入优化

1.如果从同一个客户端插入多行, 应尽量使用多个值表的INSERT语句, 这样可以减少客户端与服务器的连接次数,从而提高插入效率 insert into tableName(index1, index2...) values(v1, v2, ...),(v1, v2, ...)

2. 如果从不同的客户端插入很多行, 可以通过使用INSERT DELAYED语句提高插入速度

3.在建表的时候将将索引文件和数据文件分别存放在不同的磁盘上

4.当从一个文本文件装载一个表时,使用LOAD DATA INFILE,这通常比使用很多INSERT语句要快20倍

3. ORDER BY优化

order by 排序有两种方式, using index(有索引顺序) 和 filesort(通过返回数据排序), 显然使用第一种方式比第二种方式要快, 所在进行查询的时候尽量使用第一种查询方式。

1.为了效率, 在查询语句中应尽量避免使用SELECT * FROM 这样的语句

2. 尽量在where 和 order by 后边使用同一的字段

不使用索引的情况: 如果order by 中存在升降混合排序时,不使用索引,

如果在where 和 order by 后边字段不相同时,不使用索引

select * 查询是, 不用索引

4. GROUP BY 优化

默认情况下, 在GROUP BY col1, col2 后边的字段会进行排序, 如同在后边有order by col1, col2, 如果不希望对这些字段进行排序,那么可以使用 GROUP by col1, col2 ORDER BY null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值