针对CI模型的分库分表扩展

就CI在对于一些分库分表这块并没有支持而做的扩展

涉及以下文件

  • application/libraries/MY_Profiler.php (仅仅为了支持在调试模式的SQL日志输出而重写了_compile_queries方法)
  • application/core/MY_Model.php

http://paperen.com/file/198

使用情景描述

在一些大型项目中可以会遇到DB将某些会出现大量数据的表拆分到多个表甚至是多个数据库中多个表

比如:用户数据

在单库单表的情况下只使用user表存放数据

uid——username——email——password

但随着数据量增加后续会采取分表存放数据比如创建多个表,user0,user1,user2,user3,而同时有一个主表user_index记录用户的id与username,user_index作为用户的一个索引

uid——username 1——paperen 2——paperen3 3——paperen4

关于这三个用户的详细信息是分散到不同表存储的,如何知道是哪个表,则使用求余的方法 公式为:uid%4 通用公式为:id%(分表总数)

那对于paperen4这个用户他的详细数据是放在3%4=3,也就是user3表里面