zoukankan      html  css  js  c++  java
  • 23. MySQL基础之应用优化

    1. 应用优化

    1.1 使用连接池

    对于访问数据库来说,建立连接的代价比较昂贵,因此,可以通过建立“连接池”提高访问的性能。

    连接池:把连接当做对象或者设备,统一放在一个“池子”中,以前需要直接访问数据库的地方,现在都改为从这个“池子”里面获取连接来使用。因为“池子”中的连接都已经预先创建好,可以直接分配给应用使用,因此大大减少了创建新连接所耗费的资源。

    1.2 减少对MySQL的访问

    1.2.1 避免对同一数据做重复检索

    应用中需要理清对数据库的访问逻辑。能够一次连接就能够提取出所有结果的,就不用两次连接,这样可以大大减少对数据库无谓的重复访问。

    编写SQL代码的逻辑问题

    1.2.2 使用查询缓存

    MySQL 的查询缓存(MySQL Query Cache)是在 4.1 版本以后新增的功能,它的作用是存储 SELECT 查询的文本以及相应结果。如果随后收到一个相同的查询,服务器会从查询缓存中重新得到查询结果,而不再需要解析和执行查询。

    查询缓存的适用对象是更新不频繁的表,当表更改(包括表结构和表数据)后,查询缓存值的相关条目被清空。

    1.2.3 增加 CACHE 层

    在应用中,我们可以在应用端加 CACHE 层来达到减轻数据库的负担的目的。CACHE 层有很多种,也有很多种实现的方式,只要能达到降低数据库的负担,又能满足应用就可以,这就需要根据应用的实际情况进行特殊处理。
    比如,可以把部分数据从数据库中抽取出来放到应用端以文本方式存储,然后有查询需求的话,可以直接从这个“CACHE”中检索。或者可以在应用端建立一个二级数据库,将访问高频数据放在二级库上,然后设定一个机制与主数据库进行同步。可以大大降低主数据库的压力。

    1.3 负载均衡

    负载均衡(Load Balance)是实际应用中使用非常普遍的一种优化方法,它的机制就是利用某种均衡算法,将固定的负载量分布到不同的服务器上,以此来减轻单台服务器的负载,达到优化的目的。负载均衡可以用在系统中的各个层面中,从前台的 Web 服务器到中间层的应用服务器,最后到数据层的数据库服务器,都可以使用。

    1.3.1 利用 MySQL 复制分流查询操作

    主从复制:具体的实现是一个主服务器承担更新操作,而多台从服务器承担查询操作,主从之间通过复制实现数据的同步。多台从服务器一方面用来确保可用性,一方面可以创建不同的索引以满足不同查询的需要。

    1.3.2 采用分布式数据库架构

    集群(Cluster)

    分布式的数据库架构适合大数据量、负载高的情况,它具有良好的扩展性和高可用性。

  • 相关阅读:
    PHP数组(数组正则表达式、数组、预定义数组)
    面向对象。OOP三大特征:封装,继承,多态。 这个讲的是【封存】
    uvalive 3938 "Ray, Pass me the dishes!" 线段树 区间合并
    LA4329 Ping pong 树状数组
    HDU 1257 最少拦截系统
    HDU 1260 Tickets
    codeforce 621D
    codeforce 621C Wet Shark and Flowers
    codeforce 621B Wet Shark and Bishops
    codeforce 621A Wet Shark and Odd and Even
  • 原文地址:https://www.cnblogs.com/wubug/p/13520427.html
Copyright © 2011-2022 走看看