数据库的优化
1.参数优化
2.缓存、索引
3.读写分离
4.分库分表
怎么分库操作?
垂直拆分 分库/分表
垂直分库按照业务模块把不同数据放到不同数据中。( 垂直切分是程序员切分)
垂直分表 大表拆成小表,比如:用户基本息、 通讯信息、详情信息
水平拆分 分库/分表
将一张大表按照一定切分规则,切分到不同的表或者库中。
范围式拆分(数据范围 :取模、hash、时间)
插件:TDDL、Cobar、Mycat 、sharding-jdbc等进行切
Sharding 垂直和水平切分
怎么实现?
数据源选择的解决方案层次:
DAO:AbstractRoutingDataSource
ORM:MyBatis 插件
JDBC:Sharding-JDBC 工作在客户端的分库分表
Proxy:Mycat、Sharding-Proxy
Server:特定数据库或者版本
链接:https://www.jianshu.com/p/9a346a7bc20d
实体类划分
bo
business object:业务对象
dto
data transfer object:数据传输对象。
表里面有十几个字段:id,name,sex…
页面只需要展示其中的四个字段,并不是全量展示,而是仅展示需要展示的数据。
dto由此产生,一是能提高数据传输的速度(减少了传输字段),二能隐藏后端表结构。
PO
persistent object
持久对象,可以用来对照数据库中的一条记录
vo
value object :值对象
通常用于业务层之间的数据传递,由new创建,由GC回收。
pojo
plain ordinary java object:简单无规则java对象
纯的传统意义的java对象,最基本的Java Bean只有属性加上属性的get和set方法。
可以转化为PO、DTO、VO;比如POJO在传输过程中就是DTO。
Entity
这个最容易理解,其特点是:数据表对应到实体类的映射