数据库结构
青箫
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
索引结构
1、存储结构由文件构成,这个文件的概念和操作系统中文件的概念类似。 2、一个数据文件能拥有一个或多个索引文件,每个索引文件建立查找键和数据记录之间的关系,查找键的指针指向与查找键具有相同属性值的记录。 3、主索引能确定记录在数据文件中的位置,而辅助索引不能。通常我们会在关系的主键上建立主索引,而在其他的属性上建立辅助索引。顺序文件:是对关系中的元组按主键进行排序而生成的文件。 稠密索引:如果记原创 2015-11-24 00:06:54 · 484 阅读 · 0 评论 -
大对象类型数据存储
数据在磁盘上的存储需求依赖各种各样的元素。不同的存储引起表示数据类型和存储的原始数据是不同的。表数据的存储不管是对一列还是一整行可能是综合考虑这些因素的,完成表或者行对数据存储的需求。尽管在磁盘上的存储层的不同,内部的API关于一致的数据结构之间的交流和数据交换通过存储引擎实现。内部数据表示的最大值是65535个字节,即使存储引擎有能力存储更大的行。指向大对象结构的指针,包含9到12大小的字节。内部原创 2016-03-21 10:31:22 · 406 阅读 · 0 评论 -
如何开启一个事务
MYSQL的事务处理主要有两种方法。 1、用begin,rollback,commit来实现 begin 开始一个事务 rollback 事务回滚 commit 事务确认 2、直接用set来改变mysql的自动提交模式 MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过原创 2016-03-11 16:35:54 · 3508 阅读 · 0 评论 -
libmysql
libmysql.dll文件是MySQL的动态链接库文件,缺少此文件数据库无法正常工作。系统文件libmysql.dll是存放在Windows系统文件夹中的重要文件,通常情况下是在安装操作系统过程中自动创建的,对于系统正常运行来说至关重要。在正常情况下不建议用户对该类文件进行随意的修改,它的存在对维护计算机系统的稳定具有重要作用。动态链接库(Dynamic Link Library或者 libmy原创 2016-03-11 19:08:55 · 1609 阅读 · 0 评论 -
mysql 除法精度运算
mysql源码:void Item_func_div::result_precision() { uint precision= min(args[0]->decimal_precision() + args[1]->decimals + prec_increment, DEC原创 2016-03-25 11:51:45 · 5793 阅读 · 0 评论 -
mysql 乘法精度
void Item_func_mul::result_precision() { /* Integer operations keep unsigned_flag if one of arguments is unsigned */ if (result_type() == INT_RESULT) unsigned_flag= args[0]->unsigned_flag |原创 2016-03-25 11:55:28 · 5537 阅读 · 0 评论 -
lsm-tree
lsm思想非常朴素,就是将对数据的更改hold在内存中,达到指定的threadhold后将该批更改批量写入到磁盘,在批量写入的过程中跟已经存在的数据做rollling merge。拿update举个例子: 比如有1000万行数据,现在希望update table.a set addr=’new add’ where pk = ‘833’,如果使用B-Tree类似的结构操作,就需要:1、找到该条原创 2016-04-07 20:50:42 · 676 阅读 · 0 评论 -
针对mysql基础数据类型测试
–enable_metadata –disable_warnings drop table if exists t1, t11, t12, t13, t14, t2, t21, t22, t23, t24, t3, t31, t32,t4, t5, t51, t52, t6, t7, t71, t8; –enable_warningsintcreate table t1(a tinyint,原创 2016-03-28 19:53:43 · 316 阅读 · 0 评论 -
mysql: float、double实现结果方式
float(m,d): 数值范围: -3.402823466E+38 to -1.175494351E-38, 0, 和 1.175494351E-38 to 3.402823466E+38。 这个是理论值,实际的值根据操作系统的硬件影响可能会稍微小点。 m代码数值长度,d代表精度,当m和d没有写的时候,值根据硬件大小来决定。 可精确到7位小数。 mysql中float类型的计算都是用d原创 2016-04-11 16:32:09 · 3765 阅读 · 0 评论 -
blob 存储大小
MySQL的四种BLOB类型 类型 大小(单位:字节) TinyBlob 最大 255B Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G原创 2016-04-22 20:59:35 · 4329 阅读 · 0 评论 -
sharding-jdbc api结构
1、内部api关系2、初始化流程a、配置Configuration对象。 b、通过Factory对象将Configuration对象转化为Rule对象。 c、通过Factory对象将Rule对象与DataSource对象装配。 d、Sharding-JDBC使用DataSource对象进行分库。...原创 2019-03-16 14:07:29 · 492 阅读 · 0 评论 -
memtable Cassandra存储机制
在2009年兴起的NoSQL运动中,Cassandra是其中重要的一个分布式key-value数据库产品,由Facebook在2008年开源,目前是Apache的顶级项目。最近twitter的一篇声明,表示将从MySQL迁移到Cassandra,更让其声名大振。Cassandra是结合了Google Bigtable的数据模型和Amazon Dynamo高可用框架的一个产品。其数据模型可以参考张瑞的转载 2016-03-08 12:01:04 · 1596 阅读 · 0 评论 -
LevelDb
LevelDb的MemTable提供了将KV数据写入,删除以及读取KV记录的操作接口,但是事实上Memtable并不存在真正的删除操作,删除某个Key的Value在Memtable内是作为插入一条记录实施的,但是会打上一个Key的删除标记,真正的删除操作是Lazy的,会在以后的Compaction过程中去掉这个KV。需要注意的是,LevelDb的Memtable中KV对是根据Key大小有序存储的,在转载 2016-03-30 19:52:33 · 262 阅读 · 0 评论 -
B-树结构(二)
B-树的删除: 其主要部分是查找。 如果发生删除的B-树节点在删除后至少还有最小数目的键和指针,那就不需要再做什么。但是,节点有可能在删除之前正好具有最小的充满度,因此在删除后,就违背了对键数目的约束。这时,我们需要为这个键的数目仅次于最小数目的节点N做下面两件事之一,其中有一种情况需要沿着树往上递归地删除。 1、如果与节点N相邻的兄弟中有一个键和指针超过最小数目,那它的一个键–指针对可以移到原创 2015-11-24 22:45:22 · 337 阅读 · 0 评论 -
散列表
有许多涉及散列表的数据结构可用作索引,如:主存数据结构的散列表,在这种结构中有一个散列函数h,它以查找键(散列键)为参数并计算出一个介于0到B-1的整数,其中B是桶的数目。桶数组,即一个序号从0到B-1的数组,其中包含B个链表的头,每一个对应于数组中的一个桶。如果记录的查找键为K,那么我们通过将该记录链接到桶号为h(k)的桶表中来存储它。辅助散列表:桶数组有存储块组成而不是由指向链表头的指针组成原创 2015-11-25 00:21:39 · 590 阅读 · 0 评论 -
mysql 大对象
MySQL中,BLOB是个类型系列,包括: TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。 MySQL的四种BLOB类型 类型 大小(单位:字节) TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G MySQL的原创 2016-03-16 15:25:26 · 1337 阅读 · 0 评论 -
mysql 时间加法源码理解
mysql 时间的加法操作中数据类型主要包含:DATETIME、TIMESTAMP、TIME、DATE、STRING。其INTERVAL 的单位包含20种(day、hour、minute、second、microsecond、week、month、quarter、year、hour_second、hour_minute、hour_microsecond、minute_second、minute_mi原创 2016-03-16 15:40:53 · 903 阅读 · 1 评论 -
SQL 语句类型以及处理
1、DML 包含select、delete、insert/replace、update2、DDL 包含create、update、delete3、TCL(事务控制语句) 包含start transaction、commit、rollback、end transaction、4、DCL 包含create user、grant、set、alter system m原创 2016-03-30 15:52:20 · 399 阅读 · 0 评论 -
oceanbase中schema_manager
oceanbase中每个observer都有schema_manager这个结构体,包含schema_version标示当前schema的版本号。假设现在有两台observer(obs0和obs1)一台root server(利用锁的原理,将DDL操作串行执行)。client发送DDL请求到obs1,obs1将请求通过PRC发送给root server,root server收到请求后,更新sche原创 2016-03-30 16:27:07 · 571 阅读 · 0 评论 -
sstable
sstable种类包含statistic、bloomfilter、index、data。按照 BigTable的定义,SSTable叫做 Sorted String Table.其本质上是一种文件格式用于存储数据到磁盘上。1、Data Data文件用于存储所有ColumnFamily的信息,即其包含的Column Index(注意:列索引没有单独的文件,如果采用B+Tree则需要有单独的文件)原创 2016-03-30 16:58:45 · 696 阅读 · 0 评论 -
Cassandra--memtable SSTable
memtable是可以使用key来访问的基础的数据回写缓存–并不是flush的时候,将membable完全写入缓存。将memtable写入到sstable的过程叫做flush,当你想减少commitlog的消耗时间时,你可以启动flush。meltable按照key来排序,按照序列化的方式回写。回写是非常快的,消耗仅仅是增加commitlog和分期序列化的写。当flushed时,SSTable文件是原创 2016-03-30 17:58:56 · 1654 阅读 · 0 评论 -
SSTable and Log Structured Merge Trees
仅仅SSTable数据结构本身仍然无法support高效的range query和random r/m 的场景,还需要一整套的机制来完成从memory sort、flush to disk,compaction以及快速读取。。。这样的一个完成的机制和架构称为“ The Log-Structured Merge-Tree”(LSM Tree)。 首先是基于log的,不断产生SSTable结构的log文原创 2016-03-30 19:46:39 · 372 阅读 · 0 评论 -
LevelDb
LevelDb的MemTable提供了将KV数据写入,删除以及读取KV记录的操作接口,但是事实上Memtable并不存在真正的删除操作,删除某个Key的Value在Memtable内是作为插入一条记录实施的,但是会打上一个Key的删除标记,真正的删除操作是Lazy的,会在以后的Compaction过程中去掉这个KV。需要注意的是,LevelDb的Memtable中KV对是根据Key大小有序存储的,在转载 2016-03-30 19:52:23 · 262 阅读 · 0 评论 -
数据库中间件影子库设计
原创 2019-03-16 14:15:53 · 5232 阅读 · 0 评论
分享