sql:SQL优化知识点记录(八)

这篇具有很好参考价值的文章主要介绍了sql:SQL优化知识点记录(八)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(1)索引面试题分析

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

所谓索引:就是排好序的快速查找数据结构,排序家查找是索引的两个用途

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

select * 在where使用到了索引,当select *  有模糊查询%在左边索引会失效 

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

当select * where后面索引的顺序发生变化,也会用到索引4个 sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

我们where后面倒着排序,也会使用到索引4个

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

上面,因为有MySql查询优化器,它会把Msql的命令自动的调整和优化,已达到最佳效果

查询* ,where后面c3>a3,用到了范围导致索引失效 ,用到了3个索引c1 c2 c3,大小93

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

用到了范围导致索引失效 ,Msql优化器话进行优化,用到了4个索引c1 c2 c3c4 ,大小124

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

用到2个索引,大小62,严格来说c3也用到了,它没有用于查找,用于了排序

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

Extra:出现了Using filesort,因为where后面没有按照我建立索引的顺序使用缺少了c3,用c4去排序,产生了文件内排序,这个是非常影响性能的

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

用到1个索引:c1,c2c3用到去排序去啦sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言 

出现了文件内排序,因为order by 后面没有按照建立索引的顺序使用

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

用到2个索引c1c2 查找和排序都是按照顺序的

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

 用到2个索引c1c2 查找和排序都是按照顺序的

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

只要order by 使用的跟建立的顺序不一样们就会产生文件内排序,这个是个例外,因为排序字段已经是一个常量了,常量了排序就没用了,就没有产生文件内排序,跟下面那个进行对比

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

用到了group by后按照顺序,这里索引用到了一个c1

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

 用到了group by,这里索引用到了一个c1,但是group by没有按照索引的顺序,多了Using filesort 和Using temporarysql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

 sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

(2)总结口诀

当中间使用like %(在右边)也是范围查询是具体的范围查询,type为range它跟>不一样,他能使用到like后的索引,用到了3个索引

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

 当中间使用like %(在左边)不是具体的范围,这个type不是range,只用到一个索引c1sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

 当中间使用like   %  ... %(两个%)不是具体的范围,这个type不是range,只用到一个索引c1

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言 当中间使用like %(最左边有具体的开头)使用到3个索引sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言

sql:SQL优化知识点记录(八),数据库知识点总结,java,数据库,开发语言文章来源地址https://www.toymoban.com/news/detail-691230.html

到了这里,关于sql:SQL优化知识点记录(八)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • sql:SQL优化知识点记录(七)

      查询*, 百分号加右边,否则索引会失效 没建立索引之前都是全表扫描   没建立索引 建立索引: 建立索引 id是主键,他也可以从主键上取   覆盖索引要到了name,索引没有失效  覆盖索引要到了age,索引没有失效  不使用* 查找,覆盖索引没有失效 使用*查找:个数上超

    2024年02月09日
    浏览(47)
  • sql:SQL优化知识点记录(四)

    type下的ref是非唯一性索引扫描具体的一个值 ref属性 例如:ti表先加载,const是常量  t1.other_column是个t1表常量 test.t1.ID:test库t1表的ID字段        t1表引用了shared库的t2表的col1字段,t1.col2=‘’ac‘’是一个常量  t2表没有索引只有id主键,col1,col2没有建立索引      rows越少

    2024年02月10日
    浏览(38)
  • sql:SQL优化知识点记录(六)

      查看一下有没有建立索引: 用到索引中的一个:type中的ref决定访问性能  用到索引中的两个:通过key_len的长度可以看出来,比第一个大一点。或者通过ref:中用到了两个常量const 用到了三个索引:key_len比第二个又大了一点,用到了三个常量const 一下的结果都能查出,但是

    2024年02月10日
    浏览(31)
  • sql:SQL优化知识点记录(十一)

    新的一个优化的方式show Profile   运行一些查询sql: 查看一下我们执行过的sql   显示sql查询声明周期完整的过程:  当执行过程出现了下面这4个中的时,就会有问题导致效率慢  8这个sql创建了临时表导致sql变慢 Show Profile:记录了我们后台要开启的一些sql,全局查询日志呢,

    2024年02月09日
    浏览(77)
  • sql:SQL优化知识点记录(五)

          上面的功能已经实现,但是分析功能, 使用explain分析这条sql: 发现type为All Extra:有Using filesort (文件内排序) 这两个是影响性能的    查看下这张表:只有一个主键索引  为这几个字段建立一个符合索引:   建立完索引后,在使用explain进行分析一下:type变成了r

    2024年02月10日
    浏览(44)
  • SQl Server 2008 知识点概括【数据库】

    什么是数据库? 数据库是采用计算机技术统一管理的相关数据的集合,数据库能为各种用户共享,具有冗余度最小、数据之间联系密切、有较高数据独立性等特点。 Microsoft SQL Server 系统的体系结构 Microsoft SQL Server 2008系统由4个主要部分组成,这4个部分被称为4个服务,这些服

    2024年02月05日
    浏览(37)
  • ORACLE数据库 —— PL/SQL知识点2

    ORACLE数据库  PL/SQL语句基础知识点  适合有SQL基础的人群。  禁止转载! 内置函数 字符串函数     lower(列名|字符串)函数用于返回字符串的小写形式。         eg.SELECT ename,sal FROM emp WHERE ename=lower(\\\'ename\\\');     upper(列名|字符串)函数用于返回字符串的大写形式。       

    2024年02月08日
    浏览(37)
  • 数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

    🌟 博主: 命运之光 🦄 专栏: 离散数学考前复习(知识点+题) 🍓 专栏: 概率论期末速成(一套卷) 🐳 专栏: 数字电路考前复习 🦚 专栏: 数据库系统概述 ☀️ 博主的其他文章: 点击进入博主的主页​​​​​ 前言: 身为大学生考前复习一定十分痛苦,你有没有过

    2024年02月10日
    浏览(51)
  • SQL 50 题(MySQL 版,包括建库建表、插入数据等完整过程,适合复习 SQL 知识点)

    ① 本文整理了经典的 50 道 SQL 题目,文本分为 建库建表 、 插入数据 以及 SQL 50 题 这三个部分。 ② 这些题目许多博主也整理过,但本人不太了解这些题目具体的出处。第一次了解这些题目是本科期间老师出的题目。如果有网友知道这些题目的最原始出处,可以在评论评论区

    2024年02月07日
    浏览(30)
  • SQL高级知识点

    MySQL基础 1、安装    1)设置编码    2)设置密码 2、配置文件:my.ini、my.cnf    1)设置端口号      port=3306    2)设置编码    3)存储引擎     4)最大连接数    注意:重启mysql服务 3、登陆mysql数据库    问题:\\\"mysql\\\"不是系统内部或外部命令....    解决:将mysql的bin目录配置到

    2024年02月10日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包