数据库
文章平均质量分 96
shanxiaoshuai
独学而无友,则孤陋而寡闻
展开
-
【存储】blotdb的原理及实现(2)
在etcd系列中,我们对作为etcd底层kv存储的boltdb进行了比较全面的介绍。但是还有两个点没有涉及。第一点是boltdb如何和磁盘文件交互。持久化存储和我们一般业务应用程序的最大区别就是其强依赖磁盘文件。一方面文件数据结构和内存数据结构的差异很大,需要设计合适的文件数据结构(文件布局)来保证足够的读写效率;另一个方面,在与磁盘文件的读写交互上也需要做各种优化以提升db的整体性能。boltdb的文件布局在上一篇中已经介绍过了,本篇中会介绍mmap,boltdb用来做文件交互的技术。原创 2023-11-29 20:04:55 · 1074 阅读 · 0 评论 -
【存储】lotusdb的原理及实现
就如文章开始所讲,博主认为lotusdb还是一个相对比较稚嫩但挺有意思的项目,能够反映出作者的一些有意思的想法。其中的问题,随着迭代也会慢慢完善。如果觉得本文对您有帮助,可以请博主喝杯咖啡~原创 2023-10-29 21:39:09 · 192 阅读 · 0 评论 -
【存储】etcd(4)-raft
etcd raft模块的设计及实现原创 2023-03-17 22:53:21 · 699 阅读 · 0 评论 -
【存储】etcd的存储是如何实现的(3)-blotdb
etcd的底层kv存储 boltdb原创 2023-02-21 21:43:55 · 958 阅读 · 2 评论 -
【存储】etcd的存储是如何实现的(2)-mvcc
etcd mvcc的实现原创 2023-01-28 17:33:02 · 568 阅读 · 0 评论 -
【存储】etcd的存储是如何实现的(1)-storage
etcd存储模块的实现,包括wal预写日志、raft日志存储、backend kv存储、事务等原创 2023-01-25 17:04:53 · 735 阅读 · 0 评论 -
【存储】MySQL 和 MongoDB
这篇文章主要想聊聊mysql和mongoDB。这两个数据库的定位都是持久化的主存储。mysql的地位不用多说,mongoDB的应用也越来越广泛。在学习mongoDB的过程中,发现其在设计上和mysql有很多相似的地方,所以想着写一篇关于mysql和mongoDB文章。本文的内容会包括技术选型、索引、事务、日志、数据一致性等,因为内容较多,可能很难一次写完。我会尽量督促自己多思考、多总结、多写、多分享。然后内容可能不会太详细,后面会慢慢完善,包括补充一些图片。技术选型:MySQL or MongoDB说原创 2021-11-27 16:41:49 · 2779 阅读 · 2 评论 -
【mongoDB】mongoDB的多健索引及查询优化
最近做了一些mongoDB的慢查询工作。完成该工作后照例对mongoDB查询优化的内容进行总结,其中包括索引、执行计划、优化器等内容。索引数据库组织数据的形式是由存储引擎决定的,mongoDB从3.2版本开始采用wiredTiger作为默认的存储引擎。wireTiger支持B+树和LSM树,默认是采用B+树。mysql的InnoDB同样是采用B+树来组织数据,区别在于mongoDB中的B+树是非聚簇的。因为底层的数据结构相同,所以mongoDB的索引和mysql的索引具有非常多的相似之处,比如都支持原创 2021-08-29 15:34:31 · 1566 阅读 · 0 评论 -
【mysql】查询优化——mysql如何选择最优的执行计划
【这篇文章最开始是在公司内部写的,后面抽了点时间稍微整理了一下,主要是把涉及到公司内部数据的部分去除,可能会导致一些阅读不畅】本文的内容主要涉及到一些工具命令比如explain\optimize trace、mysql优化器的工作原理以及涉及到InnoDB的相关内容。mysql逻辑架构优化分析: explain和optimize trace一条sql语句通常都会有多种执行方案,mysql的优化器会选择其认为最优的方案进行执行,这里的最优其是指成本最低,在后面的优化器工作原理中会详细讲到。在和mys原创 2021-05-25 18:13:45 · 711 阅读 · 0 评论 -
【mysql】mysql备份数据及数据的恢复
备份数据使用mysqldump命令1、mysqldump -u 用户名 -p密码 databaseName [tableName] > 文件名.sql将指定数据库的数据导出到指定文件,如果加表名则只导出指定表的数据。2、mysqldump -u 用户名 -p密码 -d databaseName [tableName] > 文件名.sql加 -d以后表示只导出表的结构而不导出具体数据。恢复数据选择指定的数据库后,这是在mysql下执行的1、mysql>source 文件名.s原创 2020-11-14 03:29:27 · 119 阅读 · 0 评论 -
【python】mysql连接池的使用及源码解读(一)
希望能趁着这个十一假期好好整理整理一些内容,就从数据库相关的开始吧~一原创 2020-09-28 17:39:07 · 617 阅读 · 5 评论 -
python 批量插入mysql的三种方法
详细信息请看原创具体详细的内容请点链接看,我只是看了以后做下笔记。1、单条insert插入语句使用for循环,循环一次执行一条sql语句,代码如下:for _ in range(50000):sql = ‘insert into table(字段名) values (val1,val2…)’cs.execute(sql)2、一次insert插入多条数据uservalues = []for _ in range(50000):uservalues.append((val1,val2…))原创 2020-08-30 15:25:50 · 2720 阅读 · 0 评论