mysql重复索引与冗余索引实例分析
作者:webbc 发布时间:2024-01-25 11:52:53
标签:mysql,重复索引,冗余索引
本文实例讲述了mysql重复索引与冗余索引。分享给大家供大家参考,具体如下:
重复索引:表示一个列或者顺序相同的几个列上建立的多个索引。
冗余索引:两个索引所覆盖的列重叠
冗余索引在一些特殊的场景下使用到了索引覆盖,所以比较快。
场景
比如文章与标签表
+——+——-+——+
| id | artid | tag |
+——+——-+——+
| 1 | 1 | PHP |
| 2 | 1 | Linux |
| 3 | 2 | MySQl |
| 4 | 2 | Oracle |
+——+——-+——+
在实际使用中, 有2种查询
artid—查询文章的—tag
tag—查询文章的 —artid
SQL语句:
select tag from t11 where artid=2;
select artid from t11 where tag='PHP';
我们可以建立冗余索引,来达到索引覆盖的情况,这样的查询效率会比较高。
1、建立一个文章标签表
这个表中有两个索引,一个是at,一个是ta,两个索引都用到了artid和tag两个字段。
CREATE TABLE `t16` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`artid` int(10) unsigned NOT NULL DEFAULT '0',
`tag` char(20) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `at` (`artid`,`tag`),
KEY `ta` (`tag`,`artid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
2、测试两条SQL语句
select artid from t11 where tag='PHP';
这条语句的查询分析中的Extra有Using index,表示此处用到了索引覆盖,使用索引覆盖后就不需要回行查询数据,这样的查询效率比较高。
select tag from t11 where artid = 1;
这条语句的查询分析中的Extra有Using index,表示此处用到了索引覆盖,使用索引覆盖后就不需要回行查询数据,这样的查询效率比较高。
关于索引覆盖的详细内容可以查看前面一篇文章:索引覆盖
希望本文所述对大家MySQL数据库计有所帮助。
来源:https://blog.csdn.net/baochao95/article/details/62439908


猜你喜欢
- 个人认为python的paramiko模块是运维人员必学模块之一,其ssh登录功能是旅行居家必备工具。安装paramiko很简单,pip i
- 本文实例讲述了Python爬虫爬取电影票房数据及图表展示操作。分享给大家供大家参考,具体如下:爬虫电影历史票房排行榜 http://www.
- 1 安装Djangopython -m pip install django2 新建项目 my_apidjango-admin startp
- <% Function XMLEncode(byVal sText) sText = Replace(sText, "&am
- sql注入:正常情况下:delete.php?id=3;$sql = 'delete from news where id =
- 这篇文章主要介绍了Python socket聊天脚本代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 在计算机普及的现代设计领域,文字的设计的工作很大一部分由计算机代替人脑完成了(很多平面设计软件中都有制作艺术汉字的引导,以及提供了数十上百种
- 我们知道django的orm想实现自增,可以直接使用AutoField字段既可以实现,但是这种情况必须要求此字段是主键,但是我们知道主键只能
- 前言上一次做了路由的相关配置,原本计划今天要做vuex部分,但是想了想,发现vuex单独的客户端部分穿插解释起来很麻烦,所以今天改做服务端部
- 废话不多说,直接开干!抖音字符视频在今年火过一段时间。反正我是始终忘不了那段刘耕宏老师本草纲目的音乐…这一次自己也来实
- 摘要如何用beautifulsoup4解析各种情况的网页beautifulsoup4的使用关于beautifulsoup4,官网已经讲的很详
- tkinter如何实现下拉框联动有些小伙伴想在GUI界面上实现像前端一样的下拉框联动的效果,但是前端可以通过Ajax实现,GUI如何实现呢,
- 了兑现我对大家的承诺,我们现在立即就将“借助数据库和ASP程序”编写出来的,可以同时适用于IIS和P
- 问题描述因为项目强制关闭,但是服务还在运行,导致重新运行项目时候 提示地址已经使用(端口被占用)/usr/bin/python3.5 pyt
- 除了常用的csv文件和excel文件之外,我们还可以通过PY把数据保存文npy文件格式和mat文件格式。1. npy文件npy即numpy对
- Python是一种计算机程序设计语言,一种面向对象的动态类型语言,一种脚本语言。最初被设计用于编写自动化脚本(shell)的,常用于各种服务
- 前言上篇文章 一文了解 Go 标准库 strings 常用函数和方法 介绍了 strings 标注库里的一些常用的函数和方法,本文也是以 s
- 近日,2018年最具就业前景的7大编程语言排行榜出炉了。这次的编程语言排行榜是由CodingDojo(编码道场)发布。在此次的最有“钱”途的
- UNIONUNION语义:取两个子查询结果的并集,重复的行只保留一行表初始化CREATE TABLE t1(id INT PRIMARY K
- 本文实例讲述了Python实现读取SQLServer数据并插入到MongoDB数据库的方法。分享给大家供大家参考,具体如下:# -*- co