数据库分表策略
时间:2012-9-6 作者:smarteng 分类: 架构
1 垂直划分:
将数据表中的某些字段提出,组成新的数据表。“将群组id,专辑id,音乐id提出”,组成gzm数据表,而将“群组,专辑,音乐的详细信息单独放在其他数据表中”。在求取索引、关系时,操作数据库效率更高。
2 水平划分:
2.1物理上的水平切分:即将数据分配到不同的db服务器上。降低单点机器的负载。
2.2逻辑上的水平划分:将数据分到同一数据库的不同的数据表。多个数据表共同组成了一个完整的数据表,提高数据操作的效率。当一个有5000w行记录的数据表被拆分为10个表,假设每个表均匀的有500w行记录。10个表分表建索引的效率会提升。
2.21取余的方式:将数据均匀分到多个数据表中,数据表的个数固定,对于数据表的扩容困难。同时没有考虑不同机器的负载能力。注意相关度大的数据尽可能分到同一张表。“将同一个群组的所有音乐放到一张数据表中”,即以群组id来取余。
2.22 除的方式:取出数据表中的某个字段,除以某个数(数据表的容量),根据除数分表,利于扩容,但数据分配可能不均匀。“将用户id除以10000,为0则分到数据表0中,以此类推”。
2.23建立映射表的方式:不同规则映射不同数据表。在查询数据库时,先查映射表,再查具体的数据表,效率较低。
2.24按照时间分表:即按照一天、一周、一个月、一年等分表。查询时,数据跨越多张表时,会影响效率。
2.25将取余和除的方式结合:举例(当取余的方式,数据库容量满时,如何扩容)
smarteng
人生就流星,虽然转瞬即逝,但也有永恒。
恰饭
分类
热门文章
- 使用Erlang的OTP框架创建应用
- php 使用curl模拟登录discuz以及模拟发帖
- 腾讯QQ、阿里旺旺、淘宝、MSN在线状态代码生成
- 新浪微博错误代码解析
- erlang程序设计笔记
- 《HTML 5与CSS 3权威指南》权威的HTML5与CSS3实战教程
- dedecms修改数据库密码配置文件
- 服务器优化小记--Etag和Expires
- 在PHP5中使用PHPMailer发送邮件
- PHP中冒号、endif、endwhile、endfor介绍
- PHP框架——ThinkPHP
- QQ登陆成功返回openId后与网站绑定
- Mediawiki的配置和修改方法
- 使用Golang的官方mock工具--gomock、mockgen
- 用yaf-codes-generator 生成代码
最新日志
- MacOs 电脑关闭/打开IPV6
- MySQL中datetime和timestamp的区别
- C++声明结构
- 如何保证数据库和缓存的一致性
- 优雅的golang日期时间处理库go-carbon
- API接口纪要
- 解析 Golang 测试(11)- 模糊测试
- 解析 Golang 测试(10)- 什么是好的单测
- 解析 Golang 测试(9)- 一篇文章搞懂 testify
- 解析 Golang 测试(8)- gomonkey 实战
- 解析 Golang 测试(7)- 如何针对 Redis 进行 Fake 测试
- 解析 Golang 测试(6)- 如何针对 MySQL 进行 Fake 测试
- 解析 Golang 测试(5)- MySQL 经典 mock driver—— sqlmock
- 解析 Golang 测试(4)- 一篇文章教你分清 Mock,Stub,Fake
- 解析 Golang 测试(3)- goconvey 实战
存档
- 2023年11月(1)
- 2023年10月(1)
- 2023年3月(2)
- 2023年2月(1)
- 2022年12月(1)
- 2022年9月(13)
- 2022年8月(5)
- 2022年7月(9)
- 2022年6月(2)
- 2022年5月(2)
- 2022年4月(1)
- 2022年3月(2)
- 2021年12月(1)
- 2021年11月(14)
- 2021年10月(2)
- 2021年9月(111)
- 2015年3月(1)
- 2014年5月(4)
- 2014年4月(18)
- 2014年1月(1)
- 2013年11月(2)
- 2013年7月(1)
- 2013年6月(1)
- 2013年3月(13)
- 2013年2月(3)
- 2013年1月(1)
- 2012年12月(8)
- 2012年11月(8)
- 2012年10月(1)
- 2012年9月(13)
- 2012年8月(4)
- 2012年6月(2)
- 2012年5月(10)
- 2012年4月(13)
- 2012年3月(9)
- 2012年2月(8)
- 2011年11月(1)
- 2011年8月(9)
- 2011年7月(8)
- 2011年6月(8)
- 2011年5月(7)
- 2011年4月(19)
- 2011年3月(15)
- 2011年2月(8)
- 2011年1月(9)
- 2010年12月(2)
- 2010年11月(2)
- 2010年10月(2)
- 2010年9月(8)
- 2010年8月(9)
- 2010年7月(1)
- 2010年6月(9)
- 2010年5月(5)
- 2010年1月(7)
- 2009年12月(21)
- 2009年11月(29)
- 2009年10月(100)
- 2009年8月(1)
- 2009年7月(15)
- 2009年6月(52)
标签
timestamp
datetime
time
awk
技术文章
SEM
营销
赚钱
go-zero
抓包
测试覆盖率
系统
hostname
goquery
mockgen
gomock
validator
urldecode
urlencode
redirect
context
port
pulsar
Consul
epoll
yaml
错误处理
code-review
xlsx
excel
c
读书
阅读
写作
生活
shen
统计
test
Module
mod
效率
无密码
天网
Future
video
computer
tmux
ce
Logrotate
supervisor
command
screen
rsa
java
markdown
测试
水平居中
error
brew
homebrew
http
nodejs
composer
工具
框架
gopath
gomod
golang
go
播放器
服务器
腾讯云
单元测试
爬虫
命令
emlog
replace
模型
PHP升级
阿里云
习惯
group_concat
SQL Server
PHPExcel
面试
单点登录
开源项目
tag
guid
yaf
md5
博客
微博
团队
Geolocation
Mac
客户端
网赚
豆瓣
编程语言
京东