快速入门MySQL数据库索引的基础知识
admin
2023-04-23 18:02:49
0

本文主要给大家介绍快速入门MySQL数据库索引的基础知识,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下快速入门MySQL数据库索引的基础知识吧。

------------------------索引的概念----------------------------

⑴数据库中的索引与书籍中的目录类似
在一本书,无须阅读整本书,利用目录就可以快速查找所需信息
书中的目录是一个词语列表,其中著名了包含个此的页码
⑵数据库索引
在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据
数据库中的索引是某一个表中一列或者若干列值的集合,以及物理标识这些值的数据页的逻辑指针清单

优点:加快查询速度、检索速度,可以准确的定位,不需要全篇去找


-------------------------索引的作用------------------------


⑴设置了合适的索引之后,数据库利用各种快速的定位技术,能够大大加快查询速率
⑵特别是当表很大时,或者查询设计到多表时,使用索引可使查询加快千倍
⑶可以降低数据库的IO(输入输出)成本,并且索引还可以降低数据库的排序成本
(读的时候会消耗内存)
⑷通过创建唯一性索引保证数据表数据的唯一性
⑸可以加快表与表之间的连接(可以把相关的字段当做一个索引)
⑹在使用分组的排序时,可大大减少分组和排序时间

 
----------------------索引的分类--------------------------

⑴普通索引
这是最基本的索引类型,而且它没有唯一性之类的限制

⑵唯一性索引
这种索引和前面"普通索引"基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一

⑶主键
这是一种唯一性索引,但它必须指定为"PRIMARY KEY"

⑷全文索引
MySQL3.23.23版开始支持全文索引和全文检索。在MySQL中,全文索引的索引类型为FULLTEXT,全文索引可以再VARCHAR或者TEXT类型的列上创建


------------------创建索引的原则依据-----------------

⑴表的主键、外键必须有索引

⑵数据量超过300行的表应该有索引

⑶经常与其他表进行连接的表,在连接字段上应该建立索引

⑷唯一性太差的字段不适合建立索引(重复性大,大众化,重复很多)

⑸更新太频繁地字段不适合创建索引

⑹经常出现在where子句中的字段,特别是大表的字段,应该建立索引

⑺索引应该建在选择性高的字段上

⑻索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引


-----------------创建索引的方法--------------------


根据企业需求选择了合适的索引之后,可使用CREATE INDEX创建索引

CREATE INDEX加上各个索引关键字便可创建各个类型的索引


PS:首先需要进入数据库


⑴创建普通索引

语法结构:create index (索引的名字)on tablename (列的列表)


举例:

mysql> create index salary_index on IT_salary(薪资);                    #创建IT_salary 的索引(默认普通索引),索引名称为salary_index

mysql> show index from IT_salary;                                                 #从IT_index数据表中,查看索引


⑵创建唯一性索引

语法结构:create unique index (索引名字)on tablename (表的名字)

举例:

mysql> create unique index salary_unique on IT_salary(姓名);              #创建IT_salary 的唯一索引,索引名称为salary_unique  

mysql> show index from IT_salary;                                                              #从IT_index数据表中,查看索引


⑶创建主键索引,有两种方式,一种实在创建表的同时创建主键,主键索引自动创建,

命令格式:

create table tablename([…],primary ke(表的名字));                             #创建表的时候,添加了主键,也就是自动创建了

alter table tablename add primary key(列的列表);                           #创建之后忘记添加主键,用此种方法


附加:

更改表结构

添加表 主键,命令格式:alter table <表名> add primary key(id);


1.增加一个列:

alter table info add column age int;

#更改表    info  增加    列    年龄 类型;


2.删除一个列:

  alter table info drop column age;

#更改表      info  删除    列      年龄;


主键索引例子

mysql> alter table IT_salary add primary key(员工ID);


⑷索引查看

show index from tablename;                  

show keys from tablename;


查看索引例子

mysql> show index from IT_salary;       

mysql> show keys from IT_salary;

看完以上关于快速入门MySQL数据库索引的基础知识,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。

相关内容

热门资讯

王虹赴法留学推荐信首次曝光,由... 7月28日,王虹推荐信 话题词冲上热搜第一。记者查询发现,近日刚获得有“数学界诺贝尔奖”美誉的菲尔兹...
原创 中... 柏林郊外一块不起眼的试验田里,几个德国研究员蹲在白菜地里忙活了三四年。他们手上那瓶液体不是化肥店买来...
原创 2... 新能源车这些年跑得飞快,可有个心结一直没解开。车主晚上把车停进地库,心里多少还是打个鼓——万一它半夜...
“最强模型”公开,人人都可自由... 7月27日深夜,月之暗面(Moonshot AI)宣布开源Kimi K3模型权重,发布47页技术报告...
MIT给VLA加“外挂”,让机... 视觉—语言—动作模型(VLA)已经能够完成不少复杂的机器人任务,但在实际运行中,机器人通常需要先停下...
华硕Intel 800系主板助... 随着本地大模型、AI绘图、AI视频生成以及智能办公等应用快速普及,AI主机正逐渐成为2026年DIY...
“七姐妹”市值一夜蒸发5.8万... 出品 | 搜狐科技 作者 | 梁昌均 美股遭遇“黑色星期四”。最新交易日,美股三大指数集体重挫,纳指...
OpenAI智能体攻击范围扩大... 【CNMO科技消息】7月29日,据路透社报道,此前引发关注的OpenAI智能体入侵Hugging F...
华为苹果正面硬刚 华为Mate... PChome 7月29日消息,据数码闲聊站爆料,国内手机品牌将于9月举办两场重磅发布会,9月上旬推出...