千家信息网

Mysql索引、存储引擎有何具体区别

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,下文我给大家简单讲讲关于Mysql索引、存储引擎有何具体区别,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完Mysql索引、存储引擎有何具体区别对大家多少有点帮助吧。一、
千家信息网最后更新 2026年10月31日Mysql索引、存储引擎有何具体区别

下文我给大家简单讲讲关于Mysql索引、存储引擎有何具体区别,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完Mysql索引、存储引擎有何具体区别对大家多少有点帮助吧。


一、普通索引:index
查看索引:
desc 库名.表名;
show index from 库名.表名;

默认使用的索引类型:
BTREE(二叉树) hash B+Tree

创建索引:
--》建表时创建:
creat table 表名(
字段名 类型(宽度) 约束条件,
字段名 类型(宽度) 约束条件,
index(字段1),index(字段2)
);
create table t2 (
name char(10) not null,
index(name)
);

--》已有表添加索引:
create index 索引名 on 表名(字段名);
create index id on t1(id);

//注意:我们索引名与字段名可以不相同,但是为了方便辨认,我们一般将索引名与字段名设置相同。

删除索引:
drop index 索引名 on 表名;

##########################################################################################3

二、主键:primary key

使用规则:
-->设置主键的字段的值,不能重复,且不能赋空值
--》一个表只能有一个主键
--》如果,多个字段都作为primary key,称为复合主键,必须一起创建。
--》主键字段的key标志为pri
--》通常与auto_increment(自动增长),一起连用。

创建主键:
--》建表时创建:
create table 表名(
字段名1 类型(宽度) 约束条件,
字段名2 类型(宽度) 约束条件,
primary key(字段名1,字段名2)
);
create table t4(
id int auto_increment, //设置自动增长(不赋值时,会根据上条记录自动加1)
name char(10),
primary key(id,name) //设置复合主键
);

--》已有表创建:
alter table 表名 primary key(字段名);
alter table t1 primary key(id);

删除主键:
alter table 表名 drop primary key;

##########################################################################################

三、唯一索引:unique

使用规则:
--》字段值可以为null,但不能重复
--》当将字段修改为null,限制与主键相同,
--》表中可以有多个unique字段

创建唯一索引:
--》建表时创建:
create table 表名(
字段名1 类型(宽度) 约束条件,
字段名2 类型(宽度) 约束条件,
unique(字段名1),
unique(字段名2)
);
create table t5(
id int,
name char(10),
unique(id),
unique(name)
);

--》已有表创建:
create unique index 索引名 on 表名(字段名);

删除唯一索引:
drop index 索引名 on 表名;

#############################################################################################

四、外键:foreign key
外键:
让当前表字段的值在另一个表中字段值的范围内选择。

使用规则:
--》表的存储引擎必须是innodb
--》字段类型要一致
--》被参照字段必须要是索引类型的一种

创建外键:

命令:foreign key(字段名) references 表名(字段名)
on update cascade on delete cascade

create table jfb(
id int auto_increment,
name char(10),
pay float(7,2),
primary key(id),
);

create table xsb(
num int,
name char(10),
class char(10),
foreign key(num) references key(id) on update cascade on delete cascade
);

//创建jfb表,创建xsb表。xsb的num需要参考jfb中的id字段。即将num设为外键,将jfb中的id设为参考键。并设置自动更新。

insert into jfb values(1,"bob",20000),(2,"lucy",19000);

insert into xsb values(3,"jim","1709"); //无法插入,因为num的值,不在jfb的id值范围内。
insert into xsb values(1,"jim","1709"; //插入成功

update jfb set id=6 where name="bob"
select * from xsb; //更新jfb中的id字段数据,查看xsb中的记录,也同时更新

delete from jfb where name="bob";
selece * from xsb; //删除jfb表中记录,xsb中的记录也随之删除。

查看外键:
show create table 表名; //可以查看外键信息,包含外键名

删除外键:
alter table 表名 drop foreign key 外键名;

##############################################################################################


mysql存储引擎:

一、介绍:
mysql数据库服务软件自带的程序,不同的存储引擎有不同的功能和数据存储方式,是表的处理器。

mysql服务体系结构:
连接池
sql接口
分析器
优化器
查询缓存
存储引擎
文件系统
管理工具

########################################################################################

二、基本设置、
查看数据库服务使用的存储引擎:
show engines;
查看表使用的存储引擎:
show create table 表名;

设置数据库服务使用的存储引擎:
vim /etc/my.cnf
[mysql]
default-storage-engine=引擎类型
设置表的存储引擎:
create table 表名(。。。。); //使用默认引擎
create table 表名(。。。。)engine=innodb; //设置存储引擎为innodb

修改表使用的存储引擎:
alter table 表名 engine=存储引擎类型;

################################################################################3

三、常用引擎的特点:
myisam特点:
表.MYI 索引信息
表.MYD 数据
表.frm 表结构
支持表级锁 (锁一张表)
不支持事务 事务回滚

innodb特点:
表.frm 表结构
表.ibd 索引信息+数据
支持行级锁 (只给当前被访问的行加锁)
支持事务 事务回滚


锁的作用:解决并发访问冲突问题。

锁类型 :读锁 和 写锁


锁粒度 : 行级锁 表级锁


事务: 一次数据访问从开始到结束的过程 称为事务
事务回滚: 一次数据访问 任意一步执行失败,恢复所有操作。
事务的特性: 一致性 原子性 隔离性

事务日志文件:记录对innodb存储引擎的表执行过的操作。

工作如何如何决定表使用的存储引擎:
接收写操作多的表适合使用innodb存储引擎。
接收读操作多的表适合使用myisam存储引擎

大家觉得Mysql索引、存储引擎有何具体区别这篇文章怎么样,是否有所收获。如果想要了解更多相关,可以继续关注我们的行业资讯板块。

字段 引擎 索引 存储 类型 事务 数据 宽度 条件 支持 服务 相同 信息 数据库 特点 结构 规则 更新 不同 一致 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 博彦科技互联网金融 互联网科技公司的优势 互联网科技有限公司图片 互联网科技英文 致骋互联网科技 互联网 新科技 左右互联网络科技 开启互联网科技时代小说 恒银科技与互联网金融 荆州市昕露互联网络科技有限公司 阿大互联网科技有限公司 互联网科技的全部知识 阿里互联网科技企业 互联网金融科技名词解释 为客找房互联网科技公司怎么样 中天科技中国工业互联网 卡尔迅互联网科技有限公司 上海同邻互联网科技有限公司规模 银川新华互联网科技学校招聘 伍佰万互联网科技是干嘛的 没上市的科技互联网公司 卓越科技(互联网 ) 互联网还是高科技吗 昊天互联网科技有限公司 佛山市拉法互联网科技有限公司 张召忠谈中国互联网科技 2021世界互联网领先科技成果发布 广州燕处互联网科技有限公司 好易买互联网科技 优雇互联网科技有限公司
0