高性能MySQL–可扩展的MySQL

容量是一个和可扩展性相关的概念。系统容量表示在一定的时间内能够完成的工作量,但容量必须是可以有效利用的。系统的最大吞吐量并不等同与容量。大多数基准测试能够衡量一个系统的最大吞吐量,但真实的系统一般不会使用到极限。如果达到最大吞吐量,则性能会下降,并且响应时间会变得不可接受地大且非常不稳定。 向上扩展(有时候也称为垂直扩展)意味着购买更多性能强悍的....
  •   
  • 3180
  • MySQL
  • 0
  • super_dodo
  • 2017/03/03

高性能MySQL–主从复制

MySQL内建的复制功能是构建基于MySQL的大规模、高性能应用的基础,这类应用使用所谓的“水平扩展”的架构。我们可以通过为服务器配置一个或多个备库的方式来进行数据的同步。复制功能不仅有利于构建高性能的应用,同事也是高可用、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。 复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步....
  •   
  • 3401
  • MySQL
  • 0
  • super_dodo
  • 2017/03/03

高性能MySQL–操作系统和硬件优化

许多不同的硬件都可以影响MySQL的性能,但我们认为最常见的两个瓶颈是CPU和I/O资源。当数据可以放在内存中或者可以从磁盘中以足够快的速度读取时,CPU可能出现瓶颈。另一方I/O瓶颈一般发生在工作所需的数据远远超过有效内存容量的时候。如果有大量的查询和低延迟的要求,瓶颈可能转移到网络上,而不再是磁盘IO。 调优服务器可能有如下两个目标:低延时(快速响应),高吞吐。 ....
  •   
  • 4196
  • MySQL
  • 0
  • super_dodo
  • 2017/03/03

高性能MySQL–优化服务器设置

如果大部分都是InnoDB表,InnoDB缓冲池或许比其他任何东西更需要内存。InnoDB缓冲池并不仅仅缓存索引:它还会缓存行的数据、自适应哈希索引、插入缓冲(Insert Buffer)、锁,以及其他内部数据结构。InnoDB还使用缓冲池来帮助延迟写入,这样就能合并多个写入操作,然后一起顺序地写回。总之InnoDB严重的一来缓冲池,你必须确认为它分配了足够的内存。 随机IO比顺利IO要昂贵得....
  •   
  • 3160
  • MySQL
  • 31
  • super_dodo
  • 2017/03/03

高性能MySQL–MySQL高级特性

分区表是一个独立的逻辑表,是底层多个物理字表组成。有以下的优点和用途场景。1.表非常大以至于无法全部都放在内存中,或者只在表的最后部分有热点数据,其他均是历史数据。分区表的数据更容易维护。分区表的数据可以分布在不同的物理设备上,从而高效的利用多个硬件设备。 分区表本身也有一些限制:1.一个表最多只能有1024个分区。2.如果分区字段中有主键或者唯一索引的....
  •   
  • 2853
  • MySQL
  • 0
  • super_dodo
  • 2017/03/03

高性能MySQL–查询性能优化

在尝试编写快速的查询之前,需要清楚一点,真正重要的是响应时间。如果把查询看做是一个任务,那么它由一些列子任务组成,每个子任务都会消耗一定的时间。响应时间是两个部分之和:服务时间和排队时间。服务时间是指数据库处理这个查询真正花了多长时间。 在EXPLAIN语句中的type列反应了访问类型。访问类型有很多种,从全表扫描、索引扫描、范围扫描、唯一索引查询、常数引....
  •   
  • 3043
  • MySQL
  • 31
  • super_dodo
  • 2017/03/03

高性能MySQL–创建高性能的索引

索引优化应该是对查询性能优化最有效的手段了。缩影能够轻易将查询性能提高几个数量级。 MySQL中当人们谈论索引的时候,多半说的是B-Tree索引,大多数的MySQL引擎都支持这种索引。B-Tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。B-Tree索引能够加快访问数据的速度,因为存储引擎不再需要进行全表扫描来获取需要的数据,取而代之的是从索引的....
  •   
  • 3163
  • MySQL
  • 35
  • super_dodo
  • 2017/03/03

高性能MySQL–Schema与数据类型优化

MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。选择优化的数据类型原则:1.更小的通常更好.2简单就好。3.尽量避免Null值. 整数类型:TINTINT,SMALLINT,MEDIUMINT,INT,BIGINT分别使用8,16,24,32,64位存储空间。它们可以存储的值的范围从-2的(N-1)次方到2的(N-1)次方-1之间。整数类型有可选的UNSIGNED属性,表示不允许负值,这大致可以使整数的上限提....
  •   
  • 3465
  • MySQL
  • 34
  • super_dodo
  • 2017/03/03

高性能MySQL–服务器性能剖析

性能剖析一般有两个步骤:测量任务所花费的时间;然后对结果进行统计和排序,将重要的任务排到前面。无法测量就无法有效的优化。完成一项任务所需要的时候可以分为两部分:执行时间和等待时间。 当一个资源变得效率低下时,应该了解一下为什么会这样。有如下可能的原因:资源被过度使用,余量已经不足以正常工作。资源没有被正确配置。资源已经损坏或者失灵。 我们认为定义....
  •   
  • 3062
  • MySQL
  • 0
  • super_dodo
  • 2017/03/03

高性能MySQL–MySQL基准测试

基准测试(benchmark)是针对系统设计的一种压力测试。基准测试有两种主要的策略:一种是针对整个系统的整体测试,另外是单独测试MySQL。这两种策略也被称为集成式(full-stack)以及单组件式(single-component)基准测试. 基准测试的主要指标有:吞吐量,响应时间或者延迟,并发性,可扩展性。 基准测试的集成式测试工具有:ab(是一个apache HTTP服务器基准测试工具,它可以测试....
  •   
  • 3571
  • MySQL
  • 0
  • super_dodo
  • 2017/03/03