MySQL 支持哪些存储引擎

news/2024/11/22 22:38:50/

MySQL 支持哪些存储引擎?
MySQL 支持多种存储引擎,比如 InnoDB,MyISAM,Memory,Archive 等等.在大多数的情况下,直接选择使用 InnoDB 引擎都是最合适的,InnoDB 也是 MySQL 的默认存储引擎。

MyISAM 和 InnoDB 的区别有哪些:

InnoDB 支持事务,MyISAM 不支持
InnoDB 支持外键,而 MyISAM 不支持
InnoDB 是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高;MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针,主键索引和辅助索引是独立的。
Innodb 不支持全文索引,而 MyISAM 支持全文索引,查询效率上 MyISAM 要高;
InnoDB 不保存表的具体行数,MyISAM 用一个变量保存了整个表的行数。
MyISAM 采用表级锁(table-level locking);InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁。

聚集索引

什么是聚集索引

聚集索引(Clustered
Index)是一种特殊的索引,它决定了表中数据的物理排列顺序。聚集索引定义了表中数据的物理存储顺序,并将表中的行存储在基于聚集索引的排序顺序中。因此,一个表只能拥有一个聚集索引,而且聚集索引通常是主键索引,因为主键是唯一标识表中每个记录的字段或字段组合。

聚集索引的工作方式与字典中的索引类似,它可以帮助数据库快速定位要查找的记录。当查询使用索引列进行过滤或排序时,聚集索引可以大大提高查询性能,因为它将表中相关记录物理上存储在一起,减少了数据访问的成本。

需要注意的是,聚集索引是一个物理上存在的结构,它决定了表中数据的物理存储顺序。因此,在设计聚集索引时,需要考虑到表中数据的访问模式和查询需求,以便最大化地利用聚集索引提高查询性能。

是的,下面是创建聚集索引和非聚集索引的SQL示例:

创建聚集索引

在创建表时,可以通过定义主键或唯一键来自动创建聚集索引。例如:

CREATE TABLE mytable (id INT PRIMARY KEY,name VARCHAR(50),age INT,...
);

在这个示例中,id字段被定义为表的主键,因此它是聚集索引。

如果需要显式地创建聚集索引,可以使用以下SQL语句:

CREATE CLUSTERED INDEX idx_mytable ON mytable (id);

这将在mytable表上创建一个名为idx_mytable的聚集索引,该索引基于id字段排序。

非聚集索引

非聚集索引制定了表中记录的逻辑顺序,但是记录的物理和索引不一定一致(在逻辑上数据是按顺序排存放的,但是物理上在真实的存储器中是散列存放的),两种索引都采用B+树结构,非聚集索引的叶子层并不和实际数据页相重叠,而采用叶子层包含一个指向表中的记录在数据页中的指针方式。非聚集索引层次多,不会造成数据重排。所以如果表的读操作远远多于写操作,那么就可以使用非聚集索引。

创建非聚集索引

可以使用以下SQL语句来创建非聚集索引:

CREATE INDEX idx_mytable_name ON mytable (name);

这将在mytable表上创建一个名为idx_mytable_name的非聚集索引,该索引基于name字段排序。

需要注意的是,在创建非聚集索引时,可以为多个字段创建复合索引。例如:

CREATE INDEX idx_mytable_name_age ON mytable (name, age);

这将在mytable表上创建一个名为idx_mytable_name_age的复合非聚集索引,该索引基于name和age字段排序。

总之,在数据库中,聚集索引和非聚集索引可以通过SQL语句来创建和管理。在创建索引时,需要根据表的访问模式和查询需求来选择合适的索引类型和字段,以便最大限度地提高数据库的查询性能。

全文索引

全文索引通常使用倒排索引(Inverted Index)来实现,它将每个单词或短语映射到包含它们的文档列表中,从而可以快速地定位到包含指定关键词的文档。同时,全文索引还支持各种搜索功能,如模糊匹配、相似度比较、语义分析等,可以大大提高文本数据的检索效率。


http://www.ppmy.cn/news/569332.html

相关文章

UPS及机房环境一体监控及告警解决方案

一、方案背景: 某公司机房运维人员通过网络联系到我们,希望能在线监控机房内的UPS电源及运行环境情况,防止机房内温度、湿度发生变化,影响机房的正常运作。因此,要求对机房内的UPS电源、温湿度、烟感、漏水、市电、门…

【安科瑞节能学院】ACREL-2000电力监控系统在南昌新力.御景湾项目的应用

摘要 用户侧配电系统的智能化、精细化、无人值守是当下配电管理的必然趋势。针对用户侧的配电进线回路,设计安装智能仪表,再通过后台系统来实时监测各用能回路的工作状态;并记录各个回路的电力参数。通过实时监控用能以及相关电力参数、提高用…

ACREL-2000电力监控系统在南昌新力.御景湾项目的应用-安科瑞薛炯毅

用户侧配电系统的智能化、精细化、无人值守是当下配电管理的必然趋势。针对用户侧的配电进线回路,设计安装智能仪表,再通过后台系统来实时监测各用能回路的工作状态;并记录各个回路的电力参数。通过实时监控用能以及相关电力参数、提高用能安…

计算机机房监控系统上海,上海机房监控-上海机房环境监控系统

动力设备及环境集中监控系统的建设目的是通过运用先进的传感技术、通讯技术和计算机技术,对用户机房内的电源、蓄电池、高低压配电、油机等多种动力设备,以及温度、湿度、火警、盗警等环境参量进行实时监测,能够及时判断出故障并产生告警&…

机房动环监控系统3大价值,第一个太惊艳了

在中小学、大学院校中,机房已经是不可缺少的部分,但由于管理缺陷、设备复杂等缘故,学校机房得不到安全保障。 因此,要实现学校机房监控系统,来对机房的运行情况实时监测,以此提高风险预防及设备运行环境质量…

机房远程集中监控系统

机房集中远程监控是一种数据管理系统,主要是通过互联网,利用各种技术和手段,对机房数据进行采集、存储、统计、分析,并对采集的数据进行处理后,生成可视化数据库,为各种应用系统的使用提供可靠数据支撑。在…

【vue】解决el-tree或el-table中树形列表懒加载数据改变后不能实时刷新问题以及使用

文章目录 1.问题描述2.问题解决1.首先在data return中加入一个map来用于存取数据2.在el-tree或树形列表组件加载子级的方法中,用map存下每次被加载的父节点3.封装一个refreshLoadTree方法,每次增删改查操作之后都调用一下,以此达到实时刷新的…

如何升级Windows10(Windows7以上)

首先,打开浏览器,搜索下载Windows10 接着,不要点其他,一定要选择官网,看灰色线的特征 选择“立即下载工具” 下载后的样子 打开后,选择接受 选择“立即升级这台电脑” 然后程序下载文件,等待十…