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

相关推荐

  • 聊聊虚拟主机怎么重装数据库。

    虚拟主机重装数据库通常需要通过控制面板或服务商提供的管理工具进行。首先登录到控制面板,找到数据库管理或相关服务选项,选择需要重装的数据库类型(如MySQL、PostgreSQL等),然后按照提示进行卸载和安装操作。…

    2024年6月28日
    00
  • 高性能mysql实战。

    高性能MySQL实战是一本介绍如何优化MySQL性能的书籍,其中包括了MySQL的体系架构与存储引擎、事务与锁的机制、库表设计和索引设计的一些思路、架构设计和查询优化等内容。如果您需要更详细的信息,可以参考以下链接…

    2024年7月13日
    00
  • 今日分享WordPress优化:提升网站速度和用户体验。

    提升网站速度和用户体验是WordPress网站优化的重要目标,一个加载迅速且易于导航的网站可以显著提高用户满意度,减少跳出率,并有利于搜索引擎优化(SEO),以下是一些关键的WordPress优化策略: 1. 选择性能优秀的…

    2024年7月12日
    00
  • 我来教你jdbc加载数据库驱动程序的方法有哪些。

    JDBC加载数据库驱动程序的方法主要有以下几种:需要在Java项目中导入JDBC相关的库文件,一般是将JDBC驱动程序的jar包添加到项目的类路径中。可以使用Class.forName()方法来加载数据库驱动程序,如MySQL的驱动程序是…

    2024年7月28日
    02
  • 我来分享香港服务器空间租用如何维护。

    香港服务器空间租用维护需要注意以下几点: ,- 选择合适的机房和服务商,确保机房设备完善、售后服务好。,- 定期备份数据,防止数据丢失。,- 监控服务器性能,及时发现潜在问题并采取相应措施。,- 定期清理服务…

    2024年7月10日
    00
  • PHP与数据库安全性的集成。

    随着网络技术的不断进步,数据库已经成为了各种网站和应用程序的核心之一。为了确保数据库中的数据得到充分保护,开发人员必须确保他们的应用程序和数据库系统之间的集成是安全的。PHP是一种常用的编程语言,也是许…

    2023年5月21日
    00
  • 关于自建服务器可以用来干什么。

    自建服务器可以用来干什么 随着互联网的普及和发展,越来越多的企业和个人开始关注到服务器的重要性,服务器作为网络的核心设备,承担着存储、处理和传输数据的重要任务,自建服务器可以用来干什么呢?本文将从以下…

    2024年7月6日
    00
  • 教你甲骨文免费vps。

    【甲骨文免费vps】,这是一个非常有趣的话题,在这篇文章中,我将为您介绍什么是甲骨文免费VPS以及如何使用它。 什么是甲骨文?甲骨文是中国古代的一种文字,用于商代晚期至西周早期的卜辞、铭文等记录,它是中国历…

    2024年6月19日
    00

联系我们

QQ:951076433

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