MySQL优化(3):SELECT 语句优化概述

数据库应用程序的核心逻辑是通过 SQL 语句执行的,无论是通过解释器直接发出的,还是通过API在后台提交的。

查询以 SELECT 语句的形式执行数据库中的所有查找操作。调整这些语句是重中之重,无论是实现动态网页的次秒响应时间,还是缩短生成大量夜间报告的时间。

阅读更多

MySQL优化(2):索引失效与强制索引使用

在项目中需要做个报表统计,需要做多表联查,同一个 SQL 语句 Where 字段相同,但条件值不同,索引使用情况仅然不同,还存在索引失效的情况,使用强制索引与是否一起使用分页对查询效率的影响还存在关联影响。

于是做了如下分析。

阅读更多

MySQL优化(1):MySQL 优化概述

MySQL优化篇系列介绍 MySQL 性能的优化并提供示例。优化涉及在多个级别上配置、调优和测量性能。

根据个人所在的工作角色(开发人员、DBA 或两者的组合),可以在单个 SQL 语句、整个应用程序、单个数据库服务器或多个联网数据库服务器的级别进行优化。

有时,可以主动并提前计划性能,而有时可能会在出现问题后对配置或代码问题进行故障排除。

优化 CPU 和内存使用还可以提高可扩展性,允许数据库处理更多负载而不会减慢速度。

阅读更多

设计模式:中介者模式(Mediator)

中介者模式是把多对象之间存在复杂的网状结构的交互关系,改为 星形结构,这样大大降低对之间的的耦合,所有对象只通过 中介者 与目标对象联系。

中介者例子:人才交流中心,房产中介,WTO(世界贸易组织), MVC框架中的 C(控制器)就是 M(模型)和 V(视图)的中介者。

阅读更多

设计模式:桥接模式(Bridge)

桥接模式:将抽象与实现分离,使它们可以独立变化。它是用组合关系替代继承关系,而从降低了抽象实现这两个可变维度的耦合度。

桥接模式不是一个使用频率很高的模式,但是熟悉这个模式对于理解面向对象的设计原则,包括 开-闭原则(OCP) 以及 **组个/聚合原则(CARP)**都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。

阅读更多

设计模式:外观模式(Facade)

当一个系统功能越来越强,子系统越来越多时,客户对系统的访问会随之变得越来越复杂。

特别是当前微服务架构的流行,子系统数量快速膨胀,这时要完成一笔业务,需要跨越多个子系统;如果子系统内部发生改变,客户端也要跟着改变,这违背了 开闭原则,也违背了迪米特法则

所以就有必要是为多个子系统提供一个统一的门面(外观对象),客户端只与 门面 通信,通过 门面 来隐藏系统的复杂性,降低耦合度,这就是外观模式的作用。

阅读更多