Mysql索引、存储引擎有何具体区别
admin
2023-05-09 03:21:25
0

下文我给大家简单讲讲关于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索引、存储引擎有何具体区别这篇文章怎么样,是否有所收获。如果想要了解更多相关,可以继续关注我们的行业资讯板块。

相关内容

热门资讯

以军士兵集体丢掉武器抗命,大喊... 据凤凰卫视报道,以色列国防军一军事基地7月30日发生士兵抗命事件,约120名士兵抗议指挥官做法,将武...
蒋成华任商务部副部长 国务院任免国家工作人员。任命蒋成华为商务部副部长。免去蒋成华的商务部国际贸易谈判副代表职务。
伊朗驻华大使:在军事威胁下,不... 新华社北京7月31日电(记者刁慧琳) 伊朗驻华大使法兹里7月28日表示,伊美回到谈判桌的前提是美国必...
伊朗革命卫队在霍尔木兹海峡击中... 当地时间31日,伊朗伊斯兰革命卫队发布声明称,革命卫队海军当天在霍尔木兹海峡击中并扣留了两艘违反禁令...
美媒:特朗普,遇到了一个更强硬... 据《纽约时报》7月29日报道,就在特朗普总统看似放弃战事升级计划几天后,美国再次与伊朗交火。上周末,...
女子做气管镜时不幸身亡,丈夫称... 7月29日,西安刘先生反映妻子在当地医院做支气管镜检查时死亡,看监控时发现医生疑有违规操作。刘先生表...
全网“帮卖西瓜”,然后呢? 近日,河南部分地区西瓜滞销的消息在网上热度很高。很多地方也伸出援手:有景区收购千斤西瓜、免费赠予游客...
美媒:乌克兰袭击伊朗船只,险引... 据《纽约时报》7月28日报道,据伊朗和西方官员称,伊朗曾考虑攻击乌克兰的一个港口,以报复乌克兰对一艘...
20年里,他只画美女,用东方风... 迈进KIM在上海的工作室,迎面是一整墙的美女们。她们像是刚从一场时髦的沙龙里退场,或倚或立,眉宇间是...
Google在港推出AI代理G... 观点网讯:7月29日,Google在香港推出AI代理Gemini Spark,该代理可全天候在后台运...