• 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缓存)

  • 相关阅读:
    linux学习第一周笔记
    三授权六禁令(必背)
    内存复用三种技术
    移动平台路径相关
    unitUnity优化技巧
    游戏开发优化建议
    转载, unity 如何自定义脚本
    unity animation 在播放动画时报错 The animation state Eat could not be played because it couldn't be found!
    unity 学习之前需要做的准备
    xml 操作遇到的坑
  • 原文地址:https://www.cnblogs.com/jinyu20180311/p/10386299.html
Copyright © 2020-2023  润新知