mysql索引介绍


mysql索引介绍

什么是索引?

索引是一种高效获取数据的数据结构。

索引的类型

FULLTEXT,(HASH,BTREE[mysql主要使用的两种]),RTREE。

1、FULLTEXT

即为全文索引,目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。

全文索引并不是和MyISAM一起诞生的,它的出现是为了解决WHERE name LIKE “%word%"这类针对文本的模糊查询效率较低的问题。

(免费学习视频教程推荐:mysql视频教程)

2、HASH
由于HASH的唯一(几乎100%的唯一)及类似键值对的形式,很适合作为索引。

HASH索引可以一次定位,不需要像树形索引那样逐层查找,因此具有极高的效率。但是,这种高效是有条件的,即只在“=”和“in”条件下高效,对于范围查询、排序及组合索引仍然效率不高。

3、BTREE

BTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,依次遍历node,获取leaf。这是MySQL里默认和最常用的索引类型。

4、RTREE

RTREE在MySQL很少使用,仅支持geometry数据类型,支持该类型的存储引擎只有MyISAM、BDb、InnoDb、NDb、Archive几种。

相对于BTREE,RTREE的优势在于范围查找。

索引种类

普通索引:仅加速查询

唯一索引:加速查询 + 列值唯一(可以有null)

主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个

组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并

全文索引:对文本的内容进行分词,进行搜索

索引使用

1、创建索引

1 --创建普通索引CREATE INDEX index_name ON table_name(col_name);
2 --创建唯一索引CREATE UNIQUE INDEX index_name ON table_name(col_name);
3 --创建普通组合索引CREATE INDEX index_name ON table_name(col_name_1,col_name_2);
4 --创建唯一组合索引CREATE UNIQUE INDEX index_name ON table_name(col_name_1,col_name_2);

2、通过修改表结构创建索引

ALTER TABLE table_name ADD INDEX index_name(col_name);

3、创建表时直接指定索引

jQuery的页面功能分步指引介绍代码 jQuery的页面功能分步指引介绍代码

jQuery的页面功能分步指引介绍代码

jQuery的页面功能分步指引介绍代码 47 查看详情 jQuery的页面功能分步指引介绍代码
CREATE TABLE table_name (
    ID INT NOT NULL,col_name VARCHAR (16) NOT NULL,INDEX index_name (col_name)
);

4、删除索引

--直接删除索引DROP INDEX index_name ON table_name;
--修改表结构删除索引ALTER TABLE table_name DROP INDEX index_name;

5、其它命令

- 查看表结构
    desc table_name;
 - 查看生成表的SQL
    show create table table_name;
 - 查看索引
    show index from  table_name;
 - 查看执行时间
    set profiling = 1;
    SQL...
    show profiles;

索引失效的原因

1、全值匹配,相当于索引没有使用。

2、未满足最佳前缀法则也可能造成索引失效。

3、在索引上做关于(计算、函数、(自动or手动)类型转换),会造成索引失效而导致全表扫描。

4、mysql在使用不等于(,!=)的时候无法使用索引而导致全表扫描。

5、is null ,is not null 也无法使用索引。

6、like 以通配符开关('%abc')会导致索引失效而全表扫描。

7、字符串不加单引号索引会失效。

8、少用or,用or连接时会导致索引失效。

9、使用select * 查询,尽量使用覆盖索引。

mysql索引规约

1、【强制】业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引(说明:不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,

但提高查找速度是明显的;另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必然有脏数据产生。)

2、【强制】超过三个表禁止 join。需要 join 的字段,数据类型必须绝对一致;多表关联查询时,保证被关联的字段需要有索引。

(说明:即使双表 join 也要注意表索引、SQL 性能。)

3、【强制】在 varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度即可。

(说明:索引的长度与区分度是一对矛盾体,一般对字符串类型数据,长度为 20 的索引,区分度会高达 90%以上,

可以使用 count(distinct left(列名, 索引长度))/count(*)的区分度来确定。)

