| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> mysql数据库(存储引擎) -> 正文阅读 |
|
[大数据]mysql数据库(存储引擎) |
存储引擎的概念 MySQI中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、 锁定水平并最终提供不同的功和能力(为了适应各种应用场景),这些不同的技术以及配套的功能 在MysQL中称为存储引擎存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式。 常用的mysql数据存储引擎:MyISAM、Innodb MysSQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储 myISAM特点 MyISAM不支持事务,也不支持外键约束,只支持全文索引,数据文件和索引文件是分开保存的 访问速度快,对事务完整性没有要求 MyISAM适合查询、插入为主的应用场景 MyISAM在磁盘上存储成三个文件,文件名和表名都相同,但是扩展名分别为: .frm文件存储表结构的定义 数据文件的扩展名为:MYD (MYData) 索引文件的扩展名是.MYI(MYIndex) 表级锁定形式,数据在更新时锁定整个表 数据库在读写过程中相互阻塞:串行操作,按照顺序操作,每次在读或写的时候会把全表锁起来 会在数据写入的过程阻塞用户数据的读取 也会在数据读取的过程中阻塞用户的数据写入 特性:数据单独写入或读取,速度过程较快且占用资源相对少 MyIsam是表级锁定,i读或写无法同时进行 myISAM表支持3中不同的存储格式 静态(固定长度)表 动态表 动态表包含可变字段(varchar),记录不是固定长度的,这样存储的有点是占用空间较少,,但是频繁的更新、删除记录会产生碎片,需要定期执行?optimize?table?语句或myisamchk -r命令来改善,并且出现故障的时候回复相对比较困难。 压缩表 压缩表有myisamchk工具创建,占据非常小的空间,因此每条记录都是被单独压缩的,所以只有非常小的访问开支 myISAM使用的生产场景 1、公司业务不需要事务的支持 2、单方面读取或写入数据比较多的业务 3、MyISAM存储引擎数据督学都比较频繁场景不适合 4、使用读写并发放稳相对较低的业务 5、数据修改相对较少的业务 6、对数据业务一致性要求不是非常高的业务 7、服务器硬件资源相对比较差 MyIsam:适合于单方向的任务场景、同时并发量不高、对于事务要求不高的场景 INnnoDB特点 支持事务,支持4个事务隔离级别(数据不致问题) MySQL从5.5.5版本开始,默认的存储引擎为InnoDB 5.5 之前是myisam(isam)默认 读写阻塞与事务隔离级别相关 能非常高效的缓存索引和数据 表与主键以簇的方式在悖心 支持分区、表空间,类似oracle数据库(5.5——》5.6和5.7第三代数据库8.o后版本) 支持外键约束,5.5前不支持全文索引,5.5后支持全文索引 ?对硬件资源要求还是比较高的场合 行级锁定,但是全表扫描仍然会是表级锁定(select ) , 如update table set a=1 where user like '%lic%' ; ?InnoDB中不保存表的行数,如 select count () from table;时,InnoDB需要扫描一遍整个表来计算有多少行,但是 MyISAM只要简单的读出保存好的行数即可。需要注意的是,当count()语句包含where条件时 MyISAM也需要扫描整个表 对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立组合索引 清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表 死锁 MyISAM:表级锁定 INnnoDB:行级锁定 当两个请求分别访问/读取2行记录,同时又需要读取对方的记录数据,因为(行锁的限制)而造成了阻塞的现象 怎么解决死锁 查询线程信息sql是什么? 杀死线程:kill id; 2、第二种方案: 预防死锁: 2、调整更为精确的查找方案—》可以在前端页面的选择上给与更为精确的匹配栏 3、定义更为合理的存储过程[解释] |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 5:22:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |