标签:
数据库对象优化
1、优化表的数据类型
2、通过拆分提高表的访问效率--分库分表
3、逆规范化
4、使用中间表提高统计查询速度
5、表维护
1)找到并修复损坏的表
2)更新索引统计信息
3)减少索引和数据的碎片
分库分表
1、分库分表策略演进
1)单库单表:最常见的数据库设计,例如,有一张用户表放在数据库db中,所有用户都可以在db库中的use表中查到
2)单库多表:随着用户数量的增加,user表的数据量越来越大,当数据量达到一定程度的时候对user表的查询会逐渐的变慢,从而影响整个db的性能,如果使用mysql,还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读写操作只能等待。可以通过某种方式将user进行拆表,产生两个表结构完全一样的user_0000、user_0001等表,user_0000+user_0001+...的数据刚好是一份完整的数据。
3)多库多表:随着数据量增加,也行单台db的存储空间不够,随着查询量的增加,单台数据库服务器已经没办法支撑,这时候可以再对数据库进行拆分。
2、分库分表规则
1)按号段分:user_id区分,1~1000的对应db1,1001~2000的对应db2,以此类推
2)hash取模分:对user_id进行hash(或者user_id是数值型的话可以直接使用user_id的值),然后用一个特定的数字,比如应用中需要将一个数据库切分为4个数据库的话,就用4这个数字对user_id的hash值进行取模运算,也就是user_id%4。
3)在认证库中保存数据库配置:就是建立一个db,这个db单独保存user_id到db的映射关系,每次访问数据库的时候都要查询一次这个数据库,以得到具体的db信息,然后才能进行我们需要的查询操作。
标签:
原文地址:http://www.cnblogs.com/yezhaohui/p/4201584.html