MySQL常用分库分表方案汇总

MySQL常用分库分表方案汇总

什么是分库分表

随着数据量的不断增长,单数据库可能不能满足我们的需求。分库分表即将数据划分到多台机器上存储,其中分库是将数据分布到不同的数据库实例中,分表是将数据分布到相同的数据库实例中的不同表中。

常用分库分表方案

  1. 垂直分库:按照业务模块或数据类型进行拆分,将不同类型的数据分布到不同的数据库上

  2. 水平分库:将同一张表中的数据按照某种方式拆分,将其分布到不同的数据库上

  3. 水平分表:将同一个库中的较大表按照某种规则分成多份存储在不同的表中,比如按照ID值范围、时间分区等方式

  4. 分库分表综合方案:结合以上三种方案,可达到更好的效果。

方案应用场景

  1. MyISAM存储引擎:MyISAM表锁限制导致高并发下的性能问题。此时可以考虑水平分表,把表按照ID范围等进行拆分,提高并发量。

  2. 基于ID的访问:当系统涉及ID查询时,可以考虑水平分表。通过对ID取模分表的方式,将同一张表的数据存储到不同的子表中,减少单表数据量。

实例说明

  1. 垂直分库实例

假设某电商网站既有普通商品又有虚拟商品,为了保证数据的安全性,可以进行垂直分库。将普通商品的数据放入一个库,将虚拟商品的数据放入另一个库,这样即使其中一个库出现问题,也不会影响到另一个库的正常运行。

  1. 水平分表实例

假设某电商网站的订单表一年有百万级别的订单数据,如果不进行水平分表,查询时将会非常缓慢。此时可以按照日期范围进行水平分表,将一年的订单数据分为12份,每个月的订单数据存储在不同的表中,查询时只需要查询对应的表即可,大大提高了查询效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL常用分库分表方案汇总 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • MySQL 8.0 对 limit 的优化技巧

    MySQL 8.0 对 limit 的优化技巧主要包括两方面内容:使用优化器新特性和合理选择limit参数。 优化器新特性 MySQL 8.0 引入了新的优化器特性“Cost Model”,会动态计算执行单元的成本,从而有效地提高查询速度,对 limit 的优化也得到了加强。在使用 limit 时,可以通过设置 MYSQL_OPTIMIZE_LIMIT_OF…

    MySQL 2023年5月19日
    00
  • Semi-Join Subquery优化策略

    Semi-Join Subquery优化策略 Semi-Join Subquery(半连接子查询):对应IN或EXISTS子查询,仅需要检查”外表记录”在”子查询结果集”中是否存在匹配记录,不需要计算”子查询结果集”中记录匹配次数,也不需要返回”子查询结果集”中匹配记录内容 在MariaDB(MySQL)中,常用优化Semi-Join(半连接)的策略有: F…

    MySQL 2023年5月6日
    00
  • MySQL创建用户

    MySQL是一种常用的关系型数据库管理系统,它支持多用户多任务的操作,因此我们需要在MySQL中为每个用户分配不同的权限。 在MySQL中创建用户有两种方式:使用GRANT语句和使用CREATE USER语句。下面我们分别介绍这两种创建用户的方式。 使用GRANT语句创建用户 GRANT语句可以授权给MySQL数据库中的用户不同的权限。下面是通过GRANT语…

    MySQL 2023年3月10日
    00
  • mysql关键字

    在今儿hibernate执行save方法的时候显示sql语法错误 Sql代码   You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near    数据…

    MySQL 2023年4月16日
    00
  • MySQL执行计划的深入分析

    MySQL执行计划是优化查询性能的重要手段,分析执行计划可以帮助我们找出查询的瓶颈并进行优化。本文将从开启执行计划、解读执行计划、分析执行计划性能优化角度,为大家详细讲解MySQL执行计划的深入分析攻略。 开启执行计划 MySQL提供了多种方式来开启执行计划,比如在执行语句时使用EXPLAIN或DESCRIBE等命令以及使用MySQL自带的show prof…

    MySQL 2023年5月19日
    00
  • mysql安全启动脚本mysqld_safe详细介绍

    MySQL安全启动脚本mysqld_safe详细介绍 简介 mysqld_safe是MySQL官方提供的安全启动脚本,用于启动MySQL在运行过程中的监控和异常处理。这个脚本可以让MySQL启动后自动进行PID文件检测,防止多次启动导致数据文件的损坏。 使用方法 mysqld_safe可以直接在终端中使用,并通过参数进行不同的配置,例如: $ mysqld_…

    MySQL 2023年5月18日
    00
  • centos 6.5下 mysql-community-server. 5.7.18-1.el6安装

    下面是“CentOS 6.5下MySQL-Community-Server 5.7.18-1.el6安装”的完整攻略。 1. 安装依赖环境 在安装MySQL-Community-Server之前,需要安装一些必要的依赖库文件,可以使用以下命令进行安装: yum install -y wget yum install -y perl-Data-Dumper y…

    MySQL 2023年5月18日
    00
  • c++连接mysql5.6的出错问题总结

    那我来为大家介绍如何解决“c++连接mysql5.6的出错问题总结”的完整攻略。 问题描述 在使用c++连接mysql 5.6的时候,有时会遇到一些常见的问题,如: mysql_library_init() 函数报错 mysql_init() 函数报错 执行mysql_real_connect() 函数报错 这些错误可能会导致连接mysql失败,影响程序的运…

    MySQL 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部