c# 常用数据库封装
我不为大家贴代码了,没有意思,有点多,我主要给大家介绍一下,源码会上传CSDN和GIT;我定义了一个ADO.NET操作接口,所有按照接口封装
1.sqlite数据库(需要SQLite.Interop.dll,采用.NetStandard2)
作为支持SQL的本地数据库和内存数据库使用。当然它是本地的,如果是大型数据库,请使用redis数据库。sqlite按照ADO.NET封装。基本用法和ADO.NET一致。
说说优化:
sqlite文件插入优化分为:1.扩展内存使用(增加cachesize,pagesize)2.使用事务 3.关闭同步 4采用wal模式 。
每一种都有各自产生的后果。值得注意的是wal模式会降低数据删除的性能。几种优化封装成了属性设置。
2.berkeleydb数据库(需要c++库和官方封装)
berkeleydb是比较优秀的K-V本地数据库,键值数据库,并且键和值的数据部分都是byte[],可以存储各类数据操作类已经封装了基本操作,这个不多说了,很简单
这里分了2层,一层封装原始的操作,key,value都传入byte[].再此之上一层泛型类,内部采用messagepack序列化,Key,value都是泛型。
3.postgresql 大型关系数据库
ADO.NET基本操作
4.通用的数据库操作
这里使用了我前一段时间的数据库连接池,根据配置,可以操作任何ADO.NET的数据库驱动,自己实现连接池。C#驱动的连接池真心不会用。
5.redis数据库操作客户端封装
这个不多说了,ServiceStack.Redis客户端
项目地址:(另外包含序列化,高效通信,自定义数据库连接池项目)
https://github.com/jinyuttt/DBQuerySharp.git
再次升级
1.新增redis客户端操作
2.UDP分报组包重发
3.数据库连接池重构
4.完善了整个框架流程
5.做成了一个完整的结构,但是没有完整测试,所有模块测试通过
6.新增LRU本地缓存,完成整个类型的存储
7.UDP通信分报组包,,采用协数据重发,协议形式
至此,整个包括了SQL数据库(连接池任意配置),本地KV数据库(berkeleydb),本地SQL数据库(Sqlite),内存SQL数据库(Sqlite),内存NOSQL数据库(redis),内存KV存储(LRU缓存)
最新文章
- Fuzz的那些事
- Dynamics AX 2012 R2 RemoteApp导出项目报错
- python 练习 22
- 简明python教程 --C++程序员的视角(九):函数式编程、特殊类方法、测试及其他
- Oracle 课程八之性能优化之10053事件
- 常用PHP缓存技术
- 洛谷 P3367 【模板】并查集
- JAVA之GUI编程窗体事件
- 信息技术手册可视化进度报告 基于jieba的关键字提取技术
- 指定的经纬度是否落在多边形内 java版
- 模拟页面获取的php数据(三)
- Codeforces 279C - Ladder - [简单DP]
- django之创建站点之基本流程
- NBUTOJ 1643 - 阶乘除法 - [数学题]
- ubuntu14.04禁止触摸板和恢复触摸板
- mongodb 错误 SCRAM-SHA-1 authentication failed for --转
- oracle数据同步
- org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session异常解决办法
- java 基础 --Collection(Set)
- 原来部署好的WCF(可以调用),因为部署.net core,而安装了DotNetCore.2.0.5-WindowsHosting,导致现在WCF站点不可以。