《02_CentOS安装mysql数据库文档》 《03_Mysql主从配置文档》 《04_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
参考资料:服务器
1:数据库设计 数据库表:字段类型、字段长度、注释、字段命名规范 数据库索引:外键、关联字段、查询频率比较高的字段、 若是数据表字段>20,则最多支持16个索引 若是数据表字段<20,则根据查询频率字段来定 数据库视图:至关于一张临时表,业务中,尽可能少使用 数据库引擎:根据业务,选择对应的表引擎技术 数据库存储过程:尽可能少用 数据库字符:UTF-八、或者和页面字符保持一致 数据库监听器/触发器:通常用于调度任务或者备份还原 2:业务调用的sql语句优化 xml: 尽可能少关联表,效率最高关联4张表,若是多于4张表,则须要开启两个连接事务,可是这两个事务,必须在一个service当中。 若是是查询语句,则不建议使用* 若是是查询语句,where条件后面,最好使用索引字段进行关联 3:数据库服务器的搭建(集群) 主从配置: 读写分离: 自动化(容器):