- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 纯知识干货java学习之问答一
本文介绍了基于Java AOP的数据权限设计方案,通过注解和拦截器实现非侵入式的权限控制。方案包含数据权限注解、枚举类型定义、上下文管理、AOP拦截和MyBatis SQL改写等核心组件,支持用户级、部门级等多种权限类型,并允许自定义扩展。系统采用线程本地变量存储权限信息,通过动态修改SQL实现数据过滤,具有配置灵活、维护方便、性能高效等特点。文中还提供了使用示例和配置建议,建议可进一步优化缓存机制、支持多租户场景,并开发可视化配置界面。该方案有效解决了企业系统中常见的数据权限管理问题。
2025-10-13 16:09:51
415
原创 纯知识干货vue2学习之问答六
本文针对后端开发人员学习前端的痛点,以Vue2为例解析了两个核心知识点:1) props属性定义组件接口,详细说明了如何定义和接收字符串类型的date/date2属性;2) watch监听器的深度使用,通过实例演示了如何监听date和Vuex状态变化,并触发数据解析、状态更新和图表重载等业务逻辑。文章通过具体代码示例展示了props和watch在日期显示组件、数据看板等场景的实际应用,帮助开发者理解Vue2的响应式数据驱动机制。
2025-10-11 16:19:48
459
原创 纯知识干货vue2学习之问答五
本文介绍了后端程序员学习前端时常见的困惑,重点解析了Vue2中通过自定义指令v-rescid实现权限控制的底层逻辑。该指令通过比较权限码与用户权限列表来控制元素显示/隐藏,包含完整实现方案、Vuex权限管理、多种使用场景及响应式更新机制。核心原理是:1)注册自定义指令;2)获取用户权限;3)权限验证;4)动态控制DOM元素。文章提供了具体代码示例和权限管理方案,帮助开发者理解前端权限控制的实现方式。
2025-10-11 13:49:06
293
原创 没有高并发,亿万级数据优化的sql脚本十
本文介绍了Oracle分区表的使用方法。当表数据量超过2GB或500万行时,建议使用分区表来提高查询效率。文章重点讲解了区间分区(Interval Partitioning)的实现方式,通过创建时间字段(如create_time)按分钟或月自动分区,系统会根据数据增长自动创建新分区。这种分区方式特别适合持续增长的时间序列数据(如金融交易记录),能显著提升查询性能。文中还提供了检查表大小的SQL语句和按月分区的修改方法。
2025-10-10 16:59:53
702
原创 纯知识干货vue2学习之问答四
本文介绍了Vue2中实现标题提示效果的三种方法:1)使用原生HTML的title属性,通过v-bind实现动态绑定;2)使用ElementUI的Tooltip组件,支持复杂内容和样式定制;3)自定义指令实现更灵活的提示效果。第二部分详细讲解了ElementUI的Tooltip组件placement参数,包括12种定位方式及其效果说明,涵盖上下左右四个方向及其对齐变体。文章旨在帮助后端开发人员逐步掌握前端技能,通过实践示例展示Vue2的数据绑定和组件化特性。
2025-10-10 16:39:32
1081
原创 纯知识干货vue2学习之问答三
本文详细介绍了Vue2项目的标准目录结构和各模块功能。主要内容包括:1) 项目整体结构划分,包含public、src等核心目录;2) 源代码目录(src)的组织方式,包括components、views等子目录的作用;3) 核心功能模块如路由(router)、状态管理(store)和API接口的实现规范;4) 组件分类管理策略,区分通用组件、业务组件和UI组件;5) 工具函数和静态资源的管理方法。文章还展示了关键配置文件(package.json、vue.config.js)和入口文件(main.js)的典
2025-10-09 17:36:10
601
原创 没有高并发,亿万级数据优化的sql脚本九
由截图可知,缩进最多的是倒数第二行的唯一索引扫描INDEX UNIQUE SCAN,但是执行计划最先执行的不是倒数第二行,而是第三行TABLE ACCESS FULL全表扫描,最先执行mytable3表。当我们要测试执行计划的时候,为了保证执行计划的准确性就需要让扫描优化器获取到表数据的统计信息是最新的,否则执行计划就会滞后,进而有可能带给我们对sql执行的误判。而是最新执行第三行TABLE ACCESS FULL全表扫描,而后面的执行顺序完全按照缩进越多越先执行,缩进一样多,从上到下顺序执行。
2025-10-06 16:53:43
945
原创 没有高并发,亿万级数据优化的sql脚本八
本文介绍了Oracle数据库中的索引类型和执行计划扫描方式。主要内容包括: 索引类型:主键索引、唯一索引、复合索引及其创建方法; 索引管理:通过SQL查询索引信息、大小和状态; 执行计划的五种索引扫描方式:唯一扫描、范围扫描、全索引扫描、快速全索引扫描和跳跃扫描,分别说明其适用场景和特点; 最左前缀原则:解释复合索引的使用规则,并通过示例说明SQL查询如何利用索引。 文章强调索引设计需根据业务需求,过多索引会影响更新效率,并提供了优化SQL查询性能的建议。
2025-09-21 21:34:09
892
原创 纯知识干货vue2学习之问答二
本文介绍了Vue2开发中的三个关键知识点:1) this指向问题分析,指出在回调函数中this会丢失上下文,提供了箭头函数、保存this和bind三种解决方案;2) 解析了一个Vue2组件骨架代码,包括组件注册、数据定义、生命周期钩子和方法定义;3) 解释了v-model的双向绑定原理,展示其在表单元素和自定义组件中的使用方式及注意事项。文章强调掌握这些核心概念对后端开发者学习前端的重要性。
2025-09-20 18:27:55
964
原创 纯知识干货vue2学习之问答一
本文解答了后端开发者常见的前端开发问题,主要包含4个Vue2核心知识点:1) Vue2项目的安装、打包和运行命令;2) index.html页面渲染机制;3) this.$store的作用与Vuex状态管理;4) this.$refs的DOM操作和组件通信方法。文中通过具体代码示例详细说明了每个知识点的使用场景和实现原理,帮助开发者理解Vue2的核心概念和实际应用,强调通过实践掌握前端开发技能。
2025-09-18 17:15:35
698
原创 没有高并发,亿万级数据优化的sql脚本七
执行计划的作用就是 通过可视化展示sql脚本的执行路径和资源消耗,帮助我们理解sql脚本被执行时的底层动作和执行效率,包括是否有用到索引,索引扫描类型,表连接顺序,执行顺序等等;100属于51-100这个范围,在根节点中通过存储的分支节点的键值范围和查询条件的数据值的对比定位到需要继续扫描执行分支节点2。执行计划常见的动作有表访问操作,索引相关操作,连接操作,排序和分组操作,集合操作,分区相关操作,其他常见操作还有视图访问,物化视图重写访问,计数操作,过滤操作,远程数据库访问,锁定行用于更新等。
2025-09-14 21:24:30
698
原创 没有高并发,亿万级数据优化的sql脚本六
如果是,就要通过undo_record的undo_pointer 追溯前版本获取前版本快照的scn,如果前版本的scn小于等于10,就直接用这个版本的快照数据,否则重复上一步继续追溯前一个版本的快照。左连接 是 left join,运行逻辑是以“左表”为基准表,去关联右表查询,返回的结果是“左表”的全部和“右表”被关联部分的数据,其余没被关联的“右表”数据都以空(null)的形式返回。上面2个sql都是查询时间的语句,在某些需要处理和时间范围有关的业务场景中,这些sql语句都是很有可能会出现的。
2025-09-03 15:15:43
757
原创 没有高并发,亿万级数据优化的sql脚本五
各位读者大家好,前面几章节有提到 with 表名 as 的语法。它的作用是定义临时表存储结果集,提升复杂查询的可读性和执行效率,减少子查询重复扫描。它可以定义多个临时表,只需在第一个临时表前加上 with即可,每个临时表之间用逗号分开,最后一个临时表和后面的使用临时表的sql语句之间不能加上标点符号。例如 WITH myt1 AS (SELECT ...), myt2 AS (SELECT ...), myt3 AS
2025-08-25 14:58:25
661
原创 没有高并发,亿万级数据优化的sql脚本四
考虑到需要查出每个企业的负面舆情信息,如果是统计每个企业出现的负面舆情总数那么group by就很好的解决了问题。查找的方向就是根据on子句后的关联关系,上面例句就是根据起始行的resc_id的值去查找表mytable3中记录parent_resc_id 的值,只要他们相等就把对应记录作为结果集返回。是不是需要考虑3种情况,一种是3/20到4/20时间段内评级更新的情况,一种是3/20之前最后一次更新的情况,一种是4/20后最早的一次更新情况(该例中实际不用考虑这一情况,但是部分其它需求还是需要的)。
2025-08-21 22:50:29
680
原创 没有高并发,亿万级数据优化的sql脚本三
根据r.resc_id = '1001'的记录行开始递归找,因为是“prior r.resc_id = r.parent_resc_id” 所以就把起始行resc_id的值作为开始递归查找的值,因为“prior r.resc_id = r.parent_resc_id” 的等号右边是“ r.parent_resc_id”,所以递归查找的“方向”就是找其它行parent_resc_id的值,只要他们相等即可,如此反复。然后根据id=5的记录又找到了id=1的记录。它的英文意思是先前的,优先的,较早的。
2025-08-17 22:17:18
541
原创 没有高并发,亿万级数据优化的sql脚本二
查询序列的当前值和下一个值语法也都一样,唯一的区别就是oracle和db2的系统虚表不同,db2的系统虚表有sysibm.dual和sysibm.sysdummy1,笔者喜欢用sysibm.dual,因为和oracle接近。为何这么说呢,结合业务场景来看,上面这条语句肯定是不符合业务场景的,不可能根据一个人的年龄去修改一个人的名字,倒有可能会根据一个人的名字去修改一个人的年龄。序列有两个常用属性,一个是currval,表示查询序列的当前值,一个是nextval,表示查询序列的下一个值。这条删除语句是错的。
2025-08-14 19:34:59
74
原创 没有高并发,亿万级数据优化的sql脚本一
在实际开发工作中涉及到数据库的交互方面,相信读者接触最多的还是基本的sql书写,涉及到的分库分表,万亿级别的数据优化,高并发高可用的处理肯定还是相对较少,毕竟目前国内80%的企业还是中小企业,数据流量并不如某宝,某音,某多那么强大。它就是根据mytable 的id作为where 条件,只不过where条件不是大于,等于,而是存在,存在另个表(mytable2)中,而且同时,需要满足另个表的一个条件,就是age字段的值要小于40。在使用merge操作的时候注意了:on 条件里面的字段是不允许做更新操作的。
2025-07-26 15:21:34
95
原创 基础sql八
group by 作为分组语句关键词,select 后的字段是需要和group by后的字段保持一致的。是不是需要考虑3种情况,一种是3/20到4/20时间段内评级更新的情况,一种是3/20之前最后一次更新的情况,一种是4/20后最早的一次更新情况(该例中实际不用考虑这一情况,但是部分其它需求还是需要的)。ROW_NUMBER() 是 Oracle 中的一个分析函数,用于为结果集中的每一行分配唯一的序号。大家只要记住分组都是分组过滤之后的数据,要先把数据过滤好我们需要的数据,然后再进行分组才有意义,对吧。
2025-07-22 23:37:21
347
原创 基础sql七
start with 后面跟的条件表示是以某个字段等于某值的那行做为起始行,在该行的基础上根据 connect by prior 后的条件进行树型查找。因为树型表就必定会有父子关联字段的性质,某一行的子字段的值会是另一行父字段的值。这有个记忆小技巧告诉大家,看 connect by prior 后面跟的字段是 父字段还是子字段,如果是父字段,说明查询的结果是往树的上方查找;不管是往树的上方找还是下方找,起始层的level都是为1.好了,关于树型查询就先到此把。它并不会返回为空的记录,因为null!
2024-03-02 10:54:03
178
1
原创 基础sql六
首先该条sql对dba_free_space,dba_data_files进行了分组统计操作,并在统计时候用到了sun()函数和除法运算。然后根据表a,b的tablespace_name 字段是否相对进行关联查询,最后并对(total - free)进行降序排列。上述sql语句涉及到2个视图,dba_data_files,dba_free_space。这个时候第一反应应该就是去查询服务器情况了,cpu,内存,磁盘。对,就是表空间用完了。很高兴又和大家见面了,因为个人原因该博客断了很长时间,深感抱歉。
2024-03-02 09:49:35
380
原创 基础sql五
各位童鞋大家好,今天进行基础sql第五篇。从这篇开始,会分为几讲重点讲解下select。select是dml语句使用最频繁的关键字,在很多需要优化的sql语句中,select占比也是最大的。把select灵活运用好了,其他的dml也就不在话下了。好了,接下来进行咱们的第一讲。 先说说select的执行顺序吧,一个比较常见的select 语句如下: select sex, count(1) from mytable where age = 23 g...
2020-06-19 13:32:06
176
原创 基础sql四
各位童鞋大家好,今天进行基础sql第四篇,delete。 delete是删数据语句,删除就没了。所以再执行此语句就得非常格外的小心了。否则,有些情况下dba都束手无策。 delete from mytable ; delete from mytable where age = 22; 说到delete ,肯定有些童鞋会联想到 truncate.他也是个删除语法。他们之间的区别是 delete是dml语句,truncate为ddl语句。truncate改变segmen...
2020-06-14 18:46:27
322
原创 基础sql三
各位童鞋大家好,今天进行基础sql第三篇,update.在实际dml语句操作中,update应该是除了select使用频率最高的sql语句了吧。 update mytable set age = 22 where name='zhang'; update (select m.flag from mytable m where m.age = 22) set flag = 1; update mytable T set T.next_...
2020-06-11 20:02:39
308
原创 基础sql二
各位童鞋大家好,今天进行基础sql第二篇.上一篇说到oracle的 insert语句。可能少量出入oracle江湖的童鞋对它不熟悉,insert语句不是insert into mytable(xx, xx, xx...) values (ss, ss, ss...)么。不错,这也是oracle的insert语句,而且这是最基本,重要的语句。但是这条语句在有些复杂点的实际业务当中,并不能很好的解决问题。比如:有这么个需求场景,前期产生一个账单,都会对应生成一个账单对应记录保存到DB,但是因为各种...
2020-06-09 19:04:58
225
原创 基础sql一
各位童鞋大家好,小编是个普通的多年程序员。在这很开心能够结识大家。正在做技术的或者正想加入这个行业的童鞋们肯定有时间的时候都在不断学习,提高自己。学习过程中,免不了各种渠道找资源。相信童鞋们找的资源绝大多数都是‘高,大,上’的,什么高并发,高可用,分布式,千万级数据,亿级数据优化等等。能够接触并学到这些精髓固然很好。但是,这些真的很适合你么。或者说目前你真的迫切需要这些么?今天,小编结合自己多年的实战工作经验,来给大家分享些基础性质的知识吧。首先一篇,我以咱们常用的数据库sql语句来开篇吧。...
2020-06-08 13:39:18
312
数据库+oracle+sql+软件开发,数据开发,报表开发,数据处理
2025-10-11
数据库+oracle+sql+软件开发,数据开发,报表开发,数据处理
2025-10-11
借助DeepSeek实现前端页面源码自动生成
2025-03-02
selenium 爬虫专用浏览器驱动(含火狐, edge, google)
2025-03-02
Google Drive 安装包下载
2025-02-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