前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL数据库索引

MySQL数据库索引

作者头像
灯珑LoGin
发布2022-10-31 09:44:14
1.9K0
发布2022-10-31 09:44:14
举报
文章被收录于专栏:龙进的专栏

建立数据库索引是提升运行效率的重要手段,使用索引能大大提升MySQL的检索速度。创建索引时,首先确保该索引是应用SQL查询语句的条件。(一般为where子句的条件)

索引有单列索引和组合索引两种。单列索引也就是一个索引只包含一个列,一个数据表可以包含多个单列索引,但是这个不是组合索引哦!!!!!!

组合索引是一个索引包含了多个列。

索引也是一张表,包含了主键和索引字段,并指向实体表的记录。

前面说了索引的好处,可以加快检索速度,但是,它也有缺点。过多的使用索引会降低更新表的速度,比如,在对表进行insert、update和delete时,速度会降低。因为MySQL不仅需要保存数据,还要更新索引文件。并且,建立索引要占用一定的磁盘空间。

唯一索引

唯一索引与前面提到的索引类似,区别在于,索引列的值必须唯一,但是允许有空值。如果是组合索引,则列值的组合必须唯一。

唯一索引有下列几种创建方式

直接创建索引

代码语言:javascript
复制
create unique index indexname on mytable(username(length))

通过修改表的结构增加索引

代码语言:javascript
复制
 alter table column_charset add unique index_name (c2(length));

创建表时直接指定

代码语言:javascript
复制
create table mytable(
    -> ID INT NOT NULL,
    -> username varchar(16) not null,
    -> unique indexname (id)
    -> );

普通索引

普通索引是最基本的索引,他没有任何限制。有下面三种方式,创建的时候和上面的唯一索引类似,只是少了unique标识符

直接创建索引

代码语言:javascript
复制
create unique index indexname on mytable(username(length))

如果是char和varchar类型,length字段可以小于字符实际长度;如果是blob和text类型,则必须指定length。

修改表结构来添加索引

代码语言:javascript
复制
alter table column_charset add index_name (c2(length));

创建表时直接指定

代码语言:javascript
复制
create table mytable2(
    -> ID int not null,
    -> username varchar(16) not null,
    -> index index_xxxx (username(16))
    -> );

删除索引

代码语言:javascript
复制
drop index index_xxxx on mytable2;

查看一张表的所有索引

代码语言:javascript
复制
show index from mytable;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年9月9日20,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 唯一索引
  • 普通索引
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档