2个关于数据库分离的问题

kacc850 发布于 2014/05/20 19:47
阅读 487
收藏 2

1: 普通的分表 比如帖子表 post1  post2 2个表   之前是一个POST表 1000W条数据

1.1 现在分2个表,怎么进行普通查询呢?   比如 前500W 我在1表 ,我查询的时候怎么做呢?

1.2 其次,以后统计post1 post2 post3   COUNT总记录 或者分页怎么搞呢?



---------------------------------------------------------------------------


2: 关于 主从分离MYSQL

我们知道 设置一个为主MYSQL ID=1    设置几个从的,比如ID=2

原理是利用MYSQL 二进制日志变化来进行统一数据的 实时性和一致性。 

但我想问,到底主从是为了分流呢  还是为了备份呢? 当主挂了,从里面可以使用

2.1还是 主=增删改   从=查询



2.2另外,怎么进行  我查询的时候自动找从表  增删改的时候找主表?




加载中
0
kacc850
kacc850
?? no one?
0
小洋哥
小洋哥

Easy!

1.  分表的话, 你分几个表是吧,这么来,用简单方式解决,

用取模运算的涩

比如你对每个用户算出一个唯一值,

比如:你有xx1表,xx2表,xx3表 。。。。

 当你要把数据插入几个表的时候,

你就把这个唯一值%你有几个表 比如3个表 

 xxxx%3 =1 那就插入  xx1表

xxx%3 =2   那就插入 xx2表涩

那么普通查表也类似涩,

如果想把两个表合在一起比如Mysql用 union 合在一起涩 计算出总量就行了, 分页也是一样涩,搜索也行涩

当然我说的比较简单哈,这里还有一些小细节,主要是优化嘛,

关于主从分离的话,这么解释比较好,

为啥要主从分离,一句话 等等一句话也说不太清楚,

正好我写一份博客唠叨唠叨这个问题,你可以关注一下嘛

小洋哥
小洋哥
@kacc850 没什么的,互相学习哈
kacc850
kacc850
非常感谢你
0
mark35
mark35

简单点根据tid取模分表,这样一个tid下所有的post集中在一个分表中,一个tid索引查找就可以全部抓出来。但需要在应用层SQL组装时计算指定分表的表名

复杂点根据fid来分表,这样一个版块下面所有回帖都在一个分表中。在组装SQL时不用单独指定分表名,只要SQL中带上fid的条件,数据库会自动确认分表并且仅在分表中操作(mysql这玩具就不考虑了)

更复杂点,在上一个的基础上再根据时间来分表,再次降低查询首页附近帖子的搜索范围,极大提高查询效率(无论是索引还是fetch数据)。这也需要SQL中包含时间段条件。

我对dz改进使用了第三个办法,效果非常明显

ps:记住啦msyql这玩具玩玩就行了,别去折腾啥高级功能

kacc850
kacc850
为什么只能玩玩呢?
0
乱78招
乱78招
等待回答
返回顶部
顶部