MyISAM、InnoDB、Heap(Memory)、NDB
貌似一般都是使用 InnoDB的,
mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。
最常使用的2种存储引擎:
1Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是frm(存储表定义)、MYD(MYData,存储数据)、MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
2InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
/// <summary>
/// 创建数据库。
/// </summary>
/// <param name="srvName">表示要连接的服务器名</param>
/// <param name="dbName">指定要创建的数据库名</param>
private string CreateDB(string srvName, string dbName)
{
SQLDMOApplication sqlApp = new SQLDMOApplicationClass();
SQLDMOSQLServer srv = new SQLDMOSQLServerClass();
srvConnect(srvName, "sa", "");
// 新建数据库名(包括路径)
string dbPath = srvRegistrySQLDataRoot + "//DATA//" + dbName;
bool DBExist = false;
foreach (SQLDMODatabase db in srvDatabases)
{
if (dbName == dbName)
{
DBExist = true;
}
}
//函数返回结果
string rvCDB;
if (DBExist)
{
rvCDB = "此数据库存名已存在请选择其它名称";
srvClose();
sqlAppQuit();
return rvCDB;
}
else
rvCDB = "成功创建数据库!";
SQLDMODatabase nDB = new SQLDMODatabase();
SQLDMODBFile nDBFile = new SQLDMODBFile();
SQLDMOLogFile nLogFile = new SQLDMOLogFile();
nDBName = dbName;
nDBFileName = dbName + "file";
nDBFilePhysicalName = dbPath + "_Datamdf";
nDBFilePrimaryFile = true;
nDBFileFileGrowthType = 0;
nDBFileFileGrowth = 1;
nDBFileGroupsItem("primary")DBFilesAdd(nDBFile);
nLogFileName = dbName + "log";
nLogFilePhysicalName = dbPath + "_Logldf";
nDBTransactionLogLogFilesAdd(nLogFile);
srvDatabasesAdd(nDB);
srvClose();
sqlAppQuit();
return rvCDB;
}
SQLDMOApplication sqlApp = new SQLDMOApplicationClass();
SQLDMOSQLServer srv = new SQLDMOSQLServerClass();
srvConnect("servername", "username", "password");
SQLDMODatabase nDB = new SQLDMODatabase();
SQLDMODBFile nDBFile = new SQLDMODBFile();
SQLDMOLogFile nLogFile = new SQLDMOLogFile();
nDBName = "tmpdb"; //数据库名
nDBFileName = "tmpfile"; //数据库文件名
nDBFilePhysicalName = @"e:/temp/tmpmdf"; //数据库文件在硬盘上存储的实际名称
nDBFilePrimaryFile = true;
nDBFileFileGrowthType = 0;
nDBFileFileGrowth = 1;
nDBFileGroupsItem("primary")DBFilesAdd(nDBFile);
nLogFileName = "tmplg";
nLogFilePhysicalName = @"e:/temp/tmpldf";
nDBTransactionLogLogFilesAdd(nLogFile);
srvDatabasesAdd(nDB);
srvClose();
sqlAppQuit();
非常不错!Nutanix作为混合多云行业的先导者,在数据库管理方面一直都非常有优势。比如Nutanix Era 20,作为数据库解决方案适用于所有云的简易数据库 *** 作。其用自动化服务取代耗时且复杂的数据库管理 *** 作,有助于企业将资源聚焦核心业务,提高其创新能力;提高业务灵活性和创新速度;支持一键式数据库 *** 作,适用于各种不同数据库引擎的消费级数据库管理百度。
此外,Nutanix 近来还推出了数据库管理类组合产品(NDB)。NDB 面向 PostgreSQL®、MySQL®、Microsoft® SQL 服务器、Oracle® 数据库等数据库引擎,简化了在混合多云环境下的数据库管理,具有非常强大的自动化功能,支持数据库实例的配置、扩展、修补、保护和克隆,还可以帮助客户在本地和公有云上为开发人员提供数据库即服务( DBaaS )和易用的自助式数据库体验,是企业进行数据库管理非常有力的工具,大家可以试试
MyISAM、InnoDB、Heap(Memory)、NDB
貌似一般都是使用InnoDB的,mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。
最常使用的2种存储引擎:
1Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是frm(存储表定义)、MYD(MYData,存储数据)、MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
2InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
一、系统表空间
在 MySQL 数据目录下有一个名为 ibdata1 的文件,可以保存一张或者多张表。
923275 12M -rw-r----- 1 mysql mysql 12M 3月 18 10:42 ibdata1
这个文件就是 MySQL 的系统表空间文件,默认为 1 个,可以有多个,只需要在配置文件 mycnf 里面这样定义即可。
innodb_data_file_path=ibdata1:200M;ibdata2:200M:autoextend:max:800M系统表空间不仅可以是文件系统组成的文件,也可以是非文件系统组成的磁盘块,比如裸设备,定义也很简单innodb_data_file_path=/dev/nvme0n1p1:3Gnewraw;/dev/nvme0n1p2:2Gnewraw
系统表空间里都有些啥内容?
具体内容包括:double writer buffer、 change buffer、数据字典(MySQL 80 之前)、表数据、表索引。
那 MySQL 为什么现在主流版本默认都不是系统表空间?
究其原因,系统表空间有三个最大的缺点:原因 1:无法做到自动收缩磁盘空间,造成很大的空间浪费。即使它包含的表都被删掉,这部分空间也不会自动释放。
二、单表空间
单表空间不同于系统表空间,每个表空间和表是一一对应的关系,每张表都有自己的表空间。具体在磁盘上表现为后缀为 ibd 的文件。比如表 t1,对应的表空间文件为 t1ibd917107 96K -rw-r----- 1 mysql mysql 96K 3月 18 16:13 t1ibd
单表空间如何应用到具体的表呢?
有两种方式:方式 1:在配置文件中开启。在配置文件中开启单表空间设置参数 innodb_filer_per_table,这样默认对当前库下所有表开启单表空间。innodb_file_per_table=1另外也可以直接建表时指定单表空间mysql> create table t1 (id int, r1 char(36)) tablespace innodb_file_per_table;
Query OK, 0 rows affected (004 sec)
单表空间除了解决之前说的系统表空间的几个缺点外,还有其他的优点,详细如下:
1 truncate table *** 作比其他的任何表空间都快;
2 可以把不同的表按照使用场景指定在不同的磁盘目录;
比如日志表放在慢点的磁盘,把需要经常随机读的表放在 SSD 上等。
mysql> create table ytt_dedicated (id int) data directory = '/var/lib/mysql-files';
Query OK, 0 rows affected (004 sec)3 可以用 optimize table 来收缩或者重建经常增删改查的表。一般过程是这样的:建立和原来表一样的表结构和数据文件,把真实数据复制到临时文件,再删掉原始表定义和数据文件,最后把临时文件的名字改为和原始表一样的。
三、通用表空间
通用表空间先是出现在 MySQL Cluster 里,也就是 NDB 引擎。从 MySQL 57 引入到 InnoDB 引擎。通用表空间和系统表空间一样,也是共享表空间。每个表空间可以包含一张或者多张表,也就是说通用表空间和表之间是一对多的关系。
这是考虑性能的问题,事务支持,百度,你知道
的MyISAM,InnoDB中,堆(内存),NDB
貌似一般都是使用InnoDB的
MySQL存储引擎:MyISAM表中,InnoDB,BDB,MEMORY,MERGE,实施例,NDBCLUSTER,ARCHIVE,CSV,BLACKHOLE,FEDERATED等,其中InnoDB和BDB事务安全表,其他存储引擎非事务安全表。
最常用的存储引擎:
1Myisam
MySQL的默认存储引擎来创建创建一个新表,新表的存储引擎不指定,则默认使用MyISAM。每个MyISAM分成三个文件存储在磁盘上。相同的文件名和表名的扩展。的FRM(存储表定义),MYD(MYDATA存储数据)。
MYI(MyIndex的,存储索引)。数据文件和索引文件可以被放置在不同的目录中,均匀地分布IO,获得更快的。
2InnoDB的存储引擎,提供了交易的安全性具有提交,回滚和崩溃恢复能力。不过对比在MyISAM,InnoDB的写处理效率和存储引擎会占用更多的磁盘空间来保存数据和索引。
不知道你
有的,可以试下Nutanix Era 或者Nutanix 新推出的数据库服务组合产品NDB,都可以实现高效的一键式数据库管理等 *** 作。
先说下Nutanix Era。Nutanix Era 作为数据库解决方案适用于所有云的简易数据库 *** 作,使用自动化服务取代耗时且复杂的数据库 *** 作,将资源聚焦核心业务。提高业务灵活性和创新速度;支持一键式数据库 *** 作,适用于各种不同数据库引擎的消费级数据库管理。
同时,具有完全 *** 作可视性的 API 优先架构,轻松与企业首选的自助服务工具集成,使企业能够快速地进行系统的数据库自备、补丁管理、克隆等 *** 作,来帮助企业实现数据库统一管理。
至于Nutanix 数据库服务(NDB),其具有强大的自动化功能,支持数据库实例的配置、扩展、修补、保护和克隆;还可以帮助客户在本地和公有云上为开发人员提供数据库即服务(DBaaS)和易用的自助式数据库体验,不论是新的还是已有的数据库。NDB面向 PostgreSQL®、MySQL®、Microsoft® SQL 服务器、Oracle® 数据库等数据库引擎,简化了在混合多云环境下的数据库管理。
总之,无论是选择Nutanix Era,还是选择Nutanix 数据库服务(NDB),都可以实现优雅、高效的数据库管理等相关 *** 作,帮助你在企业云里构建一套数据库服务平台▪⋅
以上就是关于Mysql数据库3种存储引擎有什么区别全部的内容,包括:Mysql数据库3种存储引擎有什么区别、用SQLDMO怎样创建数据库、Nutanix做数据库管理咋样,有没有知道的分享下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)