分享专家——田杰,专注在关系型数据库和NoSQL数据库技术领域,曾先后就职于路透社和渣打银行,目前在阿里云从事数据库技术支持工作,号称“数据库问题的终结者”。
RDS for MySQL 数据库优化【Tech Insight演讲实录】

田杰上台后首先问了一个问题,优化的目的是什么?他提出一个观点:“优化的目的是少做或者不做”。从分析RDS for MySQL 性能优化中常常遇见的性能问题入手,开始了今天的分享。
RDS for MySQL 数据库优化【Tech Insight演讲实录】
从这些问题入手,田杰分四个部分展开了此次在Tech Insight的分享。SQL数据库和人交流的语言,数据库用的好不好,很大程度上取决去人如何编写SQL,数据库如何处理SQL。
RDS for MySQL 数据库优化【Tech Insight演讲实录】

一、架构环境

举个例子来说,一个人如果工作太多做不过来,首先会想到招一个小弟来帮忙。只读实例,就相当于给我们的主实例招来的“小弟”。把读请求放在只读实例上,主实例只用来放写请求。买完只读实例之后,会有一个备实例,这个备实例在后台,你看不见,当主实例crash的时候顶上。
当业务拓展到全国,通过DTS同步,北京和上海就可以互为备灾了。
RDS for MySQL 数据库优化【Tech Insight演讲实录】
讨论完了实例外的架构,我们来看看实例内的架构:防波堤,把请求进行排队,避免打瘫。结果缓存实际上是一种内部的key value的产品,这个组建的实用有非常严格的限制。Optimizer是一个优化器,数据库好不好,优化器占据1/3的作用。Optimizer是根据Storage Engines来生成执行计划的
RDS for MySQL 数据库优化【Tech Insight演讲实录】

二、表和索引

有的用户在建数据库的时候不建主键,这是一个不太好的现象。因为可能会被自动设主键,而这可能并不是您想要的。
RDS for MySQL 数据库优化【Tech Insight演讲实录】
我们定量地来看一下索引怎么用,怎么算出索引的成本是多少:
RDS for MySQL 数据库优化【Tech Insight演讲实录】
还是同一张表,我们通过在查询字段上建索引,我们看看成本有什么变化——带来了数百倍效率的提升。对于经常用的查询,要建立一个覆盖性的索引表。
RDS for MySQL 数据库优化【Tech Insight演讲实录】
RDS for MySQL 数据库优化【Tech Insight演讲实录】
RDS for MySQL 数据库优化【Tech Insight演讲实录】

三、SQL优化

RDS for MySQL 数据库优化【Tech Insight演讲实录】
接下来,让我们通过一个例子看一下
RDS for MySQL 数据库优化【Tech Insight演讲实录】
RDS for MySQL 数据库优化【Tech Insight演讲实录】
RDS for MySQL 数据库优化【Tech Insight演讲实录】

四、参数优化

最后分享几个“保命”的参数:
RDS for MySQL 数据库优化【Tech Insight演讲实录】
RDS for MySQL 数据库优化【Tech Insight演讲实录】
RDS for MySQL 数据库优化【Tech Insight演讲实录】

小结

RDS for MySQL 数据库优化【Tech Insight演讲实录】
如对RDS for MySQL数据库优化有问题,欢迎留言交流!

相关文章:

  • 2021-12-22
  • 2021-11-19
  • 2021-11-03
  • 2021-05-02
  • 2021-05-23
  • 2022-01-02
猜你喜欢
  • 2021-10-28
  • 2021-09-21
  • 2021-07-02
  • 2021-12-18
  • 2021-07-08
  • 2022-02-27
  • 2022-12-23
相关资源
相似解决方案