MYSQL集群-主从配置 火推17

MYSQL集群-主从配置

《02_CentOS安装mysql数据库文档》
《03_Mysql主从配置文档》
《04_mysql主从知识点》

MYSQL集群-主从配置读写分离

参考工程文件

数据库分库分表、跨库查询

分库:mysql

1:涉及到多数据源能够进行分库
2:项目部署是分布式系统,能够进行分库
3:涉及到大量的数据存储,须要分库

跨库查询:算法

1:必需要配置多数据源
2:在jdbc属性文件中增长多个数据库配置信息,key值保持惟一
3:在建立数据源的bean,须要搭建多个bean组件,id保持惟一
4:在dao层须要查询数据的时候,调用bean对应的templatement就能够了

分表:sql

应用场景:

1:设计到大量的数据存储,而且数据须要查询的时候

如何分表:数据库

1:首先保证分表以后,表结构、索引、引擎、编码字符、视图等一致性
2:表名不能同样

第一种方式:

    按照表容量大小进行分表(能够实现,不建议使用)
    假设表容量最大200M(配置表的触发器)

    tablename1-----199.9M----200.1M---数据丢失
    tablename2-----0.1M-----数据不全、脏数据
    tablename3.....

第二种方式:

    按照时间进行分表(推荐使用)
        建议每月的20-25号左右,提早复制一张表
        写(监听)

    tablename_20171020
    tablename_20171120
    tablename_20171220
    tablename_20180120

    要写动态sql了


第三种,使用算法,判断表名称

    用户ID必须使用的是UUID生成的字符
        UUID对3取模/10,取余数1-6
    那么此时可使用这种方式,不过这种方式最多能够建立6张表
    tablename1
    tablename2
    tablename...6

数据库触发器、监听器、视图、存储过程

参考资料:服务器

https://mp.weixin.qq.com/s?_biz=MzIxMjg4NDU1NA==&mid=2247484060&idx=1&sn=3216af458cef0cae1a82f189a538b3f7&chksm=97be0fb9a0c986af6a28a066341031a46f6161a1cf27e6b8a7a6f7cf49af5faeb55775d8eb9a&scene=21#wechatredirect数据库设计

你是如何对数据库作优化的?

1:数据库设计
    数据库表:字段类型、字段长度、注释、字段命名规范
    数据库索引:外键、关联字段、查询频率比较高的字段、
            若是数据表字段>20,则最多支持16个索引
            若是数据表字段<20,则根据查询频率字段来定
    数据库视图:至关于一张临时表,业务中,尽可能少使用
    数据库引擎:根据业务,选择对应的表引擎技术
    数据库存储过程:尽可能少用
    数据库字符:UTF-八、或者和页面字符保持一致
    数据库监听器/触发器:通常用于调度任务或者备份还原

2:业务调用的sql语句优化
    xml:
    尽可能少关联表,效率最高关联4张表,若是多于4张表,则须要开启两个连接事务,可是这两个事务,必须在一个service当中。
    若是是查询语句,则不建议使用*
    若是是查询语句,where条件后面,最好使用索引字段进行关联

3:数据库服务器的搭建(集群)
    主从配置:
    读写分离:
    自动化(容器):
相关文章
相关标签/搜索