sql--索引使用 ---覆盖索引

这篇具有很好参考价值的文章主要介绍了sql--索引使用 ---覆盖索引。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

覆盖索引

sql--索引使用 ---覆盖索引,数据库

sql--索引使用 ---覆盖索引,数据库

Select 后接 * 走id索引才是最优,使用二级索引则需要回表(性能稍差)

sql--索引使用 ---覆盖索引,数据库

前缀索引

Create index 索引名 on 表名( 字段名( n ) )  

n数字   n代表提取这个字符串的n个构建索引

??那么 n 为几性能是最好的呢?

sql--索引使用 ---覆盖索引,数据库

distinct 去重

Count 统计

Select count(*)from tb_user  -- 总数量

Select count( distinct email)from tb_user   -- 去重后数量

图片是去重 email 前五位相同的 数量

计算选择性

字段去重后数量/字段总数  = 1   选择性越接近1  或等于1  是选择性是最好的

单列索引与联合索引的选择

sql--索引使用 ---覆盖索引,数据库

Select id, phone,name  from tb_user where phone = ‘17799990010’ and name = ‘韩信’

Elplain查看执行计划    phone和name都是单列索引,只走了一个索引

sql--索引使用 ---覆盖索引,数据库

Select 需要的数据为  id, phone,name

                                     Extra 为null 代表需要回表查询

单列索引--不涉及覆盖查询,叶子节点只有phone 和 id 需要回表才能得到name

创建联合索引    创建唯一索引关键字 unique

Create unique index 索引名 on 表名(字段名1,字典名2)

创建phone 和 name 的联合索引进行查询

查看执行计划

sql--索引使用 ---覆盖索引,数据库

覆盖查询

sql--索引使用 ---覆盖索引,数据库

更建议建立联合索引--提升效率

索引设计原则

sql--索引使用 ---覆盖索引,数据库

sql--索引使用 ---覆盖索引,数据库

主键索引 唯一索引 常规索引  全文索引   全部分为两类 聚集索引  二级索引

聚集索引肯定存在且只有一个,默认主键索引就是聚集索引,如果没有主键,则默认第一个唯一索引为聚集索引,如果主键和唯一索引都没有则会隐藏的生成rowid作为聚集索

sql--索引使用 ---覆盖索引,数据库文章来源地址https://www.toymoban.com/news/detail-723747.html

到了这里,关于sql--索引使用 ---覆盖索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • GaussDB云数据库SQL应用系列—索引管理

    目录 一、前言 二、注意事项 三、索引创建 1、创建普通索引 2、创建唯一索引 3、创建多字段索引 4、创建部分索引 5、创建表达式索引 四、索引管理 1、查看索引信息 2、删除索引 总结 随着互联网的快速发展,数据量呈现爆炸式增长。如何高效地管理和查询这些数据成为了

    2024年02月09日
    浏览(43)
  • MySQL数据库中的索引(含SQL语句)

    假设有一张表,表中有100万条数据,这100万条数据在硬盘上是存储在数据页上的,一页数据大小为16k。存储100万条数据那么就需要数据页,假设其中有一条数据是“id为7900”的,那么如果要查询这条数据,其中SQL是SELECT * FROM 表名 WHERE id = 7900。在执行这条SQL语句的时候,MyS

    2024年02月02日
    浏览(60)
  • sql--索引使用 ---覆盖索引

    Select 后接 * 走id索引才是最优,使用二级索引则需要回表(性能稍差) 前缀索引 Create index 索引名 on 表名( 字段名( n ) )   n数字   n代表提取这个字符串的n个构建索引 ??那么 n 为几性能是最好的呢? distinct 去重 Count 统计 Select count(*)from tb_user  -- 总数量 Select count( d

    2024年02月07日
    浏览(27)
  • 索引使用——SQL提示、覆盖索引、回表查询

    use index是给MySQL一个提示,在执行的时候尽量使用该索引,至于MySQL最后会不会接收该建议,则不一定。 ignore index是mysql忽略某个索引。 force index则强制mysql使用该索引。mysql别无选择。 覆盖索引和回表查询是两个相对的概念,先讲一下回表查询。 回表:指的是先走二级索引去

    2024年02月16日
    浏览(28)
  • 【从删库到跑路】MySQL数据库的索引(二)——索引的使用和选择

    🎊专栏【MySQL】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【The Right Path】 🥰欢迎并且感谢大家指出小吉的问题 🎈没有创建索引时,执行SQL语句,查看SQL的耗时 🎈 创建索引后 ,执行SQL语句,查看SQL的耗时 比较发现,时间减少了 🎈细节 创建索引 相

    2024年02月16日
    浏览(38)
  • SQL Server数据库使用SQL Server代理实现数据库自动备份

    在现实中,为了保证数据的安全和完整,防止人为错误和硬件故障等造成的数据丢失和损坏,就需要用到数据库的备份,不同的数据库方法有所差别,我这边主讲SQL Server数据库的备份和使用SQL Server代理作业实现数据库的定时备份。 目录 一、开启SQL Server代理 1、找到SQL Serv

    2024年02月09日
    浏览(57)
  • 数据库为什么使用B+树而不是B树做索引

    🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于PHP专栏:MySQL的100个知识点。 🎉欢迎 👍点赞✍评论⭐收

    2024年02月10日
    浏览(38)
  • 数据库SQL语句使用

    -- 查询所有数据库 -- 创建数据库,数据库名为mydatabase   -- 如果没有名为 mydatabase的数据库则创建,有就不创建   -- 如果没有名为 mydatabase的数据库则创建,有就不创建,数据库字符编码设置为utf8mb4 -- 使用数据库 -- 删除名为mydatabase的数据库 -- 如果有名为 mydatabase的数据库则

    2024年02月12日
    浏览(32)
  • 【数据库】日常使用PL/SQL 登录ORACLE 数据库查询数据

    一、PL/SQL 登录方式 username: ##访问数据库的账号 password: ##访问数据库的密码 Databse: ##数据库IP地址/实例名 数据库集群心跳地址/实例名 Connect as : ##Normal,如果使用sysdba账户登录选择SYSDBA 二、PL/SQL使用SQL语句查询 点击上方导航栏,New,选择SQL Window,即可再次输入要查询的

    2024年02月19日
    浏览(54)
  • SQL Server数据库使用

    SQL Server 2008 R2的安装和使用 安装前的准备 安装过程 1)安装所选功能 2)安装的类型:默认或命名实例 3)服务账户 4)身份验证模式 5)排序规则设置 6)开始安装 7)完成安装 验证数据库安装成功 【开始】|【程序】中可以看到Microsoft SQL Server 2008的程序组 启动和停止数据库

    2024年02月11日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包