使用C++实现一个文件数据库应该了解哪些知识?
巴扎黑
巴扎黑 2017-04-17 11:59:46
[C++讨论组]

如何使用C++实现一个文件型数据库,所有的内容储存在磁盘中,并且能够处理较大的数据,性能较好。

如果需要完成这样的一个系统,需要学习一些什么方面的知识,能不能给一些较为基本的实现?

谢谢!

巴扎黑
巴扎黑

全部回复(3)
伊谢尔伦

SQLite源代码

ringa_lee

1.首先需要数据库的知识,如何实现ACID特性;其中,系统锁是一个重要的点,用的不好性能下降严重;
2.既然谈到锁,用什么来实现锁可以单独做为一块知识,文件互斥锁、系统信号量等;
3.索引是个重点,一般数据库用B+树来建立索引,当然,你也可以使用C++ STL内建的容器来装载索引(如map的红黑树)
4.文件数据库,一般会有内存映射,将文件映射到内存中操作(mmap的实现);如果数据库的管理进程和应用进程是独立的,本地访问,会用到共享内存的知识;基于跨机及通用的方式,会用到网络的知识(TCP、socket通信);
5.看一些专业数据库的源代码,毕竟自己能想到的前人都做的很完善了,可在前人基础上再提高;参考:sqlite、Berkeley DB等);

PHP中文网

可以参考C实现的SQLite,这里有个不错的SQLite手册,方便了解SQLite实现:
http://www.cnblogs.com/stephen-liu74/archive/2012/03/09/2328757.html

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号