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 ...
随机推荐
- GNU/Linux复习笔记(1)
第一次接触GNU/Linux还是大四上学期实习的那两个月在window里装了 个虚拟机玩红帽的系统,那段时间稍微学了一点命令就不玩了.后来大四下学期认识了王总,装了双系统,那段时间又对linux有了进 ...
- jquery用append添加按钮之后,按钮监听无法使用的解决方法
<!DOCTYPE html><html><head><meta charset="utf-8"> <title>< ...
- onethink入门笔记(一)
由于公司需求所以大概花了一个星期搞了一个一个基于onethink的数据管理平台demo不得不说onethink这个基于thinkphp3.2.3的框架还是很棒的 让我这个没基础过php的人也能在一星期 ...
- PSP个人项目耗时记录
估计这个任务需要多少时间: 计划 估计用时 估计这个任务需要多少时间 500min 开发 450min 需求分析 120min 生成设计文档 20min 设计复审 30miin 代码规范 10min ...
- zookeeper 节点的移动与删除
package com.zhengmo.test; import java.util.List; import org.apache.zookeeper.CreateMode; import org. ...
- js一个抽奖的例子
朋友公司开年会,帮忙写了个抽奖的demo,源码如下,github中有程序: html: <header> lottery demo </header> <div clas ...
- Windows程序设再读笔记01-起步
1.从程序员角度看,统一的界面意味着编程人员可以使用windows自带的例程来构建许多的功能,例如菜单,对话框等.只用几行代码就可以实现很多复杂的功能.但是这同时也增加了一些限制,使得做出一个个性化的 ...
- arcgis中DEM如何生成等高线
地形图指比例尺大于1∶100万的着重表示地形的普通地图(根据经纬度进行分幅,常用有1:100万,1:50万,1比25万,1:15万,1:10万,1:5万等等).由于制图的区域范围比较小,因此能比较精确 ...
- java 平台 权限管理
最近在做公司内部的物流业务平台的权限管理,感触颇多.记录一下 权限管理分两部分:数据权限和操作权限. 数据权限: 这个是和用户相关的. 因为平台是多机构的,所以再考虑数据权限的时候,是按照机构来管理的 ...
- 使用反射,查找WCF异常类型
//使用System.Reflection,查找System.ServiceModel的异常类型 public void ConsoleException() { ...