Mysql复习1--理论基础+操作实践--更新中

发布时间:2024年01月24日

索引InnoDB引擎MyISAM引擎Memory引擎
Btree索引支持支持支持
hash索引不支持不支持支持
R-tree索引不支持支持不支持
Full-text索引5.6版本以后支持支持不支持

索引

解释说明:
索引指的是帮助mysql高效的获取数据的结构叫做索引(有序)

没有建立索引的时候–全表扫描–再数据非常庞大的时候查询效率会非常慢
在这里插入图片描述
建立索引的时候----参考BTree和B+tree
在这里插入图片描述

优点:
1.提高了数据检索的效率降低了数据库的io成本
2.通过索引列对数据进行排序,降低额数据排序的成本,降低CPU的消耗
缺点:
1.索引本身也是一种数据结构,所以也就会占用一定的磁盘空间
2.可以参考btree树和b+tree树的规则就知道,他是可以提高插叙效率但是再新增删除修改数据的时候是比较麻烦的,每次都有可能调整索引的数据结构

索引的分类

索引解释说明
单值索引即一个索引只包含单个列,一个表可以有多个单列索引
唯一索引索引列的值必须唯一
复合索引即一个索引包含多个列

索引的语法
例如:现在有一个表

create table city
(
    city_id    bigint      null comment '城市id',
    city_name  varchar(50) null comment '城市名称',
    country_id bigint      null comment '国家id',
    constraint city_pk
    primary key (city_id)
);

create table country
(
    country_id   bigint      null comment '国家id',
    country_name varchar(50) null comment '国家名称',
    constraint country_pk
        primary key (country_id)
);

#创建索引语法
create [unique | fulltext |spatial] index index_name [using index_type] on tbl_name(index_col_name,...)

index_col_name: column_name[(length)][asc | desc]
#实例sql(普通索引):
create index idx_city_name on city(city_name);

#查看索引
show index from table_name;
show index from city\G;


在这里插入图片描述

#删除索引
drop index index_name on tbl_name;
drop index idx_city_name on city;

#alter命令操作
1.添加主键--索引引用值必须唯一并且不可以为null
alter table tb_name add primary key(column_list);
2.添加唯一索引
alter table tb_name add unique index_name(column_list);
3.普通索引--索引值可以出现多次
alter table tb_name add index index_name(column_list);
4.FULLTEXT--指定的索引为FULLTEXT,用于全文检索
alter table tb_name add fulltext index_name(column_list)

索引设计原则

文章来源:https://blog.csdn.net/weixin_52352342/article/details/135815943
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。