- 博客(18)
- 收藏
- 关注
原创 系统内单个业务模块查询超时-表锁
2、重启服务时:停止线程大多信息是druid的信息,猜测数据库连接问题;问题描述:查询数据,系统内别的功能正常,单个功能查询超时。1、重启系统服务后,依然如此。撇清服务运行导致的问题;4、排查数据库表锁问题,发现单个功能业务主表死锁;3、简单粗暴,重启mysql服务(生产环境不建议)3、排查数据库连接,正常,连接数不多。5、查询事务,终止事务。
2023-11-28 13:24:47
438
原创 mysql优化步骤及方法
1、开启慢查询日志,设置阈值,比如超过五秒的就是慢sql,并将它抓取出来2、explain +慢sql分析3、show profile 查询sql在mysql服务器里面的执行细节和生命周期情况4、sql数据库服务器的参数调优优化原则:永远小表驱动大表,即小的数据集驱动大的数据集;exists 查询主表在子查询内是否存在数据;排序算法filesort有两种排序算法1、双路排序,mysql4.1之前是使用双路排序,字面意思是两次扫描磁盘,最终得到数据。读取行指针和orderby列。对他们进行排
2022-01-19 13:57:45
2132
原创 mysqldumpslow 参数解析
参数解析s:表示按照何种方式排序;c:访问次数l:锁定时间r:返回记录t:查询时间al:平均锁定时间ar:平均返回记录数at:平均查询时间t:即为返回前面多少条的数据;g:后面搭配一个政策匹配模式,大小写不敏感的;常用参考得到返回记录集最多的10个sqlmysqldumpslow -s r -t 10 /慢查询日志.log得到访问次数最多的10个sqlmysqldumpslow -s c -t 10 /慢查询日志.log得到按照时间排序的前10条里面含有左连接的查询语
2022-01-19 13:51:47
689
原创 mysql 索引失效的几种情况
范围后索引失效首先看一条sql ,使用到了category_id,comments ,views三个字段。给这三个字段都加上索引。然后查询:第一个sql,索引失效。看type字段第一个是range ,第二个是type。为什么呢,因为comments>1使得整个sql语句无法使用索引。是因为comments的失效,导致views无法匹配。优化方案:建立category_id,views的联合索引。取消范围查询的索引建立;左右连接查询索引建立方式左连接,加右表外键索引;因为是由左连接特性决定
2022-01-17 17:05:16
650
原创 es创建索引和yellow排查解决
索引创建PUT /index_name{“settings”: {“index”: {“refresh_interval”: “30s”,“number_of_shards”: “3”,“max_result_window”: “100000000”,“analysis”: {“filter”: {“escapeLen”: {“type”: “length”,“max”: “30”,“min”: “2”}},“analyzer”: {“escapeHtml”: {“fil
2021-07-09 16:45:08
3308
1
原创 createBean
createBean()获取bean对象的class对象prepareMethodOverrides lookup-method replace-methodresolveBeforeInstantitation 给beanPostProcessor一个机会返回当前的bean代理对象(如果包含aop的相关处理,那么会在此处生成advisor对象,方便后续进行调用)doCreateBean 实际创建的方法创建当前bean的包装对象,默认为空BeanWrapper是否为空
2021-04-28 22:01:37
136
原创 configurationClassPostProcessor
configurationClassPostProcessor-》BeanDefinitionRegistryPostProcessor->BeanFactoryPostProessorPostProcessBeanDefinitionRegistry()1、processConfigBeanDefinitions(registry)处理配置类的解析信息2、创建一个空的list集合,用来存放beanDefnition3、从容器中获取到所有的BeanDefinitionNames4、是否是符合
2021-04-28 09:16:48
121
原创 registerBeanPostProcessor的解析过程
1、registerBeanPostProcessor(BeanFactory)1、在prepareBeanFactory中添加bpp1、applicationContextAwareProcessor2、ApplicationListenerDetectory2、configurationClassPostProcessor1、importAwareBeanPostProcessor2、获取容器中所有实现了BeanPostProcessor接口的子类的名称1、识别到spring中包含的对象和
2021-04-28 09:16:06
146
原创 bean的生命周期源码解读
1、ClassPathXmlApplicationContext创建spring以用程序上下文调用构造方法1、调用父类的构造方法 创建PathMathingResourcePatternReslover 解析配置文件2、设置配置文件路径到当前应用程序中3、开始进入容器的创建和刷新环节 refresh();1、prepareRefresh 容器刷新前的准备工作;1、设置容器的启动时间2、设置活跃状态为true;3、设置关闭状态为false4、获取Environment对象,并加载当前系统的
2021-04-28 09:15:39
298
原创 finishBeanFactoryInitialization
1、进行对象的创建1、setConversionService设置类型的转换服务2、addEmbeddedValueResolver 设置内置的值处理器3、freezeConfigurations() 冻结BeanDefinition4、preInstantiasteSingletons 开始对象的实例化1、从容其中获取所有的beanDefinitionNames集合2、从集合中获取每一个元素,来进行对象的创建3、根据benaName来获取完整的Bean Definition对象,而且是Roo
2021-04-28 09:15:17
123
原创 设计模式-单例模式
1、单例模式创建方法1、(最为常用):public class User{private static final User INSTANCE = new Uer();public static User getInstance(){retrun INSTANCE ;} //将构造方法设置为私有 private User(){ } }创建方法2、:public class User{private static final User INSTANCE ;static
2021-04-15 10:56:41
81
原创 spring学习2 spring流程创建概述
要想看懂spring源码必须了解一个方法 AbstractApplicationContext的refresh1、prepareRefresh() 容器刷新前的准备工作;1、设置当前spring启动的时间2、设置活跃状态为true;设置关闭状态为false3、获取当前环境对象Environment并设置环境对象的属性值(父类的构造方法内调用子类实现方法)4、设置监听器以及需要发布事件的集合 默认为空集合2、 ConfigurableListableBeanFactory beanFactory
2021-04-11 14:50:59
108
原创 spring学习1bean的生命周期相关
springDI 依赖注入iocApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml)XXX xxx = ac.getBean(XXX.class)xxx.method();1、加载xml2、解析xml3、封装bean对象 beanDefinition4、实例化5、放到容器中6、从容器中获取容器->Map1、string ,object2、class,object
2021-04-11 11:28:36
233
3
原创 关于shiro 的 session和无状态同时存在时实现思路
关于shiro包含userRealm 和MobileUserRealm 以及客户端无状态session问题 以前概念里,关于客户端登录,没有cookieId,需要手动记录保存sessionid。 在看了shiro教程以后,了解了无状态的web应用集成 即服务端无状态,服务器端不会存储像会话这种东西,而是每次请求带上相应的用户名进行登录。 具体实现: 1、教程上讲,客户端每次申请一个tok...
2019-03-09 13:45:49
2415
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人