- 博客(24)
- 收藏
- 关注
原创 为什么左右模糊不能使用索引
当使用类似于`LIKE '%keyword%'`这样的模糊查询语句时,数据库引擎无法利用索引来加速查询的主要原因是因为在这种情况下,查询条件中的关键字keyword的位置不确定。为了避免左右模糊查询不能命中索引,可以采取以下几种方法:1. 尽量避免使用`LIKE '%keyword%'`这样的左右模糊查询,尽量缩小查询范围,减少查询条件中通配符的。2. 如果无法避免使用模糊查询,可以考虑使用`=`或`LIKE 'keyword%'`这样的左模糊查询,因为在这种情况下索引可以加速。
2024-06-26 15:10:10
452
1
原创 什么是聚簇索引,什么是非聚簇索引
总结一下,聚簇索引直接影响数据的物理存储顺序,非聚簇索引则不直接影响数据的物理存储,并且可以有多个。非聚簇索引的优势在于,它们可以快速定位到包含所需数据的行,而不需要重新排序数据。但是,当查询没有使用非聚簇索引的键值时,查询性能可能会受到影响,因为数据库可能需要全表扫描来找到数据。聚簇索引的优势在于,当查询使用了聚簇索引的排序顺序时,数据库可以快速定位到数据所在的物理位置,从而提高查询性能。的查询时,数据库引擎可以直接通过聚簇索引快速定位到。为 2 的数据行,因为它知道数据行的物理位置。
2024-06-26 15:07:00
275
原创 分布式锁初级
分布式锁业务太久 超时释放这种业务过程时间太长导致锁提前释放,线程二获取锁后执行一半,被线程一执行完成后提前释放,这时线程三获取锁也可以获取,导致线程安全问题,
2024-04-29 14:17:39
113
原创 写文档或者论文时候如何批量生成数据库表信息?
这时候按照格式一个个填数据字段是浪费时间 所以用上开源了一款数据库表结构文档自动生成工具——当我们需要写文档,或者需要写论文需要将系统的数据库表的信息记录批量导出,类似这种。
2024-01-02 10:00:21
1138
1
原创 数据库的锁有哪一些??
不同的数据库管理系统可能会有一些特定的锁类型或机制,但以上列举的是数据库中常见的锁类型。多个事务可以同时持有共享锁,但是不允许其他事务持有排他锁。4. 表级锁(Table-level Lock):锁定整张表,当一个事务对表进行操作时,其他事务无法对表进行写操作,但可能可以进行读操作。2. 排他锁(Exclusive Lock):用于写入操作,保证在当前事务操作资源的过程中,其他事务不能读取或写入该资源。3. 行级锁(Row-level Lock):锁定表中的单独一行,允许其他事务并发访问表中的其他行。
2023-12-08 10:34:46
667
原创 什么是聚簇索引,什么是非聚簇索引
非聚簇索引(Non-clustered Index)则是将索引和数据行分开存储的,索引的叶子节点存储着指向数据行的指针。在实际应用中,需要根据具体的查询模式、数据的分布情况、数据更新频率等因素考虑选择适当的索引类型,以优化数据库的性能。1. 存储方式:数据行本身按照索引键的逻辑顺序进行存储,因此索引的叶子节点同时也存储着实际的数据行。3. 聚簇索引的优点:由于数据行的物理顺序和索引的逻辑顺序一致,因此范围查询的性能通常较好。1. 存储方式:索引和数据行分开存储,索引的叶子节点存储着指向实际数据行的指针。
2023-12-08 10:27:37
614
原创 什么时主键索引和非主键索引
非主键索引的作用是加快对表中某些列的查询操作。当执行查询时,如果查询条件涉及到了非主键索引的列,数据库引擎可以使用非主键索引来快速定位符合条件的行。然后,再根据定位到的行的主键值,去访问实际的数据行获取其他需要的列的值。通过非主键索引获取id 再回表去查询主键索引b+树,获取整行数据。主键索引的叶子节点存的时整行的数据。
2023-11-30 16:41:14
101
原创 什么是覆盖索引
假设有一个订单表,包含订单号、订单日期、客户姓名、商品名称、商品价格等字段。如果需要查询某个客户的订单号和订单日期,可以创建一个包含订单号和订单日期的覆盖索引。这样,在执行查询时,数据库引擎可以直接从索引中获取订单号和订单日期的数据,而无需访问实际的数据行。就不用再进行回表,订单号和订单日期创建成联合索引,当查询需求查询订单号和订单日期时,就可以直接索引获取,不用再回表。
2023-11-30 16:33:08
62
原创 updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wa
查询,您可以获得当前活动的 InnoDB 事务的详细信息,从而帮助您分析和监视事务的运行情况以及可能的锁等待问题。这对于调优和故障排除是有用的。是一个系统表,它包含了有关当前正在运行的 InnoDB 事务的信息。用于检索 InnoDB 存储引擎中当前活动的事务信息。然后 kill掉这个线程 在重新测试。这个 SQL 查询语句。
2023-11-30 11:58:45
582
原创 flowable 工作流如何通过任务监听器实现任务结束后实现自定义业务
在 Flowable 中,任务监听器可以实现两个不同的接口:ExecutionListener 和 JavaDelegate。其中,ExecutionListener 用于监听流程实例的生命周期事件,而 JavaDelegate 用于执行与流程实例相关的任务。实现javadelegate重写执行方法。当流程走到最后一步可以实现自定义业务。结束节点配置自定义完成的类的包名。
2023-10-13 09:31:47
1133
原创 flowable 工作流 关于候选组的使用 与候选人的使用
候选人的概念就是当一任务节点只能被这个组的成员的拾取并完成。当这个成员登录系统时可以查看任务并拾取后转到代办。用户与部门绑定 再查询时可以找到该用户。就可以在代办中去处理任务。在任务节点选择候选组。
2023-10-12 09:44:20
506
1
原创 flowable 的线流转条件在并行网关没有通过只能报错
排他网关¥{pass}与¥{!pass}即可 当一方不通过时 直接返回设定的节点。在审批人后线流转条件,设置¥{!pass},当驳回后直接报错,所以要进入排他网关进行判断是否通过结束。
2023-10-12 09:23:05
927
1
原创 Exception while invoking TaskListener: Delegate expression ${pass} did not resolve to an implementat
要解决此问题,您可以检查表达式并确保它指向TaskListener接口的有效实现。如果实现在当前代码库中未定义,则可能需要导入或添加为外部依赖项。此外,您可以检查是否存在造成问题的类型转换或语法错误。用了代理表达式了 任务节点完成不了。这个到底是什么错误 这个错误通常意味着定义TaskListener代理的表达式无效,无法解析为有效的实现。表达式可能是在引用一个不存在的类或方法,或者可能存在类型转换问题。${pass=true} 没问题啊 到底是什么原因。
2023-10-09 10:44:19
1333
1
原创 nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘param‘ not found. Availab
nested exception is org.apache.ibatis.binding.BindingException: Parameter 'param' not found. Availab
2023-09-21 11:21:28
8246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人