mysql值域_Mysql配置(4)

本文详细介绍了MySQL的分库分表策略,包括水平与垂直分库、分表,以及分区的概念和使用。同时,讨论了分库分表带来的问题及其解决方案,如跨库JOIN、事务处理等。此外,还阐述了MySQL主从配置的步骤和相关配置选项,实现读写分离。
摘要由CSDN通过智能技术生成

1.mysql分库分表

1).分库

A.水平分库(冷热数据拆分)

B.垂直分库(模块化 业务碎片化)

2).分表

A.水平分表(套表)

a).ID值域划分

b).ID取模划分

B.垂直分表(大表拆小表)

3).分区

A.概念 -【并非拆表,而是将数据均匀分布在硬盘】

B.解决问题 -【提高查询效率】

C.使用(PARTITION)

CREATE TABLE sales (

id INT AUTO_INCREMENT,

amount DOUBLE NOT NULL,

order_day DATETIME NOT NULL,

PRIMARY KEY(id, order_day)

) ENGINE=Innodb

PARTITION BY RANGE(YEAR(order_day)) (

PARTITION p_2010 VALUES LESS THAN (2010),

PARTITION p_2011 VALUES LESS THAN (2011),

PARTITION p_2012 VALUES LESS THAN (2012),

PARTITION p_catchall VALUES LESS THAN MAXVALUE);

D.水平与垂直

a).水平-【range范围 hash哈希 key键值 list预定义列表 composite 复合模式】

b).垂直-【按列分】

4).分片

A.概念-【数据分片一般都是使用Key或Key的哈希值来计算Key的分布】

B.目的-【均匀分布/负载均衡/扩容迁移尽可能少】

C.使用

a).划分号段

b).取模

c).检索表

d).一致性哈希

5).分库分表问题

A.跨库join

a).冗余字段

b).全局表

c).代码层面数据组装

B.跨库事务

a).分布式事务【XA协议(消息事务-数据库事务) 两阶段提交 】

b).最终一致性【事务补偿】

6).分库分表中间件

2.mysql主从(读写分离)

1).过程

A.主将更改操作记录记录到binlog【log dump线程】

B.从将主binlog事件(sql)同步到本机上并记录在relaylog(中继日志)【I/O线程、SQL线程】

C.从根据relaylog的sql按顺序执行

2).配置

A.主服务配置(conf配置a)和b))【binlog-do-db |binlog_ignore_db】

a).log-bin=mysql-bin //开启二进制日志

b).server-id=1 //设置server-id

c).创建一个用于slave和master通信的用户账号【REPLICATION SLAVE ON】

d).SHOW MASTER STATUS; //获得master二进制日志文件名及位置

B.从服务配置

a).server-id=2 //设置server-id,必须唯一

b).CHANGE MASTER TO

-> MASTER_HOST='host',

-> MASTER_USER='user',

-> MASTER_PASSWORD='pwd',

-> MASTER_LOG_FILE='binlogName',

-> MASTER_LOG_POS=xxx; //使用master分配的用户账号读取master二进制日志

c).start slave //启用slave服务【start、stop】

d).SHOW SLAVE STATUS\G //查看slave状态【Slave_IO_Running、Slave_SQL_Running】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值