优化MySQL,仍是运用缓存?ITeye - 乐橙lc8

优化MySQL,仍是运用缓存?ITeye

2019-01-10 15:36:44 | 作者: 天薇 | 标签: 缓存,优化,运用 | 浏览: 503

今日我想对一个Greenfield项目上能够选用的各种功能优化战略作个比照。换言之,该项目没有之前决议计划强加给它的各种束缚约束,也还没有被优化过。

具体来说,我想比较的两种优化战略是优化和缓存。提早指出,这些优化是正交的,仅有让你挑选其间一者而不是另一者的原因是他们都耗费了资源,即开发时刻。

优化MySQL

优化MySQL时,一般会先检查发送给mysql的查询句子,然后运转explain指令。稍加检查后很常见的做法是添加索引或许对方式做一些调整。

长处

1、一个经过优化的查询关于一切运用运用的用户来说都是快速的。由于索引经过对数杂乱度的速度来检索数据(又名分制,正如你查找一个电话簿相同,逐渐缩小查找规模),并且跟着数据量的递加也能保持杰出的功能。对一个未经索引化的查询的成果做缓存跟着数据的添加有时候则或许会体现得更差。跟着数据的添加,那些未射中缓存的用户或许会得到很糟糕的体会,这样的运用是不可用的。

2、优化MySQL不需求忧虑缓存失效或许缓存数据过期的问题。

3、优化MySQL能够简化技能架构,在开发环境下仿制和作业会愈加简单。

缺陷

1、有一些查询不能光经过索引得到功能上的改进,或许还需求改动方式,在某些状况下这关于一些运用或许会很费事。

2、有些方式的更改或许用于反规范化(数据备份)。虽然关于DBA来说,这是一项常用的技能,它需求一切权以保证一切的当地都是由运用程序更新,或需求装置触发器来保证这种改变。

3、一些优化手法或许是MySQL所特有的。也就是说,假如底层软件被移植到多个上作业,那么很难保证除了添加索引外一些更杂乱的优化技能能够通用。

运用缓存

这种优化需求人来剖析运用的实际状况,然后将处理价值贵重的部分从MySQL中剥离出来用第三方缓存代替,比方d或。

长处

1、缓存关于一些MySql本身很难优化的查询来说会作业地很好,比方大规模的聚合或许分组的查询。

2、缓存关于进步体系的吞吐率来说或许是个不错的计划。比方关于多人一起拜访运用时响应速度很慢的状况。

3、缓存或许更简单构建在另一个运用之上。比方:你的运用或许是另一个用MySQL存储数据的软件包的前端,而要对这个软件包做任何数据库方面的改动都十分难。

缺陷

1、假如数据对外供给多种存取范式(例如,在不同的页面上用不同的方式展现),那么让缓存过期或许更新或许会很难,一起/或许或许需求忍受已过期的数据。一个可行的代替计划是规划一套愈加精密的缓存机制,当然它也有缺陷,即屡次获取缓存会添加时延。

2、缓存一个发生价值贵重的目标关于那些未射中缓存的用户(见优化MySQL的优势#1)而言或许会发生潜在的功能差异。一些好的功能实践标明你应该尽量缩小用户之间的差异性,而不仅仅是均匀化(缓存倾向于这么做)。

3、天真的缓存完成无力应对一些奇妙的缝隙,比方雪崩效应。就在上星期我协助了一个人,他的数据库服务器被多个企图一起再生相同缓存内容的用户恳求冲垮。正确的战略是引进一定级其他锁来将缓存再生的恳求序列化。

原文链接:
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表乐橙lc8立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章