mysql存储引擎简书_MySQL存储引擎详解
一,基础
1,插件式存储引擎,允许第三方组织,根据其api来设计,很多功能需要依赖引擎支持,比如事务
2, 5.5以后默认为innodb,之前为myISAM,innodb支持事务,myISAM不支持
3,存储引擎是表级别的概念,同一个库不建议多个引擎
二,InnoDB
1,处理大量的短期事务
2,数据存储于"表空间(table space)"中
3,所有InnoDB表的数据放置于同一个表空间中 datadir 下 ibddata(多个)
4,每个表单独使用一个表空间存储表的数据和索引 innodb_file_per_table = ON(3,4建议选择4,建议开启此项)
5,每个表使用单独表空间时,数据文件(数据和索引):tb1_name.ibd
#例如
[root@node1 mysql]# ls mydb/
db.opt t1.frm t1.ibd t2.frm t2.ibd
#frm 表格式定义文件
#ibd 数据文件
6,基于mvcc机制,并发控制,支持较高并发,支持所有的四个事务隔离级别,默认级别为REPEATABLE READ,通过间隙锁仿制幻读的出现
7,使用聚集索引,支持自适应hash索引
8,在MariaDB(XtraDB) 是对于Innodb大量改进后,整合社区的力量,有percona提供,虽然显示为innodb 其实为XtraDB,开源
9,性能:预计操作,自适应hash,插入缓存区
10,备份:支持热备,(xtrabacup)
11,锁粒度:行级别锁
12,崩溃后安全恢复
三,MyISAM
1,支持全文索引(FULLTEXT index),压缩,空间函数,不支持事务
2,锁粒度:表级别锁
3,崩溃后无法安全恢复
4,在mariadb中对其进行改进为Aria,支持崩溃后恢复
5,使用场景:只读(写较少),表较少,可以接受长时候恢复操作
6,文件:.frm 表格式定义,MYD:数据文件,MYI:索引文件
7,支持压缩表
ps:查看表使用的引擎,show status table;
ps:行格式:dynamic,fixed,compressed,compact,redundent
四,其他存储引擎
1,CSV:将普通的CSV(字段通过逗号分隔)作为mysql表使用,方便不同数据库软件中导入导出
2,MRG_MYISAM:将多个MyISAM表合并成一个虚表
3,BLACKHOLE:类似于/dev/null 多级级联复制时有用
4,MEMORY:存内存,适用临时表,中间数据,数据不关键的,支持哈希索引,表级锁,mysql临时表默认为memory,如果临时表空间不够,则会存储在磁盘上,导致性能下降,可以调整临时表空间大小。
5,PERFORMANCE_SCHENA:伪存储引擎,数据为mysql运行产生的数据,如果mysql没开启,此表为空
6,ARCHIVE:只支持select和insert,支持行级锁和专用缓存区,归档可以使用
7,FEDERATED:用于访问其他远程mysql服务器一个代理,他通过创建一个到远程MYSQL服务器的客户端连接,并将查询传输到远程服务器执行,而后完成数据存取,在MariaDB中实现的为FederatedX
五,MariaDB支持的其他存储引擎
1,OQGraph
2,SphinxSE
3,TokuDB
4,Cassandra
5,CONNECT
6,SQUENCE
mysql存储引擎简书_MySQL存储引擎详解相关推荐
- mysql 覆盖索引 简书_mysql覆盖索引与回表
select id,name where name='shenjian' select id,name,sex* where name='shenjian'* 多查询了一个属性,为何检索过程完全不同? ...
- mysql如何查看事务日记_MySQL日志查看详解
解决问题: 了解MySQL日志? 怎样查看错误日志? 怎样查看慢日志? 1. MySQL日志分类? MySQL日志主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志. 1.1 错误日志: ...
- mysql单表查询实例_MySQL简单查询详解-单表查询
MySQL简单查询详解-单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询的执行路径 一条SQL查询语句的执行过程大致如下图所示: 1>.客户端和服务端通过my ...
- mysql主从复制原理 简书_mysql主从复制,从原理讲到安装配置,全干货
0.为什么需要主从复制? 1.在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出 ...
- mysql存储过程写法简书_Mysql存储过程
存储过程简介 SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储 ...
- mysql性能优化简书_MySQL性能优化
1.合理的创建及使用索引,索引不宜过多,过多的索引会占用更多的空间,而且每次增.删.改操作都会重建索引. 2.合理的冗余字段(尽量建一些大表,考虑数据库的三范式和业务设计的取舍). 3.select语 ...
- mysql slave 线程 简书_MySQL主从复制(Master-Slave)实践
MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展.多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能. 下图就描述了一个多个数 ...
- MySQL的explain简书_MySQL Explain
慢日志 数据库开启慢查询记录执行时间比较久的SQL语句 mysql> SHOW VARIABLES LIKE "%slow%"; +--------------------- ...
- mysql主从配置 简书_Mysql主从配置,实现读写分离-Go语言中文社区
转载:https://www.cnblogs.com/alvin_xp/p/4162249.html 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层 ...
最新文章
- 具有缺失值的多元时间序列的递归神经网络
- java模态_java – 如何在另一个模态JDialog之上创建一个模态的JDialog
- STM32的ADC通道间干扰的问题
- 工作任务:解决双主控倒换时双机切换问题
- Spring :事务使用的注意事项
- kafka 小案例【二】 --kafka 设置多个消费着集群
- PY++ 自动将你的C++程序接口封装供python调用
- Ms08067攻防训练平台内测-100个免费邀请码
- 一周信创舆情观察(7.5~7.11)
- MYS-6ULX-IOT 开发板测评——使用 Yocto 添加软件包
- 不知道怎么识别手写文字?快来看这些手写文字识别成文档软件
- Web2 大厂「谷歌」是如何进入 Web3 的?
- mysql连接池耗尽_定时任务和jdbc连接池的耗尽问题
- Ubuntu18.04提示adb设备没有权限
- Parameter Attribute
- 【问题描述】建立一个通讯录的结构记录,包括姓名、生日、电话号码。输入n(n<10)个朋友的信息,再按他们的年龄从大到小的顺序依次输出其信息
- 中学教师资格考试真题及答案
- PHPExcel导出导入问题”continue” targeting switch is equivalent to “break”.Did you mean to use “continue 2”?
- 信数金服决策引擎分享(二):灰度发布-冠军/挑战者试验的另一个应用
- 简简单单做一个带过期时间的内存缓存
热门文章
- 怎么防爬虫爬取信息_scrapy爬取51job职位信息(针对新的反爬虫机制)!
- Python读取大文件
- Python排序函数用法
- 3种python调用其他脚本的方法,你还知道其他的方法吗?
- Docker常用命令(docker快捷键)海康docker命令 LY
- python 元组和字典的返回值后面有个L是什么意思
- javascript中match方法和exec()方法详解与深度区别(非原创)
- c语言编程后总有一个错误,C语言编程,之后出现错误,请大神帮忙看下什么问题?...
- java常用数据类型之间转换
- java中getchars方法_Java getChars() 方法