可扩展的 MySQL 数据库设计

13

Click here to load reader

description

在 Sun OpenSolaris 用户组(杭州)做的分享。 by Fenng http://www.dbanotes.net

Transcript of 可扩展的 MySQL 数据库设计

Page 1: 可扩展的 MySQL 数据库设计

浅谈可扩展的M SQL数据库设计浅谈可扩展的MySQL数据库设计

冯大辉(Fenng)

Page 2: 可扩展的 MySQL 数据库设计

egosurfg

冯大辉 (西毒)冯大辉 (西毒)[email protected]

ADBABloggerhttp://www.dbanotes.net

Page 3: 可扩展的 MySQL 数据库设计

议程议程

可扩展性可扩展性实践经验其他

Page 4: 可扩展的 MySQL 数据库设计

扩展性扩展性

Scale vs Scalable vs ScalabilityScale vs. Scalable vs. Scalability

Scale Up vs. Scale Out

数据库的高性能与扩展性来自管理和设计

Page 5: 可扩展的 MySQL 数据库设计

建立基准测试建 准测试

IO 文件系统基准测试IO 、文件系统基准测试结合应用特点网络基准测试网络基准测试PV指标/带宽能力C h 基准测试Cache 基准测试命中率/数据一致性A 基准测试App 基准测试模拟用户登录?

Page 6: 可扩展的 MySQL 数据库设计

持久性 Connection持久性

mysql pconnectmysql_pconnect 连接风暴问题

Page 7: 可扩展的 MySQL 数据库设计

选取合适的数据类型选取合适的数据类型

Number / Varchar2Number / Varchar2

联机DDL 问题

Tipeg: ip2long() / long2ip() 存储整数而非字符串eg: ip2long() / long2ip() 存储整数而非字符串

Page 8: 可扩展的 MySQL 数据库设计

非关系型数据的存储选择非关系型数据的存储选择

图片视频存储处理图片视频存储处理

内容处HTML 内容处理

行存储 vs. 列存储

Page 9: 可扩展的 MySQL 数据库设计

分区与 Sharding分 与 g

分区能解决的问题分区能解决的问题

的分 能力MySQL 的分区能力

Sharding 策略

Page 10: 可扩展的 MySQL 数据库设计

反范式反范式

遵守三范式遵守三范式

打破三范式

二者结合

Page 11: 可扩展的 MySQL 数据库设计

抛弃存储过程封装业务逻辑的思路抛弃存储过程封装 务逻辑的思路

Oracle DB 下习惯用的方式Oracle DB 下习惯用的方式

MYSQL 存储过程

业务逻辑 vs. 扩展性

Page 12: 可扩展的 MySQL 数据库设计

合理使用Cache合理使用

Cache 能解决大部分 IO 问题Cache 能解决大部分 IO 问题

13 R/S vs 300 R/s vs 1300R/s13 R/S vs. 300 R/s vs. 1300R/s

Cache 不是万能的Cache 不是万能的

选取合适的架构点引入 C h选取合适的架构点引入 Cache

Page 13: 可扩展的 MySQL 数据库设计

Questions ?

Thank You!Thank You!

http://www dbanotes nethttp://www.dbanotes.net