存储引擎摘要

前言

存储在数据库中的是无数关系的列表,因此表的设计质量将直接影响整个数据库。在设计表时,我们都关注一个问题,使用什么存储引擎。等一下,存储引擎什么是存储引擎

什么是存储引擎

关系数据库表是存储和组织信息的数据结构。它们可以被认为是由行和列组成的表,它类似于电子表格Excel的形式。有些简单,有些复杂,有些没有存储任何数据的长期,很快看了一些表格,但是当插入的数据是可怜的;我们在实际开发过程中,可能需要各种不同的表,表,意味着存储在不同类型储层数据。数据的处理也存在差异,因此对于MySQL来说,它提供了多种存储引擎。我们可以根据数据处理的需要选择不同的存储引擎,从而最大限度地提高MySQL的强大功能的使用。本博客将总结和分析每个发动机的特性,以及应用,并不会在更深的东西纠缠。我的学习方法是学习如何使用它首先,要知道如何使用它,并且知道如何可以使用。以下是支持MySQL存储引擎简介。

MyISAM

在MySQL客户机中,可以使用以下命令查看MySQL支持的引擎。

复制代码代码如下所示:

显示引擎;



MyISAM表是独立的操作系统,这表明它可以很容易地从Windows服务器迁移到Linux服务器。当我们建立一个MyISAM引擎的表,我们将创建在本地磁盘上的文件,文件名是三,表明它。例如,我设置了一个tb_demo MyISAM引擎的表,然后下面的三个文件将生成:

1.tb_demo.frm,存储表的定义;

2.tb_demo.myd,存储数据;

3.tb_demo.myi,存储索引。

MyISAM表不能处理交易,这意味着事务处理要求表不能由MyISAM存储引擎MyISAM存储引擎使用,特别适用于以下情况:

1。选择一个密集的表。MyISAM存储引擎很快在筛选大量的数据,这是其最突出的优势。

2。插入密表,MyISAM并发插入功能允许同时选择和插入数据。例如,MyISAM存储引擎是管理邮件或Web服务器日志数据非常合适。

InnoDB

InnoDB存储引擎是一个强大的交易。这个存储引擎已经被许多互联网公司使用,为用户提供操作非常大的数据存储的一个强大的解决方案,5.6.13 MySQL版本,我在我的电脑上安装,InnoDB是默认的存储engine.innodb还介绍了行级锁和外键约束,并在以下情况下,使用InnoDB是最好的选择:

1。更新密表。InnoDB存储引擎是特别适合于处理多个并发请求的更新。

2。事务。InnoDB存储引擎是一个标准的MySQL存储引擎,支持事务。

三.自动灾难恢复。不像其他的存储引擎,InnoDB表可以自动从灾难中恢复。

4。外键constraints.mysql支持在一个只有InnoDB存储引擎的外部键。

5。支持自动添加列auto_increment性质。

总的来说,InnoDB是如果事务支持是必需的,出现频率较高的并发读一个不错的选择。

记忆

使用MySQL存储引擎的出发点是速度,以最快的响应时间,逻辑存储介质是系统内存,虽然在内存中的表的数据存储提供了高性能,所有内存中的数据将丢失当mysqld进程崩溃。同时,它也带来了一些缺陷。它需要存储在内存中的数据表的数据使用相同长度的格式,这意味着你不能使用BLOB和可变长度的数据类型的文本,VARCHAR是一种可变长度的,但因为它是一个固定长度的字符类型在MySQL,那么你可以使用。

一般来说,在下列情况下使用内存存储引擎:

1。目标数据很小,访问非常频繁。将数据存储在内存中会导致内存的使用。我们可以控制的参数max_heap_table_size内存表的大小,并设置这个参数,从而限制了内存表的最大大小。

2。如果数据是临时的,需要立即可用,那么它可以存储在内存表中。

三.如果存储在内存表中的数据突然丢失,它不会对应用程序服务产生实质性的负面影响。

存储器支持哈希索引B树索引。比哈希索引B树索引,可以使用查询和模糊查询,也可以使用方便的数据挖掘> =运算符。哈希索引比较平等是非常快的,但速度慢得多的范围,因此哈希指数值适用于=和<>操作符,不适合操作,也不适宜在order by子句中使用。

可以使用使用子句指定在创建表时要使用的版本:

复制代码代码如下所示:

创建表的用户



我没有空auto_increment SmallInt符号,

用户名不能为空的varchar(15),

varchar(15)非空密码,

使用哈希(用户名)索引,

主键(id)

)引擎=内存;



上面的代码创建了一个表,采用哈希散列索引用户名字段。下面的代码创建一个表,使用B树索引。

复制代码代码如下所示:

创建表的用户



我没有空auto_increment SmallInt符号,

用户名不能为空的varchar(15),

varchar(15)非空密码,

使用B树索引(用户名),

主键(id)

)引擎=内存;



合并

MERGE存储引擎是一个组合的MyISAM表。这些MyISAM表结构必须完全相同。虽然他们没有其他发动机为突出,他们在某些情况下是非常有用的。说白了,合并表是几个相同的MyISAM表的集合。合并表中没有数据,可以查询、更新和删除合并类型表。这些操作其实操作内部的MyISAM表,合并存储引擎的使用场景。

对服务器的日志信息,常用的存储策略是将数据分成多个表,这是每一个特定的时间结束有关。例如,服务器日志数据可以存储12个相同的表,每个表被命名为每个月的名称。当它是必要的的基础上产生的所有12个日志表的数据报告,这意味着它有必要写和更新多个表的查询来反映这些表中的信息,而不是写这些查询可能是错误的,最好是把这些表的查询,然后删除合并表不影响原数据,删除合并表只删除合并表的定义,并没有影响在内部表中t。

档案文件

归档是归档的意义。归档后,很多先进的功能不再支持,仅支持最基本的插入和查询两种功能。在MySQL 5.5版本,文件不支持索引,但它开始支持索引在MySQL 5.5.archive版本具有很好的压缩机制,使用zlib压缩库,这压缩时实时记录的要求,所以它常被用作仓库。

仓储发动机的几个问题

1。如何查看服务器可以使用哪些存储引擎

要确定MySQL服务器可以使用哪些存储引擎,请执行以下命令:

复制代码代码如下所示:

显示引擎;



此命令可以完成。

2。如何选择合适的存储引擎

(1)选择标准可分为:

(2)是否支持业务;

(3)是否需要使用热制剂;

(4)塌陷恢复:塌陷是否可以接受;

(5)是否需要外键支持;

然后可以根据标准选择相应的存储引擎。

总结

本文总结了几种常用的存储引擎。对于实际工作,有必要根据具体情况作出决定,结合实际工程实例加以应用,是最好的学习方法。