sql优化--》分区--》分表--》垂直分库--》水平分库--》读写分离

分区

关于分区的博客推荐这个:https://blog.csdn.net/youzhouliu/article/details/52757043

1查看是否支持分区?一般现在的mysql版本都支持。

进入到mysql命令行。mysql -u root -p 

show plugins    //查看是否支持分区,最后会出现一个 partition  这个行 表示支持    
也可以 show variables like '%partition%';

2查看这个数据库所有的表的状态,是否是分区表

show table status 

3查看表具有哪几个分区、分区的方法、分区中数据的记录数等信息

select
partition_name part,
partition_expression expr,
partition_description descr,
table_rows
from information_schema.partitions where
table_schema = schema()
and table_name='test'; select schema() //查看在那个数据库

p0 id 6 1
p1 id 11 0
p2 id 16 1
p3 id MAXVALUE 1

4显示扫描哪些分区,及他们是如何使用的

 explain partitions select语句

5 如何分区

注意:必须创建表是的时候才能创建分区,不能在已有的数据上对表进行分区,如果想在已有的表中创建分区,解决办法是创建一个新的表并设置好分区,然后再进行数据转移。注意;号。

-----------------------------------创建range分区
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT NOT NULL,
store_id INT NOT NULL
)
PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11),
PARTITION p2 VALUES LESS THAN (16),
PARTITION p3 VALUES LESS THAN MAXVALUE
); -----------------------------------创建list分区
CREATE TABLE emp (
  empno VARCHAR (20) NOT NULL,
  empname VARCHAR (20),
  deptno INT,
  birthdate date NOT NULL,
  salary INT
) PARTITION BY list (deptno)(
  PARTITION p1 VALUES IN (10),
  PARTITION p2 VALUES IN (20),
  PARTITION p3 VALUES IN (30)
);
以部门作为分区依据,每个部门做一分区。 -----------------------------------创建HASH分区
CREATE TABLE emp2 (
    empno VARCHAR (20),
    empname VARCHAR (20),
    deptno INT,
    birthdate date ,
    salary INT
) PARTITION BY HASH (deptno) PARTITIONS 3; -----------------------------------创建key分区
CREATE TABLE emp (
  empno VARCHAR (20) NOT NULL,
  empname VARCHAR (20),
  deptno INT,
  birthdate date NOT NULL,
  salary INT
) PARTITION BY KEY (birthdate) PARTITIONS 4;

垂直拆分

将系统中不存在关联关系或者需要join的表可以放在不同的数据库不同的服务器中。

按照业务垂直划分。比如:可以按照业务分为资金、会员、订单三个数据库。

需要解决的问题:跨数据库的事务、join查询等问题。

水平拆分

例如,大部分的站点。数据都是和用户有关,那么可以根据用户,将数据按照用户水平拆分。

按照规则划分,一般水平分库是在垂直分库之后的。比如每天处理的订单数量是海量的,可以按照一定的规则水平划分。需要解决的问题:数据路由、组装。

推荐几篇博客,讲的很不错:

https://www.cnblogs.com/jpfss/p/9176150.html#undefined

https://www.cnblogs.com/bluebluesky/articles/6413255.html

