MySQL的存储引擎
MySQL的一个重要特性就是支持插件式存储引擎。其存储引擎接口定义良好,有兴趣的开发者可以通过阅读文档编写自己的存储引擎。
接下来简单介绍一下MySQL的常见存储引擎:
一、MyISAM
MySQL 5.0 之前的默认数据库引擎,最为常用。
特点:
①拥有较高的插入、查询速度。
②支持全文索引(FULLTEXT index)、压缩、空间函数(GIS);但不支持事务;
③索引:非聚簇索引;
锁粒度:表级锁;
④适用于只读(或读多写少),较小的表(可接受较长时间的修复操作)等场景;
文件形式:
tbl_name.frm //表格式定义
tbl_name.MYD //数据文件
tbl_name.MYI //索引文件
二、InnoDB
MySQL 5.5 起成为默认数据库引擎,事务型数据库的首选引擎。
特点:
①数据存储于“表空间(table space)”中;
②支持ACID事务(四个级别都支持),默认级别为REPEATABLE READ,适合处理大量的短期事务;
③基于MVCC(多版本并发控制)支持高并发;
④索引:聚簇索引,支持‘自适应hash索引’;
锁粒度:行级锁;
文件形式:
ibddata1,idbdata2,... //表空间文件
tbl_name.ibd //数据文件
注意:
与MariaDB齐名的另一个著名的MySQL分支:percona,对MySQL做了很大很多的贡献,其对MySQL的InnoDB做了二次改进,叫做XtraDB,MariaDB就使用了此存储引擎,但查看存储引擎时,仍显示为InnoDB.
三、MySQL支持的其他存储引擎
/*
CSV:逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个 .csv 文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV 存储引擎不支持索引。 MRG_MYISAM:由多个MYISAM表合并形成的虚拟表。 BlackHole:黑洞引擎,写入的任何数据都会消失,一般用于记录 binlog 做复制的中继;类似于/dev/null。 Memory:所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失;支持hash索引,表级锁;常用于临时表。 Federated将不同的 MySQL 服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用。 Archive:非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive 拥有高效的插入速度,但其对查询的支持相对较差。
*/
四、存储引擎的定义和查看
/*创建表时指定*/
CREATE TABLE ....ENGINE[=]STORAGE_ENGINE_NAME; /*查看表的存储引擎*/
SHOW TABLE STATUS [LIKE|WHERE]...
MySQL的存储引擎的更多相关文章
- MYSQL的存储引擎一般只要哪些?
根据个人个人见解: MySQL的存储引擎(构成.安全.锁) Myisam:数据操作快速的一种引擎,支持全文检索.文件保存在数据库名称为目录名的 目录中,有3个文件,分别是表定义文件(.frm).数据文 ...
- MySQL常用存储引擎及如何选择
一.MySQL的存储引擎 完整的引擎说明还是看官方文档:http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html 这里介绍一些主要的引擎 ...
- mysql 的存储引擎介绍
在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? ...
- mysql数据库存储引擎及区别
MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERAT ...
- mysql之存储引擎和文件配置
(查看系统服务,在运行里输入services.msc) 补充:将mysql做成系统服务:mysqld --install 取消:mysqld --romove 在服务中可以直接鼠标操作mysql服务的 ...
- MySQL数据库----存储引擎
什么是存储引擎? 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操 ...
- MySql的存储引擎介绍
下面主要介绍InnoDB.MyISAM和MEMEORY三种存储引擎. InnoDB存储引擎 InnoDB遵循CNU通用公开许可(GPL)发行.InnoDB已经被一些重量级互联网公司所采用,如雅虎.Sl ...
- MySQL之存储引擎(表类型)的选择
和大部分的数据库不同,MySQL中有一个存储引擎的概念,用户可以根据数据存储的需求来选择不同的存储引擎.本次博客就来介绍一下MySQL中的存储引擎.MySQL版本 5.7.19. 概述 MySQL的存 ...
- MySql中存储引擎MyISAM与InnoDB区别于选择
InnoDB: 支持事务处理等 不加锁读取 支持外键 支持行锁 不支持FULLTEXT类型的索引 不保存表的具体行数,扫描表来计算有多少行 DELETE 表时,是一行一行的删除 InnoDB 把数据和 ...
- MySQL常用存储引擎功能与用法详解
本文实例讲述了MySQL常用存储引擎功能与用法. MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE ...
随机推荐
- PL/SQL如何导入dmp文件
-------------创建表空间 create tablespace portal_data datafile'E:\OracleDB\System_TableSpace\portal_data0 ...
- iPhone与iPad在开发上的区别
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Android动态加载学习笔记(一)
前言 上周五DPAndroid小分队就第二阶段分享内容进行了讨论,结果形成了三个主题:性能优化.动态加载.内核远离.我选择的是第二项——动态加载.在目前的Android开发中,这一部分知识还是比较流行 ...
- Codeforces Round #232 (Div. 2) D. On Sum of Fractions
D. On Sum of Fractions Let's assume that v(n) is the largest prime number, that does not exceed n; u ...
- java remote debug parameters
java -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n
- 单片机中用c编程时头文件reg51.h及reg52.h解析
单片机中用c编程时头文件reg51.h及reg52.h解析 我们在用c语言编程是往往第一行就是reg51.h或者其他的自定义头文件,我们怎么样来理解呢? 1)“文件包含”处理. 程序的第一行是一个“文 ...
- 浅尝辄止——使用ActiveX装载WPF控件
1 引言 使用VC编写的容器类编辑器,很多都可以挂接ActiveX控件,因为基于COM的ActiveX控件不仅封装性不错,还可以显示一些不错的界面图元. 但是随着技术不断的进步,已被抛弃的Active ...
- autolayout
autolayout.因为之前都是用frame,用代码来做,并且在布局时也很少用storyboard和xib.使得我再这方便经验很欠缺,想用,但是又怕用不好,出现各种意想不到的bug.但是又忽然想到, ...
- MySQL临时表创建
和SQL SERVER 创建临时表不同 不能直接写 Create table #Test_Table 而是需要在 Create 和 table 之间 加入 TEMPORARY(temporary< ...
- Java:多态(向上转型)
先来看一段代码: class BaseClass{ public int book = 6; public void base(){ System. ...