4、【强制】页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决。

(说明:索引文件具有 B-Tree 的最左前缀匹配特性,如果左边的值未确定,那么无法使用此索引。)

相关文章教程推荐:mysql教程

以上就是mysql索引介绍的详细内容,更多请关注其它相关文章!


# 索引  # 介绍  # 镜像  # 解锁  # mysql  # 南山营销seo推广  # 网站建设流程海报图  # 现场营销推广  # 延庆搜狗seo  # 云客网站优化  # 宁波seo专员分类  # 营销短视频推广案例  # 大理网站推广方案  # 老年实体营销推广案例  # 网站建设员都有哪些  # 也要  # 多个  # 是有  # 是一种  # 这是  # 修改密码  # 数据结构  # 相关文章 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 解决异步Python机器人中同步操作的阻塞问题  《万兴喵影》导出视频方法  哔哩哔哩黑名单怎么查看  《下一站江湖2》心法融合技巧  优化Google Charts Gauge:在数据库无数据时显示默认值  如何解决Casbin日志与应用日志不统一的问题,使用casbin/psr3-bridge实现无缝集成  嘀嗒顺风车如何开具电子发票  Lar*el Eloquent中通过Join查询关联数据表:解决多行子查询问题  《领英》查看屏蔽名单方法  英国搜索:多数英国人认为语言搜索是未来搜索  《美篇》取消会员自动续费方法  《随手记》关闭首页消息推送方法  批改网网页版登录 批改网电脑版学生登录入口  Win10如何关闭开机锁屏界面_Windows10跳过锁屏直接登录设置  《下一站江湖2》大雪山加入方法  如何外贸网站设计-能留住客户提升用户体验!  word文档中的分隔符有哪些不同类型和用途_Word分隔符类型与用途方法  邮编号码查询app有哪些_邮编号码查询推荐app及使用体验  《360浏览器》自动保存账号密码设置方法  《procreate》绘制渐变效果教程  PHP动态导航按钮:根据用户登录状态切换链接与文本  如何用Golang优化微服务间请求性能_Golang 微服务请求性能优化方法  C++中std::thread和std::async的区别_C++并发编程与线程与异步任务比较  怎么恢复删除的电脑文件_数据恢复软件使用教程  鸣潮历史学家灯塔位置一览  视频转蓝光m2ts格式  CSS如何控制元素外边距_margin实现布局间隔  漫蛙漫画直连入口 _ manwa官方备用入口实时检测  J*aScript二进制处理_ArrayBuffer与Blob  AngularJS动态内容中DOM元素查找的时序问题及$timeout解决方案  钉钉任务无法提醒如何处理 钉钉任务提醒优化方法  《KARDS》冬季扩展包“国土阵线”上线!全新“协力”机制改变战场格局  背部总是隐隐作痛怎么回事 背痛如何改善  LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用  Three.js中动态更换3D模型纹理的教程  WooCommerce 新客户订单自动添加管理员备注教程  Flexbox布局中Stencil组件宽度不显示问题解析与:host尺寸控制  J*aScript与CSS动画:实现平滑顺序淡入淡出效果并解决显示冲突  汽水音乐官方网站登录入口_汽水音乐网页版进入链接  《深林》冬季章节图文攻略  漫蛙漫画官方版直通入口 2025漫蛙漫画免注册访问说明  手机坏了微信聊天记录怎么导出来 新手机恢复聊天记录技巧  偃武诸葛亮阵容搭配推荐  mysql中外键约束如何使用_mysql FOREIGN KEY操作  泰拉瑞亚网页版在线登录入口 泰拉瑞亚官方正版入口  百度网盘网页入口链接分享 百度网盘官网入口网页登录  店铺如何关联视频号推广?视频号推广有什么用?  2025考研成绩查询时间入口分享  TikTok网页版入口快速访问 TikTok官网账号登录方法  c++如何实现观察者设计模式_c++行为型设计模式实战 

 2020-01-30

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.