最近开始在看discuzx3.1的代码,看到数据库层的实现,discuzx的数据库层能够支撑数据库分库,分布式部署,主要水平分表,也可以很方便的支持其他数据库.性能上,可以做读写分离,支持数据缓存.可以说,是一个很完善的数据库层的解决方案了. 数据库层分为三层,业务逻辑层封装,抽象层,和驱动层.如图: 其中,数据抽象层封装定义数据库操作,负责解析sql语句,连接底层驱动执行sql,并数据安全过滤. 数据库抽象层由discuzx_database类实现,该类所有的成员变量和方法都是静态的,可以直接…