iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql索引、存储引擎有何具体区别
  • 693
分享到

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

2024-04-02 19:04:59 693人浏览 泡泡鱼
摘要

下文我给大家简单讲讲关于Mysql索引、存储引擎有何具体区别,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完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索引、存储引擎有何具体区别这篇文章怎么样,是否有所收获。如果想要了解更多相关,可以继续关注我们的数据库板块。

您可能感兴趣的文档:

--结束END--

本文标题: Mysql索引、存储引擎有何具体区别

本文链接: https://www.lsjlt.com/news/35905.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql索引、存储引擎有何具体区别
    下文我给大家简单讲讲关于Mysql索引、存储引擎有何具体区别,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完Mysql索引、存储引擎有何具体区别对大家多少有点帮助吧。一、普通索...
    99+
    2022-10-18
  • mysql存储引擎有哪些区别
    mysql存储引擎的区别:InnoDB支持事务安全,MyISAM和MEMORY两个不支持。InnoDB对空间使用程度较高,MyISAM和MEMORY对空间使用程度较低。InnoDB和MEMORY对内存使用程度较高,MyISAM对内存使用程度...
    99+
    2022-10-14
  • MySQL(7)-mysql索引和存储引擎
         本篇博客讲的是MySQL的索引的功能和使用 , 以及存储引擎的基本简介 一. mysql索引索引的简介和作用索引在MySQL中叫做"键" , 是存储引擎用于快速找到记录的一种数据结构 . 索引对良...
    99+
    2022-10-18
  • mysql存储引擎区别是什么
    mysql存储引擎区别是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!MySQL中存储引擎的区别:以Innodb和my...
    99+
    2022-10-18
  • MySql中的存储引擎和索引
    目录一、MySql的逻辑结构二、什么是存储引擎MySQL支持的存储引擎三、操作四、数据库的索引索引的分类五、索引操作一、MySql的逻辑结构 MySQL体系结构分为四层:分别是连接层...
    99+
    2022-11-13
    MySql存储引擎 MySql索引
  • mysql存储引擎之间的区别有哪些
    这篇文章主要讲解了“mysql存储引擎之间的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql存储引擎之间的区别有哪些”吧! ...
    99+
    2022-10-19
  • Mysql中存储引擎之间有哪些区别
    这篇文章主要介绍Mysql中存储引擎之间有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MyISAM存储引擎MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存...
    99+
    2023-06-15
  • MySQL存储引擎的区别是什么
    MySQL存储引擎的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  MySQL有多种存储引擎,每种存储引擎有各自的...
    99+
    2022-10-18
  • MySQL存储引擎中的索引分析
    本篇内容主要讲解“MySQL存储引擎中的索引分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL存储引擎中的索引分析”吧!我们知道不同的存储引擎文件是不...
    99+
    2022-10-19
  • 1. MySQL体系结构和存储引擎——MySQL体系结构、存储引擎、连接MySQL
    一、MySQL体系结构和存储引擎 尽管各个平台在底层(如线程)实现方面都各不相同,但MySQL基本上能保证在各个平台上的物理结构的一致性。因此,用户应该能很好的理解MySQL数据库在所有这些平台是如何运作的。 1.1 定义数据库和...
    99+
    2019-01-12
    1. MySQL体系结构和存储引擎——MySQL体系结构 存储引擎 连接MySQL
  • Mysql搜索引擎都有哪些区别
    小编给大家分享一下Mysql搜索引擎都有哪些区别,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧! 一般MySQL常用的引擎有:ISAM,MyISAM,HEAP,InnoDB和Berkl...
    99+
    2022-10-18
  • MySQL中btree和hash两种索引有何具体区别
    下文给大家带来关于MySQL中btree和hash两种索引有何具体区别,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL中btree和hash两种索引有何具体区别对大家多少有点帮助吧。  &n...
    99+
    2022-10-18
  • Mysql中存储引擎的区别及比较
    MyISAM存储引擎 MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务。 MyISAM主要特性有: 大...
    99+
    2022-05-28
    Mysql 存储引擎 引擎的区别
  • Mysql Innodb存储引擎之索引与算法
    目录一、概述二、数据结构与算法1、二分查找2、二叉查找树和平衡二叉树1)二叉查找树2)平衡二叉树三、B+树1、B+树完整定义2、关于 M 和 L的选定案例四、B+树索引1、聚集索引2...
    99+
    2022-11-13
  • 事务隔离级别、锁、索引、存储引擎
    1.隔离级别 1.1未提交读(read uncommit) RU 这是最低级别的隔离等级: 在这种隔离级别下,可以读取未提交的事务修改/更新到的数据,基本无数据库会选择该隔离级别 事务一  select * fro...
    99+
    2021-12-21
    事务隔离级别 索引 存储引擎
  • MySQL几种常用的存储引擎的区别
    本篇内容介绍了“MySQL几种常用的存储引擎的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先去查一下“引擎”概念。引擎(Engine)...
    99+
    2023-06-02
  • MyISAM和InnoDB存储引擎的区别
    目录 前言存储引擎 区别事务外键表单的存储数据查询效率数据更新效率 如何选择 前言 MyISAM和InnoDB是使用MySQL最常用的两种存储引擎,在5.5版本之前默认采用MyISAM存储引擎,从5.5开始采用InnoD...
    99+
    2023-08-17
    数据库 mysql java
  • MongoDB版本及存储引擎区别
    数据库版本及优势 3.4版本在性能和安全性等方面较3.2版本均有不同程度的提升; 4.0版本更适用于金融等对事务有依赖且使用NoSQL特性的场景; 4.2版本采用二段提交方式,保证分片集群事务的ACID特性,极大拓展了适用的业务...
    99+
    2017-02-28
    MongoDB版本及存储引擎区别
  • InnoDB与MyISAM存储引擎的区别
    InnoDB和MyISAM存储引擎的不同点:InnoDB存储引擎:当前MySQL存储引擎中的主流,InnoDB存储引擎支持事务、支持行锁、支持非锁定读、支持外键。MyISAM存储引擎:MyISAM不支持事务...
    99+
    2022-10-18
  • MySQL体系结构与存储引擎
     1、MySQL体系结构 MySQL的体系结构可以分为两层,MySQL Server层和存储引擎层。 在MySQL Server层中又包括连接层和SQL层,如图1-1所示。 应用程序通过接口( 如ODBC、JDBC)来连接MySQL。 最...
    99+
    2021-05-04
    MySQL体系结构与存储引擎
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作