insert select效率_简单谈谈如何提高sql效率

从最开始学习sql到至今,sql语句也是写了很多,但是一直都在专注于实现功能,很少关注效率。工作中常常听到吐槽,说有的sql语句真是触目惊心,明明可以简简单单提升多倍效率,但是偏偏选择一个耗时间的sql。因此,在这里简单聊一聊如何提高sql的效率,与大家共同进步哦~由于不同数据库支持的sql语句还是会有一些差异,我下文涉及到的是基于mysql来进行的,但是本文思想还是所有适用sql的平台通用的。一...
摘要由CSDN通过智能技术生成

a70b04a59803068a400d72bb8e3d7470.png

从最开始学习sql到至今,sql语句也是写了很多,但是一直都在专注于实现功能,很少关注效率。工作中常常听到吐槽,说有的sql语句真是触目惊心,明明可以简简单单提升多倍效率,但是偏偏选择一个耗时间的sql。因此,在这里简单聊一聊如何提高sql的效率,与大家共同进步哦~

由于不同数据库支持的sql语句还是会有一些差异,我下文涉及到的是基于mysql来进行的,但是本文思想还是所有适用sql的平台通用的。

一、explain语句

explain关键字可以模拟MySQL优化器执行SQL语句,可以很好的分析SQL语句或表结构的性能瓶颈。

explain的用法:explain+sql语句,例如:explain select * from securityprice order by `index`

结果如下:

fdec4d3c95dcadbc368f462c1f1f132b.png

结果包含12个字段:

1. id //select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序
2. select_type //查询类型
3. table //正在访问哪个表
4. partitions //匹配的分区
5. type //访问的类型
6. possible_keys //显示可能应用在这张表中的索引,一个或多个,但不一定实际使用到
7. key //实际使用到的索引,如果为NULL,则没有使用索引
8. key_len //表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度
9. ref //显示索引的哪一列被使用了,如果可能的话,是一个常数,哪些列或常量被用于查找索引列上的值
10. rows //根据表统计信息及索引选用情况,大致估算出找到所需的记录所需读取的行数
11. filtered

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值