mysql可以直接存储文件吗,请把这些学完再去面试

Posted 高级Java面试题

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql可以直接存储文件吗,请把这些学完再去面试相关的知识,希望对你有一定的参考价值。

二、解析

1. 硬件层的并发优化基础知识

存储器的层次结构图如下:

各级缓存耗时对比:

采用分层缓存的层次结构会带来数据不一致问题,如下图:

那么如何保证数据的一致性,现代CPU处理办法有两种:

(1) 锁系统总线;

(2) 利用缓存一致性协议MESI(Intel处理器用的比较多,还有很多其他的缓存一致性协议),大致结构如下图:

2. CPU的乱序执行

CPU中有个乱序执行的概念,概念图如下:

CPU在执行指令的时候,往往不是顺序执行,但是会遵守as-if-serial原则,也就是最终一致性原则。CPU为了提高指令执行效率,会在一条指令执行过程中(比如去内存读数据),去同时执行另一条指令,前提是这两条指令没有依赖关系。虽然指令执行顺序发生改变,但是不会影响单线程执行结果。多线程情况下为了不让CUP进行指令重排序,则需要用到Volatile关键字,因为Volatile的重要作用之一就是防止指令重排序。

CPU还会存在合并写的现象。当第一条指令往上级缓存写入数据时,由于上级缓存访问速度比较慢,可能第二条指令又对上一条指令的结果进行了修改,那么CPU将这两条指令合并的最终结果一次性的写入到缓存中,这就成为合并写。

3. 如何保证不乱序执行

(1) 内存屏障:java采用的是内存屏障,内存屏障其实就是一个CPU指令,在硬件层面上来说可以扥为两种:Load Barrier 和 Store Barrier即读屏障和写屏障。主要有两个作用:

a. 阻止屏障两侧的指令重排序;

b. 强制把写缓冲区/高速缓存中的脏数据等写回主内存,让缓存中相应的数据失效。

总结

大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。

需要免费领取这份Kafka源码笔记的铁汁们,麻烦帮忙转发一下这篇文章+关注我,然后戳这里免费获取!

取!](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**

就这一次!拼多多内部架构师培训Kafka源码笔记(现已绝版)

以上是关于mysql可以直接存储文件吗,请把这些学完再去面试的主要内容,如果未能解决你的问题,请参考以下文章

字节大牛耗时八个月又一力作,请把这些学完再去面试

java基础代码讲解,请把这些学完再去面试

吐血整理!面向Java开发者的复习指南!请把这些学完再去面试

java培训学校有哪些,请把这些学完再去面试

java代码生成器框架,请把这些学完再去面试

idea格式化java代码,请把这些学完再去面试