用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4707|回复: 5
收起左侧

[数据库] 如何做数据库读写分离呢

[复制链接]
发表于 2011-6-7 14:56:07 | 显示全部楼层 |阅读模式
对CI代码还没有深入阅读,目前架构一个项目使用CI框架,考虑数据库压力的问题,打算在初期就做好数据库主从分离。
但CI似乎没有直接提供这样的功能?
发表于 2011-6-7 17:31:05 | 显示全部楼层
这个得自已写吧
发表于 2011-6-10 17:57:25 | 显示全部楼层
数据库主从结构和读写分离是两个概念,准确来说:读写分离是主从结构的一个案例。

具体的操作,需要分析你的业务需求,然后改动CI默认的代码(或许不需要)。这里的话我建议采用两组db链接字符串,在需要的时候动态切换。默认情况下叫做default,你可以建立两组一个组是read配置,两一个组是write组。

读写分离的难点是如何保证数据的一致性和完整性,不过这个已经相当成熟了,尝试google之解决,主要工作在服务器调配上下功夫。
发表于 2011-6-13 16:22:27 | 显示全部楼层
提供一个思路:
对于频繁的数据库读取(read only),开启缓存(数据库缓存)能大幅下降数据库的I/O和内存占用。
对于频繁的数据库读写(read & write),最好设定一个中间表,所有的写数据都统一写到这个表上,然后设置定时(手动或自动),按照程序的逻辑和需求,在规定时间内写入到各个具体目标表中。
看起来是两次操作数据库,增加了数据库的读写。但当访问量较大时,你会发现,write的表是一个还是多个,对于整体数据库的效率,区别还是很大的。
发表于 2011-6-17 15:10:06 | 显示全部楼层
发表于 2011-6-20 23:08:47 | 显示全部楼层
学习了。。

本版积分规则