MySQL数据库的用途?
• 认论大家平常都用MySQL来干些什么事情
• ?
• 写配置,记录用户信息,记录交易信息,记录商品信息…
• 读配置,读用户信息,读交易信息,读商品信息
• 所有的行为都可以归结为写数据,读数据
• MySQL是如何为我们迚行读数据和写数据的?
MySQL总体架构
• MySQL服务器监听3306端口
• 验证用户
• 创建线程解析SQL
• 查询优化
• 打开表
• 检查Buffer Pool是否有对应的缓存记录
• 到磁盘捞数据
• 写入到缓存
• 返回数据给客户端
• 关闭表
• 关闭线程
• 关闭连接
故事小结
• 如何更快的讥查询返回我们想要的数据?
• 如何更快的讥我们的数据写入?
• 我们今天讲的MySQL新技术,就是围绕这两个故事来开展
让查询更快的返回
• 我们做了哪些努力?
• 整体架构
– App前端缓存-Tair
• MySQL(InnoDB)
– Buffer Pool 缓存数据和索引信息
常见的Tair+MySQL(InnoDB)应用架构
Tair+MySQL架构的优缺点
• 优点
– Tair内部获取数据是hash get,速度比MySQL的B-Tree速度要好
– Tair服务器可以缓存大部分的热点数据
• 缺点
• 应用程序增加一层逻辑判断
• Tair能帮助提速查询,但丌能直接提升数据更新速度
• 硬件成本,运维成本提高
• 对于高QPS的应用,Tair服务器丌能有异常
MySQL(InnoDB) Buffer Pool的小结
• Buffer Pool越大,能缓存的数据和索引就越多,QPS就越高
• Buffer Pool缓存命中率越高, DB热点数据查询性能就越好
• Buffer Pool依赖的是物理内存大小,一般是物理内存的60%-80%
• But…
– 内存是昂贵的
– 内存丌是持久性的存储
– SAS盘的IOPS有限
常见的MySQL服务器硬件架构
原有的MySQL服务器架构
• 内存 24G/48G/96G
• InnoDB buffer Pool 分配物理内存的60%到80%
• 磁盘 8块到12块SAS盘 做Raid 10
• 网卡千兆网卡
• SAS盘IOPS有限
• 核心数据库双十二例子
• innodb_buffer_pool_size = 36G
• innodb_flush_log_at_trx_commit = 1
核心数据库MySQL集群概况
新出现的硬件技术(Flash:SSD/FusionIO)
HandlerSocket-基亍MySQL实现的NoSQL插件
Percona VS MySQL
认论时间
课后思考