html5农业网站模板,有赞微商城入口,做网批的网站,织梦m网站伪静态目录 mongDB
read
write
ES
read
write
MySql
write
总结 mongDB
3.0 版本后的WiredTiger存储引擎
read
1. 应用通过driver 发起Buffer I/O读操作#xff0c;由操作系统将磁盘数据页加载到文件系统的页缓存区
2. 引擎层读取页缓冲区的数据#xff0c;进行解压后放…目录 mongDB
read
write
ES
read
write
MySql
write
总结 mongDB
3.0 版本后的WiredTiger存储引擎
read
1. 应用通过driver 发起Buffer I/O读操作由操作系统将磁盘数据页加载到文件系统的页缓存区
2. 引擎层读取页缓冲区的数据进行解压后放到内部缓存区
3. 在内存中完成匹配查询将结果返合给应用
tip: MongoDB默认的内部缓存大小达到了机器内存的一半 由wireTigerCacheSize参数指定 write
1. 应用通过driver 发起写入操作
2.数据库从内部缓存获取当前记录所在的页快如果不存在则会从磁盘中加载
3.WiredTiger 开始写事物修改数据写入页快的更新表
4. 同时写Journal 日志ReDo Log默认100ms 写入磁盘用于弥补CheckPoint的不足
5. 数据库默认每隔60s 执行CheckPoint 将内存中数据写入到磁盘中 ES
read
1. clinet 发动请求到 coordinate node
2. coordinate node 请发转到 shard 对应的主节点或者备份节点
3. 每个shard 节点将自己的搜索结果返合给coordinate node 由协调节点进行数据的合并、排序、分页等操作产出最终的结果
write a.Lucene 中单个倒排索引⽂文件被称为 Segment。Segment 是⾃自包含的不不可变更更的。 多个 Segments 汇总在⼀一起称为 Lucene 的 Index其对应的就是 ES 中的 Shard b.乐观锁删除用.del标记然后过滤 c.写index buffer闪存 写Transaction Log 磁盘 d.Refresh : index buffer 1秒一次写入 segment 可以被搜索到估进称为进实时搜索 e. merage MySql
write
mySql 分server层和存储层这里的存储层默认指nnoDB 先写存储层在写server层binlog
1. InnoDB将要更新的数据所在的整页数据更到到缓存Buffer pool 一半为机器内侧60%中
2. InnoDB写入undo 日志便于回滚
3. InnoDB更新Buffer pool 内存中的数据开放查询
4. InnoDB写redo log buffer
5. InnoDB commit 提交时 redo 日志写入磁盘
6. Server层写binlog文件
7. commit 标识写入redo 日志与binlog 保持一致
8. buffer pool 中的数据写入磁盘 总结
总结MySql, ElasticSearch,MongoDB三种现代数据的写操作不难发现实现机制大同小异 先写buffer Transaction Log; 同时满足一定的条件时再写入到磁盘中进而提升写入效率