Mysql数据库管理浅谈
2015-06-17 16:50
239 查看
Mysql选型及系统规划
简单一句话,除了数据库一致性要求100%的行业之外(银行的核心结算系统),其他所有行业都适用。Mysql的机器设备选型
机器设备选型,通过业务场景来大概评估。表1:业务场景
需求 | 指标 |
---|---|
响应时间 | 读写请求要求MS级返回 |
数据总量 | 1TB/年 |
每秒请求数量 | 15000/秒 |
数据读写比例 | 2:1 |
重要程度 | 核心订单系统P1级别故障,积分系统P2级别故障 |
备注 | 数据时效性,历史订单查阅较少,一般操作3周以内的数据,数据长度一条大概1KB |
序号 | 指标 | 评估 |
---|---|---|
1 | 1年内产生的数据总量为1TB | 推算:每秒产生的数据量,也就是每秒的数据需求为:1*1024*1024*1024/(365*24*60*60)=34kb/秒 |
2 | 每秒请求数量为15000/秒,读写比例2:1 | 推算:每秒读请求15000*2/3=10000/秒。写请求15000*1/3=5000/秒。 |
3 | 数据记录长度1KB | 根据(1)得出每秒写入34k/秒,数据长度大概为1KB。那么每秒写入34/1=34次。根据(2)得出每秒需写入5000次(update+delete+insert)。那么就得出update+delete=5000-34=4966次。得出mysql读写按照page为单位处理,一页大小为16kb默认(也可以手动设置8k、32k),那么每秒的写请求为5000*16k=80M/秒,读请求为10000*16k=160M/秒 |
4 | 处理20天内的数据 | 那么处理热数据量为(换算1年的总数据大小:1T*1024)/(1年天数:365)*(要求3周以内:20天)=56G |
5 | 操作MS级别返回 | MS级返回,那么要求数据尽量存入内存中,那么根据4可以确定Innodb buffer(MyISAM为key buffer)(Mysql存储引擎缓冲区)大小为56GB,而其他组件如OS,application,network需要大约4G内存,因此需要内存大约60GB,根据(3)的读写速率要求,按照超配原则应用服务器和DB服务器之间的读写带宽分别为,写带宽(WBPS)限制为100M/秒,读带宽(RBPS)200M/秒 |
6 | 重要程度 | 根据业务故障P1来定,通过MM的HA技术 |
8个节点组规模,所有需求参数/8
推算:单组服务器需求。
内存:60G/8 = 8G
写带宽(WBPS):100M/8 = 12.5M/s
读带宽(RBPS):200M/8 = 25M/s
磁盘:1T/8 = 125G
mysql文件系统选择
1. 顺序读写为主
- binlog 日志 写操作
- error 日志 运行状态错误信息
- slow 日志 慢查询日志
- tmp 日志 临时日志,当两个表进行关联产生临时表时存放的日志
- 事务日志
- Double write日志 双写日志放在ibdata文件
- mysql应用程序目录
2. 实际应用,尽量将以下四块放到不同的磁盘上面,减少io操作冲突。
- binlog、error、slow日志一般存放在/log目录下
- tmp 日志存放在/tmp目录
- 数据目录 /data目录
- 软件目录 /usr/local/mysql目录
mysql安装部署
参考:/article/1563981.htmlmysql压力测试
参考:http://blog.csdn.net/johnstrive/article/details/46610541#t16未完待续
相关文章推荐
- mybatis返回插入的主键id值(mysql数据库)
- mysql unrecognized service问题解决
- 【整理】MySQL引擎
- Mysql 关于 order by limit 的一个问题
- 重做日志缓冲中的内容何时刷新到重做日志文件中
- node.js操作mysql 回调返回值
- 数据库及mysql
- select for update与update的一些理解
- mysql安装部署
- MYSQL5.1安装阿里云
- mysql max_allowed_packet 查询和修改
- MySQL 分区
- Red Hat 安装MySQL
- 低配ecs安装Mysql5.6出现问题
- mysql中 insert …select …带来的死锁问题
- 【MySQL】优化参考
- mysql 中 cast跟convert的用法如下
- Spark学习之17:Spark访问MySQL
- mysql中GROUP BY结合GROUP_CONCAT的使用
- 去掉mysql重复的索引