MySQL 分库分表与分区的区别和思考 一.分分合合1.1 分2.2 合二.分区2.1 实现方式2.2 内部文件2.3 数据处理三.分库分表3.1 实现3.2 分布式数据库中间件3.3 内部文件3.4 问题四.总结《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解析 —— 精品合集》《Spring MVC 实现原理与源码解析 —— 精品合集》《Spring Boot 实现原理与源码解析 —— 精品合集》《数据库实体设计合集》《Java 面试题 —— 精品合集》《Java 学习指南 —— 精品合集》 一.分分合合 说过很多次,不要拘泥于某一个技术的一点,技术是相通的。重要的是编程思想,思想是最重要的。当数据量大的时候,需要具有分的思想去细化粒度。当数据量太碎片的时候,需要具有合的思想来粗化粒度。 1.1 分 很多技术都运用了分的编程思想,这里来举几个例子,这些都是分的思想 集中式服务发展到分布式服务 从Collections.synchronizedMap(x)到1.7ConcurrentHashMap再到1.8ConcurrentHashMap,细化锁的粒度的同时依旧保证线程安全 从AtomicInteger到LongAdder,ConcurrentHashMap的size()方法。用分散思想,减少cas次数,增强多线程对一个数的累加 JVM的G1 GC算法,将堆分成很多Region来进行内存管理 Hbase的RegionServer中,将数据分成多个Region进行管理 平时开发是不是线程池都资源隔离 2.2 合 很多技术也运用到了合的编程思想,这里举几个例子,这些都是合的思想 TLAB(Thread Local Allocation Buffers),线程本地分配缓存。避免多线程冲突,提高对象分配效率 逃逸分析,将变量的实例化内存直接在栈里分配,无需进入堆,线程结束栈空间被回收。减少临时对象在堆内分配数量 CMS GC算法下,虽然使用标记清除,但是也有配置支持整理内存碎片。如:-XX:UseCMS-CompactAtFullCollection(FullGC后是否整理,Stop The World会变长)和-XX:CMSFullGCs-BeforeCompaction(几次FullGC之后进行压缩整理) 锁粗化,当JIT发现一系列连续的操作都是对同一对象反复加锁和释放锁,会加大锁同步的范围 kafka的网络数据传输有一些数据配置,减少网络开销。如:batch.size和linger.ms等等 平时开发是不是都个叫批量接口 二.分区 本文一切基于MySql InnoDB 说了这么多,接下来说主体,先说分区,因为之前博主写过一篇MySql分区的博客所以这里不会多费笔墨来写,具体见: http://cnblogs.com/GrimMjx/p/10526821.html 2.1 实现方式 具体如何实现上面链接里有写,这里只需记住如果表中存在主键或唯一索引时,分区列必须是唯一索引的一个组成部分。 这个是数据库分的,应用透明,代码无需修改任何东西。 2.2 内部文件 先去data目录,如果不知道目录位置的可以执行: 





2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/85427.html