前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于 MySQL索引的注意点

关于 MySQL索引的注意点

作者头像
星哥玩云
发布2022-08-16 13:54:43
3340
发布2022-08-16 13:54:43
举报
文章被收录于专栏:开源部署

索引

其实数据库中的数据是按页存放的 其实索引也是按页存放的 所以本质上索引也占硬盘空间(以最小的消耗,换取最大的利益)

索引是一种有效组合数据的方式!为快速查找到指定记录做铺垫

目的就是快速或者某个记录!提高了数据库的检索速度! 作用: 大大提高数据库的检索速度 改善数据库性能

MySQL索引存储类型分类   01.B-树索引:InnoDB,MyISAM均支持   02.哈希索引

其实索引是把双刃剑(利弊共存),如果使用不当,反而会降低索引性能

主键:加快检索数据/唯一标识

常用索引类型:   01.普通索引:允许在定义为索引的列中 出现 重复值和空值!   02.唯一索引:索引列不允许出现重复值,但是可以出现一个空值!   03.主键索引:创建主键的时候,系统会默认创建一个主键索引!唯一!不能为空!   04.复合索引:将我们的多个列组合起来!(name,sid)姓名和身份证号!   05.全文索引:允许值的全文查询!允许空值和重复值!适合在一个内容比较多的列!text!   06.空间索引:对空间数据类型的列建立的索引

■按照下列标准选择建立索引的列 频繁搜索的列 经常用作查询选择的列 经常排序、分组的列 ,经常用作连接的列(主键/外键) ■请不要使用下面的列创建索引 仅包含几个不同值的列 表中仅包含几行

Eg:

--  查询指定表的索引 SHOW INDEX FROM student; TABLE:索引所在的表 Non_unique:索引是否唯一  0:唯一  1:不唯一 key_name:索引名称 seq_in_index:该列在索引中的位置 column_name:定义所用的列名称 null:该列是否为空 index_type:索引类型   

--  给姓名增加 普通索引 CREATE  INDEX index_studentName ON student(studentName); -- 给学生姓名和身份证号 增加 组合索引 CREATE INDEX index_name_sid ON student(studentName,identityCard)

--  删除索引 DROP INDEX index_name_sid ON  student; DROP  INDEX index_studentName ON  student;

--  创建索引的原则   01.经常被查询的列   02.经常用作选择的列   03.经常排序,分组的列   04.经常用作连接的列(主键/外键)

使用索引时的注意事项:   01.查询时减少使用*返回全部的列,不要返回不需要的列!   02.索引尽量要少,在字节数小的列上建立索引!   03.where字句中有多个条件表达式的时候,包含索引的列要放在其他表达式之前!   04.在order by的字句中避免使用表达式!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档