- 博客(12)
- 资源 (2)
- 收藏
- 关注
转载 mysql 辅助索引
二级索引:叶子节点中存储主键值,每次查找数据时,根据索引找到叶子节点中的主键值,根据主键值再到聚簇索引中得到完整的一行记录。问题:1.相比于叶子节点中存储行指针,二级索引存储主键值会占用更多的空间,那为什么要这样设计呢? InnoDB在移动行时,无需维护二级索引,因为叶子节点中存储的是主键值,而不是指针。2.那么InnoDB有了聚簇索引,为什么还要有二级索引呢? 聚簇索引的叶子节点存储了一行完整的数据,而二级索引只存储了主键值,相比于聚簇索引,占用的空间要少。当我们需要为表建立多个索
2021-12-16 09:15:41
459
原创 mysql体系架构
由上图可知,mysql最上层是连接组件(客户端)。下面服务器是由连接池,管理工具和服务,SQL接口,解析器,优化器,缓存,存储引擎,文件系统等构成。1、连接池:由于每次建立连接都需要耗费很长时间和很多的资源开销,连接池的作用就是将这些链接缓存下来,下次可以直接使用缓存好的连接,以提高服务器性能。2、管理工具和服务:系统管理和控制工具,例如备份恢复,mysql复制,集群等。3、SQL接口:接收用户sql请求,并且返回用户需要查询的数据 如:select * from xxx ;就是调用S...
2021-12-15 20:33:14
156
原创 什么时候需要考虑分库分表?
1、能不分则尽量不分2、数据快速增长3、数据量过大,日常运营将对业务造成影响。1、首先在进行分库分表之前,我们可以对硬件进行升级,对网络进行升级,对数据库表结构以及表之间的关系进行合理设计,对索引进行优化。2、如果对上述操作都做了之后,数据量还是快速的增长,日增长上百万的数据,会给我们日常的运维带来一些影响,比如数据的备份耗费很长时间,对数据的修改会造成锁的长时间等待,这个时候需要考虑分库分表3、一般分库分表的经验值,单表数据量超过500万或者单表大小超过2GB,需要考虑分库分表。
2021-12-15 19:21:51
2382
原创 spring 如何解决循环依赖?
1、问题:什么叫循环依赖 Bean A 中引用 Bean B Bean B 中应用Bean A bean A实例化后会对Bean B属性赋值,发现B并不是完整的Bean,就会对Bean B进行生命周期一系列操作,到了属性赋值的时候 ,发现A也不是完整的Bean,就会形成闭环,循环依赖。2、答案:实际上spring内部解决了循环依赖,使用的是缓存机制解决的。3、众所周知,形成循环依赖,就是没有闭环出口导致的,那么添加一个出口就可以解决这个问题,而这...
2021-12-15 17:25:25
434
原创 spring实例化bean的几种方式?
1、构造器方式(反射); 通过xml方式找到类的全路径,找到构造方法,使用反射来实例化。2、通过静态工厂的方式;factory-method 指定的静态方法来创建bean实例。3、实例工厂方式(@Bean) factory-bean + factory-method4、factoryBean方式 bean实现factoryBean接口 重写getObject方法和getObjectType方法...
2021-12-14 22:55:20
398
原创 spring如何处理线程的并发问题
1、可以将成员变量声明在方法内。2、将成员变量放在ThreadLocal之中。(ThreadLocal<String> userName = new ThreadLocal<>();) 成员变量放在ThreadLocal之中,传进来的参数是跟随线程的,所以也是线程安全的。3、将bean设置为多例模式。(@Scope("prototype")) 多例模式,bean线程之间不共享就不会发生线程安全问题。4、使用同步锁(会影响系统的吞吐量...
2021-12-14 22:33:47
2121
原创 java项目线上项目CPU突然飙升到100%排查
1、使用top命令 查找到java占用cpu的进程。2、使用 top -Hp PID 命令查看当前进程中的线程cpu占用情况 top -Hp 32725找到线程 的PID 337533、使用 printf ‘%x’ PID 转化成16进制得到转化后的值83d94、使用jstack 命令 dump线程情况 此时jstack +PID 的PID是java进程的PID 非线程PID jstack 32725 &...
2021-12-13 11:54:03
773
原创 线上问题排查linux常用命令
1、top 查看整个系统资源使用情况2、iostat 查看磁盘读写活动情况3、netstat 查看网络链接情况4、df -h 查看磁盘空间使用情况5、du -sh 查看文件占用大小情况看6、free -m 查看内存使用情况
2021-12-13 11:17:19
636
原创 解决Mac bigsur 中 Can‘t use Subversion command line client:svn
1、问题:运维给我换了16g内存mac之后,感觉不卡了,就升级了系统,结果打开idea就悲剧了,svn报错如下:2、解决办法: a、查询博客,找到了解决办法如下解决办法(原文链接),但是尝试之后还是没有效果,仔细看 路径/Library/Developer/CommandLineTools 并没有svn。 那我就看看homebrew到底把他安装到哪里去了。b、结果在这里找到了:c、于是把idea中的svn路径修改到了这个路径就ok了...
2021-05-18 15:55:49
299
2
原创 爬虫遇到图片禁止访问(如403)
爬虫网站,图片链接单拿出来访问出现403代码,如下:浏览器访问出现查了下资料,是因为在源网站请求时,请求头中会带有Referer信息或者user-agent信息。加上Referer(实际上是携带域名信息)访问之后,状态码恢复正常。java 代码: ...
2020-11-27 19:03:22
2042
1
原创 chromedriver 驱动下载以及mac存放位置
1、Chrome driver需要和本地Chrome浏览器版本相对应,Chrome浏览器如果一不小心升级,chorme driver也需要跟着手动升级。2、驱动下载地址:http://chromedriver.storage.googleapis.com/index.html3、下载完成后,移动到目录:/usr/local/bin,无需配置环境变量。4、如果改变地址需要配置环境变量。...
2020-10-10 14:01:52
933
原创 新版Mac docker(v19.03.8)镜像下载速度太慢解决方法
新版mac docker(v19.03.8)镜像下载太慢解决办法,在docker图标 --> Preferences -->Docker Engine 界面下找到如下图,将加速链接加入到json中,我使用的是阿里云的加速链接,快到起飞?...
2020-04-15 18:35:44
3220
APKParser.jar
2018-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人