01 2016 档案

摘要:上篇文章简单讨论了虚拟机的原理,这篇文章我们详细讨论下指令,具体从几种典型的SQL语句来看看每种SQL对应的指令流,以及每个指令的含义。通过explain语句,可以看到语句对应的指令流;通过pragma vdbe_trace=on指令,我们甚至可以得到语句对应的指令执行流程,包括跳转等。测试表结构 阅读全文
posted @ 2016-01-21 09:22 天士梦 阅读(1132) 评论(0) 推荐(0) 编辑
摘要:前言 我们知道任何一种关系型数据库管理系统都支持SQL(Structured Query Language),相对于文件管理系统,用户不用关心数据在数据库内部如何存取,也不需要知道底层的存储结构,熟悉SQL,就能熟练使用数据库。SQL的引入,使得数据库系统需要将SQL转换为内部的数据结构,然后与底层 阅读全文
posted @ 2016-01-20 08:59 天士梦 阅读(2730) 评论(1) 推荐(4) 编辑
摘要:概述 SQLite提供了一系列接口供用户访问数据库,主要包括连接数据库,处理SQL,迭代查询结果等。本文会针对我们使用SQLite的主要场景,列出核心的API,详细介绍API的用法并给出代码用例。1.打开关闭数据库sqlite3_open_v2原型: 作用:打开一个数据库连接关键的参数:flagsS 阅读全文
posted @ 2016-01-12 08:29 天士梦 阅读(22173) 评论(0) 推荐(4) 编辑
摘要:1.概述 我们熟知的数据库引擎大部分采用静态数据类型,即列定义的类型定义了值的存储,并且值要严格满足列的定义,同一列所有值的存储方式都相同,比如定义了一个列类型为整型 int,不能在该列上输入'abc'。SQLite的数据类型则采用了动态类型,列定义不能决定值的存储,值的存储由值本身决定,因此在SQ 阅读全文
posted @ 2016-01-11 09:22 天士梦 阅读(1968) 评论(1) 推荐(0) 编辑
摘要:1.问题背景 默认情况下,线上的mysql复制都是异步复制,因此在极端情况下,主备切换时,会有一定的概率备库比主库数据少,因此切换后,我们会通过工具进行回滚回补,确保数据不丢失。半同步复制则要求主库执行每一个事务,都要求至少一个备库成功接收后,才真正执行完成,因此可以保持主备库的强一致性。为了确保主 阅读全文
posted @ 2016-01-05 08:57 天士梦 阅读(3829) 评论(13) 推荐(2) 编辑
摘要:mysql复制简单介绍了mysql semi-sync的出现的原因,并说明了semi-sync如何保证不丢数据。这篇文章主要侧重于semi-sync的实现,结合源码将semi-sync的实现过程展现给大家。最新的semi-sync源码可以参考官方5.7版本的实现,https://github.com 阅读全文
posted @ 2016-01-05 08:56 天士梦 阅读(4615) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示