存储引擎的概念:

关系型数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,各种各样,不同的表结构意味着存储不同类型的数据,在数据的处理上也会存在着差异,对于mysql来说,它提供了多种类型的存储引擎,可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用mysql的性能

mysql常见的存储引擎:(SHOW ENGINES;    查看mysql支持的存储引擎)

InnoDB:mysql5.5以后默认使用的储存引擎,是目前使用最为广泛的存储引擎

InnoDB的特性:

1、支持崩溃后安全恢复

2、InnoDB支持行级锁和外键约束

3、支持事务

4、支持聚集索引和辅助索引

5、支持热备份

6、支持行级锁

7、特别适合处理多重并发的请求,基于MVCC实现

数据文件:

InnoDB数据存储于表空间中:

两种表空间的类型:

1、所有InnoDB表的数据和索引存在在一个文件中,表空间文件定义在data目录下

数据文件名:ibdata1,ibdata2,...

默认使用这种表空间格式,但这种方式有很大缺陷,不建议使用

2、每个表使用一个独立的表空间文件,存储数据和索引

innodb_file_per_teble=ON #指定使用第二种表空间格式

使用独立表空间文件,每增加一张表就会增加两个数据文件

数据文件:

表名.ibd:用于存储数据和索引

表名.frm:用于存储表定义和属性

MyISAM:mysql5.5以前默认使用的存储引擎

MyISAM的特性:

1、支持全文索引,压缩

2、不支持事务

3、只能支持表级锁

4、不支持崩溃后安全恢复

5、支持温备份

适用场景:读多写少的环境(如:读写分离中的从库),且如果需要用到MyISAM可以考虑用Aria代替

Aria支持崩溃后安全恢复

MyISAM没创建一个表和生成三个数据文件

数据文件:位于data目录下

表名.frm:用于存储表定义和属性

表名.MYD:用于存储数据

表名.MYI:用于存储索引

BlackHole(黑洞引擎):

不实际存储数据,一般只用于记录二进制日志文件,多用与级联复制

Memory(基于内存的存储引擎):

Memory存储引擎,内存作为存储介质。提高数据库性能,但当mysqld崩溃时,所有的Memory数据都会丢失

使用场景:

1.目标数据较小,而且被非常频繁地访问

2.如果数据是临时的,而且要求必须立即可用,那么可以Memory存储引擎

3.存储在Memory表中的数据如果突然丢失,不会对线上服务产生负面影响

mysql锁:

锁的概念:

在数据库中,数据是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素

锁的级别:

表级锁:开销小,加锁快;不会出现死锁;锁定力度大,发生锁冲突的概率最高,并发度最低

行级锁:开销大,加锁慢;会出现死锁;锁定力度小,发生锁冲突的概率最低,并发度最高

mysql本身在数据库级别实现了表级锁,存储引擎的锁只有存储引擎能够调用,用户无权操作

手动加锁:

语法

LOCK TABLES tbl_name ock_type READ|WRITE #加锁

UNLOCK TABLES #解锁

本文转自  红尘世间  51CTO博客,原文链接:http://blog.51cto.com/hongchen99/1932021

最新文章

  1. UVA 558 判定负环,spfa模板题
  2. Visual Studio 2015简体中文企业版/专业版下载+有效激活密钥
  3. 【转】XGBoost参数调优完全指南(附Python代码)
  4. SpringBoot 快速入门
  5. Processor Speculative & pipeline
  6. PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–合理利用算法,效率提高2125倍
  7. 为SM30视图分配事务代码
  8. invoking gdb
  9. 负载均衡SESSION同步总结
  10. [tensorflow in a nutshell] tensorflow简明教程 (第一部分)
  11. 12天学好C语言——记录我的C语言学习之路(Day 5)
  12. Javascript个人理解
  13. js压缩解压工具
  14. openstack私有云布署实践【5 数据库MariaDB 集群】
  15. js--冒泡排序[由小到大]
  16. java 集合框架(TreeSet操作,自动对数据进行排序,重写CompareTo方法)
  17. hibernate04--三种状态之间的转换
  18. 开启FIPS协议
  19. Android O HIDL的实现对接【转】
  20. G 最水的一道

热门文章

  1. 16个实例讲述如何写好App描述
  2. MongoDB查询mgov2的聚合方法
  3. 【python】利用jieba中文分词进行词频统计
  4. Mac PyCharm之.gitignore 安装设置
  5. 数据结构和算法(Golang实现)(13)常见数据结构-可变长数组
  6. 数论-质因数(gcd) UVa 10791 - Minimum Sum LCM
  7. 分屏神器PoweToys
  8. win7下delphi中的help文档问题
  9. 三分钟教会你Python数据分析—数据导入,小白基础入门必看内容
  10. K - Two Contests