现在位置: 首页

SQLite剖析之异步IO模式、共享缓存模式和解锁通知

2019-06-18 20:39 工业·编程  ⁄ 共 10936字 暂无评论
1、异步I/O模式 通常,当SQLite写一个数据库文件时,会等待,直到写操作完成,然后控制返回到调用程序。相比于CPU操作,写文件系统是非常耗时的,这是一个性能瓶颈。异步I/O后端是SQLite的一个扩展模块,允许SQLite使用一个独立的后台线程来执行所有的写请求。虽然这并不会减少整个系统的资源消耗(CPU、磁盘带宽等),但它允许SQLite在正在写数据库时立刻返回到调用者,从用户角度看,无疑提高了前端的响应速度。对异步I/O,写...
阅读全文

SQLite剖析之动态内存分配

2019-06-17 20:36 工业·编程  ⁄ 共 11906字 暂无评论
    SQLite通过动态内存分配来获取各种对象(例如数据库连接和SQL预处理语句)所需内存、建立数据库文件的内存Cache、保存查询结果。 1、特性     SQLite内核和它的内存分配子系统提供以下特性: (1)对内存分配失败的健壮处理。如果一个内存分配请求失败(即malloc()或realloc()返回NULL),SQLite将释放未关联的缓存页,然后重新进行分配请求。如果失败,SQLite返回SQLITE_NOMEM给应用程序。 (...
阅读全文

SQLite剖析之锁和并发控制

2019-06-16 21:31 工业·编程  ⁄ 共 6786字 暂无评论
在SQLite中,锁和并发控制机制都是由pager.c模块负责处理的,用于实现ACID(Atomic、Consistent、Isolated和Durable)特性。在含有数据修改的事务中,该模块将确保所有的数据修改全部提交,或者全部回滚。与此同时,该模块还提供了一些磁盘文件的内存Cache功能。 事实上,pager模块并不关心数据库存储的细节,如B-Tree、编码方式、索引等。它只是将其视为由统一大小(通常为1024字节)的数据块构成的单一文件,其中每个块被称为一...
阅读全文

SQLite剖析之临时文件、内存数据库

2019-06-15 20:27 工业·编程  ⁄ 共 7615字 暂无评论
一、7种临时文件     SQLite中,一个数据库由单个磁盘文件构成,简化了SQLite的使用,因为移动或备份数据库只要拷贝单个文件即可。这也使得SQLite适合用作应用程序文件格式。但是,当在单个文件中存储一个数据库时,SQLite会在处理数据库的过程中使用许多临时文件。     SQLite目前使用7种不同类型的临时文件:     * 回滚日志(Rollback journals)     * 主日志...
阅读全文

习近平:在亚信第五次峰会上的讲话

2019-06-15 14:48 战略·谋略  ⁄ 共 1975字 暂无评论
尊敬的拉赫蒙总统, 尊敬的各位同事: 很高兴来到杜尚别出席亚洲相互协作与信任措施会议第五次峰会,感谢主席国塔吉克斯坦为峰会顺利举行所作的精心准备和周到安排。 成立亚信是哈萨克斯坦首任总统纳扎尔巴耶夫提出的重要倡议。亚信成立27年来,顺应时代发展潮流,致力于增进各国互信和协作,维护地区安全和稳定,为促进亚洲和平与发展作出了积极贡献。 在亚信上海峰会上,为促进地区和平与发展事业,我提出践行共同、综合、...
阅读全文

白云先生:中美金融战 美国要凉了

2019-06-15 11:14 战略·谋略  ⁄ 共 2512字 暂无评论
简单说一下,近期的中美金融战战况。 前面几年,一直是打常规的金融战。目前,常规金融战,战争规模已经升级到了大决战。未来,还可能会升级到金融核大战。 常规的金融战,是指美国利用全球资本市场间的跨境投机活动,来用金融投机手段,摧毁一个国家的金融市场,掠夺一个国家的财富。比如典型的战例,是东南亚金融危机。 所谓的国际热钱,其实就是美国所领导的,跨国金融战的正规军部队。怎么防御这种金融战中的常规战攻击呢...
阅读全文

SQLite剖析之数据类型

2019-06-14 19:22 工业·编程  ⁄ 共 11831字 暂无评论
许多SQL数据库引擎(除SQLite之外的各种SQL数据库引擎)使用静态、严格的数据类型。对于静态类型,一个值的数据类型由它的容器,即存储这个值的列来决定。SQLite则使用更加通用的动态类型系统。在SQLite中,一个值的数据类型被关联到这个值本身,而不是它的容器。SQLite的动态类型系统向后兼容一般静态类型系统的数据库引擎。在某种意义上,工作在静态类型数据库上的SQL声明也同样能工作在SQLite上。但是SQLite动态类型还允许做一...
阅读全文

习近平:在上海合作组织成员国元首理事会第十九次会议上的讲话

2019-06-14 14:46 战略·谋略  ⁄ 共 2252字 暂无评论
尊敬的热恩别科夫总统, 尊敬的各位同事: 很高兴来到美丽的比什凯克出席上海合作组织成员国元首理事会第十九次会议。感谢东道国吉尔吉斯斯坦为本次会议所作的精心准备和周到安排。吉方去年6月接任轮值主席国以来,为推动组织发展做了大量工作,中方高度评价。 青岛峰会以来,上海合作组织保持良好发展势头。中方在峰会上提出的发展观、安全观、合作观、文明观、全球治理观,丰富了本组织合作理念,得到各方积极响应。成员国...
阅读全文

【每日一字】刀:欲将轻骑逐,大雪满弓刀

2019-06-14 06:02 生活·感悟  ⁄ 共 1511字 暂无评论
在古龙的武侠小说中,刀是他非常偏爱的一种兵器,最著名的当属那柄三す长的小刀小李飞刀,例无虚发是他笔下的江湖中流传最久的神话。还有弯如国月的回月弯刀“秦失其鹿,天下共逐,唯胜者得鹿而割之”的割鹿刀,白银吞ロ、黑鳖皮鞘、着七颗翡翠的碧玉刀…他曾说:刀为什么有鞘?因为它不是为了系,而是为了藏。武学千年,胜负都是过眼烟云,真正留下的,应该是刀客所代表的精神。 刀字甲骨文字形为),是独体象形字,字形像有锋刃的长...
阅读全文

SQLite剖析之C/C++接口

2019-06-13 18:12 工业·编程  ⁄ 共 19741字 暂无评论
    SQLite3是SQLite一个全新的版本,它虽然是在SQLite2的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和API。SQLite3是为了满足以下的需求而开发的:支持UTF-16编码、用户自定义的文本比较方法、可以对BLOBs字段建立索引。SQLite 3.X版的和SQLite 2.X版的API非常相似,但是有一些重要的改变需要注意。3.X版的API增加到超过185个,所有API接口函数和数据结构的前缀都由"sqlite_"改...
阅读全文