mysql优化问题汇总的更多相关文章

  1. MySQL优化汇总

    1)mysql优化汇总,转载自网络

  2. Mysql 52条SQL语句性能优化策略汇总

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引. 2.应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应 ...

  3. Mysql优化相关总结

    Mysql优化相关总结 2016-05-31 数据库集中营 优化顺序: 选择适当的引擎和表结构和数据类型 建立索引,优化sql. 增加缓存,redis.memcache. 主从.主主,读写分离. my ...

  4. mysql优化:慢查询分析、索引配置优化

    一.优化概述二.查询与索引优化分析a.性能瓶颈定位show命令慢查询日志explain分析查询profiling分析查询b.索引及查询优化三.配置优化 max_connections back_log ...

  5. MySql优化相关概念的理解笔记

    MySQL架构 查询执行流程 查询执行的流程是怎样的: 连接1.1客户端发起一条Query请求,监听客户端的‘连接管理模块’接收请求1.2将请求转发到‘连接进/线程模块’1.3调用‘用户模块’来进行授 ...

  6. mysql 优化(包含sql语句的书写)

    http://blog.chinaunix.net/uid-11640640-id-3426908.html  mysql性能优化-慢查询分析.优化索引和配置 2012-11-30 15:18:42 ...

  7. 42 张图带你撸完 MySQL 优化

    Hey guys,这里是程序员cxuan,欢迎你阅读我最新一期的文章,这篇文章是 MySQL 调优的汇总版,我加了一下日常开发过程中的调优经验,希望对各位小伙伴们有所帮助.下面开始正文. 一般传统互联 ...

  8. MySQL优化篇系列文章(二)——MyISAM表锁与InnoDB锁问题

    我可以和面试官多聊几句吗?只是想... MySQL优化篇系列文章(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. 面试官:咦,小伙子,又来啦 ...

  9. MySQL优化聊两句

    原文地址:http://www.cnblogs.com/verrion/p/mysql_optimised.html MySQL优化聊两句 MySQL不多介绍,今天聊两句该如何优化以及从哪些方面入手, ...

随机推荐

  1. Geekers团队成立日志

    大家好,作为团队的队长,今天在这里非常荣幸能够发表我们团队的第一篇博客,来宣布我们团队的名字:Geekers! Geek,英文中代表“怪人”,随着时代进步Geek被赋予了新的含义——极客!Steve ...

  2. DockerHub使用简介

    常用的Docker镜像文件都有,就不用自己费劲的一点点配置了,这才是Docker的真正目的.就像Ghost里边含office,直接还原,不用一台台机器安装呢,省时省力,与高效工作的理念相契合. 至于, ...

  3. eclipse webproject activiti

    https://stackoverflow.com/questions/42858723/activiti-eclipse-maven-project-to-dynamic-web-project-a ...

  4. Java使用HTTPClient4.3开发的公众平台消息模板的推送功能

    代码引用,参考文章:http://www.cnblogs.com/feiyun126/p/4778556.html,表示感谢! package com.yuanchuangyun.cyb.manage ...

  5. NF5280M4 安装 Win2016 的方法

    1. 前提条件, 硬盘大于2T, 2. 必须使用最新版本的 Win2016 首先 win2016的可用序列号 • Windows Server 数据中心 CB7KF-BWN84-R7R2Y-793K2 ...

  6. TFS2018 连接 K8S集群的方法

    这一块自己没做测试,与平台樊娟娟沟通后,直接从history命令里面找到的相关命令,感谢原作者以及提供帮助的同事网友.如果有问题后续再改. 1. 在服务里面增加endpoint 见图 创建 连接名称随 ...

  7. 什么样的 GitHub 才适合放简历上?

    为什么 GitHub 可以加分? 很多招聘描述上面都会备注 GitHub 是加分项,那么为什么它是加分项呢? 停,如果看到这里你还不知道 GitHub 是什么,可以看一下 Phodal的手记:http ...

  8. hbase中文内容编码转换

    /** * HBASE中文转换 */ @Test public void testHbaseStr() throws Exception { // Hbase UTF8编码 String conten ...

  9. 详细且透彻的分析PCA原理

    前两天面试问到了PCA,感觉讲得不是很透彻,这里再次详细写一下. 首先定义如下变量的含义: X:Rn*m,n个样本m个属性,对于第i个样本xi:R1*m. W:Rm*k,k个正交的单位正交的列向量组成 ...

  10. hdu6165(拓扑排序+tarjan缩点)

    题意:就任意两个点能否到达: 解题思路:首先将图简化,比如假设图里有一个环,那么,这环内两个点肯定是能相互到达的,那么就不用考虑这环内的点了,很简单就想到用tarjan算法将环缩成一个点,然后就是判断 ...