MySQL大表优化方案之升级硬件

升级硬件

Scale up,这个不多说了,根据MySQL是CPU密集型还是I/O密集型,通过提升CPU和内存、使用SSD,都能显著提升MySQL性能

读写分离

也是目前常用的优化,从库读主库写,一般不要采用双主或多主引入很多复杂性,尽量采用文中的其他方案来提高性能。同时目前很多拆分的解决方案同时也兼顾考虑了读写分离

缓存

缓存可以发生在这些层次:

  • MySQL内部:在系统调优参数介绍了相关设置
  • 数据访问层:比如MyBatis针对SQL语句做缓存,而Hibernate可以精确到单个记录,这里缓存的对象主要是持久化对象Persistence Object
  • 应用服务层:这里可以通过编程手段对缓存做到更精准的控制和更多的实现策略,这里缓存的对象是数据传输对象Data Transfer Object
  • Web层:针对web页面做缓存
  • 浏览器客户端:用户端的缓存

可以根据实际情况在一个层次或多个层次结合加入缓存。这里重点介绍下服务层的缓存实现,目前主要有两种方式:

  • 直写式(Write Through):在数据写入数据库后,同时更新缓存,维持数据库与缓存的一致性。这也是当前大多数应用缓存框架如Spring Cache的工作方式。这种实现非常简单,同步好,但效率一般。
  • 回写式(Write Back):当有数据要写入数据库时,只会更新缓存,然后异步批量的将缓存数据同步到数据库上。这种实现比较复杂,需要较多的应用逻辑,同时可能会产生数据库与缓存的不同步,但效率非常高。

表分区

MySQL在5.1版引入的分区是一种简单的水平拆分,用户需要在建表的时候加上分区参数,对应用是透明的无需修改代码

对用户来说,分区表是一个独立的逻辑表,但是底层由多个物理子表组成,实现分区的代码实际上是通过对一组底层表的对象封装,但对SQL层来说是一个完全封装底层的黑盒子。MySQL实现分区的方式也意味着索引也是按照分区的子表定义,没有全局索引

MySQL大表优化方案之升级硬件

用户的SQL语句是需要针对分区表做优化,SQL条件中要带上分区条件的列,从而使查询定位到少量的分区上,否则就会扫描全部分区,可以通过EXPLAIN PARTITIONS来查看某条SQL语句会落在那些分区上,从而进行SQL优化,如下图5条记录落在两个分区上:

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/4601.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚重蔚管理团队
上一篇 2018年3月10日 16:35
下一篇 2018年3月10日 16:44

相关推荐

  • 什么是数据库连接池?

    在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源。这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码,并且要为这个连接分配资源,Java程序则要把代表连接的java.sql.C…

    2023年5月13日
    00
  • 经验分享MySQL下载如何正确处理下载后的文件。

    MySQL是一个流行的开源关系型数据库管理系统,广泛应用于各种规模的企业和项目,下载并安装MySQL后,您需要正确处理下载后的文件以确保其正常运行,以下是关于如何正确处理MySQL下载后的文件的详细技术教学。 (图…

    2024年6月20日
    02
  • 我来教你MySQL1062报错解决之道。

    MySQL报错1062通常是由于唯一约束冲突导致的,解决方法是检查插入或更新的数据中是否有重复的唯一键值,然后修改或删除重复的数据。 MySQL 1062错误通常指的是“Duplicate entry”错误,这个错误发生在你试图在数据库…

    2024年6月26日
    00
  • 云服务器租用怎么安装数据库。

    当您在云服务器上租用数据库服务时,有多种选择。您可以选择MySQL这种开放源代码的关系型数据库管理系统(RDBMS),它使用最常用的数据库管理语言—结构化查询语言(SQL)进行数据库管理。另一种选择是腾讯云数据库M…

    2024年7月18日
    00
  • 经验分享mysql怎么修改表字符集编码。

    您可以使用以下命令来修改MySQL表的字符集编码:,,“,ALTER TABLE 表名 CONVERT TO CHARACTER SET 字符集;,`,,如果您想将表“mytable”的字符集编码更改为utf8mb4,则可以使用以下命令:,,`,ALTER TABL…

    2024年7月9日
    00
  • 访问mysql数据库。

    在计算机技术中,MySQL是一个广泛使用的开源关系型数据库管理系统,它被广泛用于各种应用中,包括网站、网络应用、企业级应用等,为了安全起见,MySQL默认情况下是需要密码才能访问的,有时候我们可能需要在没有密…

    2024年6月20日
    00
  • 我来分享最新版的Percona Server有哪些优点。

    Percona Server是一款开源的、完全免费的MySQL服务器,它由Percona公司开发和维护,Percona Server是MySQL的一个分支,它继承了MySQL的优点,同时也进行了许多改进和优化,使得它在性能、稳定性和安全性等方面都有…

    2024年7月22日
    01
  • 小编分享weblogic优化配置。

    Weblogic优化配置:提高性能、稳定性和安全性,包括调整内存、线程池、JVM参数等。 WebLogic性能优化的方法有很多,以下是一些常见的方法: 1、调整JVM参数:可以通过调整JVM参数来提高WebLogic的性能,可以增加堆…

    2024年7月24日
    00

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息