
数据库
文章平均质量分 73
Mr_Runner
一只码不停手的猿!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
No more data to read from socket 问题分析
1.问题描述 程序在测试环境和生产环境运行都没有问题,但生产数据库的数据出了问题,排查服务器日志发现抛出以下异常信息(截选):[2021-07-07 17:32:25][ERROR][PlatformMappingExceptionResolver.java Line:27 (doResolveException)] org.springframework.dao.RecoverableDataAccessException:### Error querying database....原创 2021-07-21 14:24:19 · 17691 阅读 · 2 评论 -
mysql5.7的group by失效解决方案
1.问题说明SQL语句中含有临时表且临时表中含有filesort操作(eg:order by),进而对临时表进行分组(group by)会导致分组后的结果不是预想的结果。2 SQL分析一张t_user表,查询出en_name和hobby相同的最近一条数据;2.1 错误代码示例2.1.1 错误SQL语句select *from ( select tu.id, tu.name, tu.en_name, tu.sex , t...原创 2021-06-29 18:05:45 · 3316 阅读 · 1 评论 -
Mybatis 插入数据的同时获取主键的方式
1.继承 Mapper, MySqlMapper在实体类主键加上注解@Id和 @GeneratedValue(strategy = GenerationType.IDENTITY) ,在项目中不建议继承这两个类,不过微服务中,单标操作,使用这个 api 比较快捷,示例如下: @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id;2.xml配置配置的方式一般有两种:..原创 2020-05-19 10:57:13 · 513 阅读 · 0 评论 -
update死锁解决方案
问题: 多个update语句对数据库做更新操作时,导致数据库表死锁。SQL语句:语句1:UPDATE test_table SET col_4_name = '',col_5_name='' WHERE col_1_name = 'xxx' AND col_2_name = 'xxx' AND col_3_name = 'xxx';语句2:UPDATE test_tab...原创 2019-12-24 18:36:05 · 5704 阅读 · 4 评论 -
高并发下对不断变化的数据进行批量操作
问题: 在系统的高并发下,对不断变化的数据进行批量操作,且批量操作的数据和新增的数据互不影响,如何做?解决方案:方案一:使用锁机制,在对数据操作之前锁上一批数据,对这批数据进行批量操作,这样可以保证批量操作的数据和新增的数据不会混合在一起被操作;具体方法:在数据库增加一个批量id字段,对数据操作之前生成一个批量id,插入数据库,再从数据库查询出被插入这个批量id...原创 2019-08-02 09:51:37 · 888 阅读 · 0 评论 -
高并发场景下数据重复插入的问题以及DuplicateKeyException异常在高并发下或批量插入数据时如何优化
问题: 1.高并发时,数据库插入操作抛出DuplicateKeyException异常; 2.批量插入数据的时,数据库插入操作抛出DuplicateKeyException异常;异常信息如下: org.springframework.dao.DuplicateKeyException: ....(具体信息省略......)解决方案:...原创 2019-08-01 12:54:28 · 5922 阅读 · 6 评论 -
高并发下如何对数据库进行更新操作
问题: 在高并发的系统下,对数据库进行更行时,如果没有防重机制做拦截,就会导致数据被更新多次,从而影响更新后程序的后续操作。解决方案:方案一:方案详情:加锁查询拦截,在更新前,加锁(分布式系统用分布式锁、也可用数据库锁等),查询需要更新的数据是否存在且未被 更新,根据查询结果做更新操作,更新后释放锁;适用情况:对数据需要进行多...原创 2019-08-05 09:28:47 · 7549 阅读 · 0 评论 -
java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.String
问题: mybatis中Date参数传入报异常:java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.String;异常信息如下:org.mybatis.spring.MyBatisSystemException: nested exception isorg.apach...原创 2019-03-08 10:28:15 · 30219 阅读 · 0 评论 -
mybatis mapper将参数作为查询字段或查询的表名,create table、drop table、alter table等
问题: mybatis mapper将参数作为字段查询或查询的表名解决方案: 在传入“表名”作为参数时,一定要使用“${tableName}”的格式,而不能使用“#{tableName}”的格式。 在传入的参数“字段名”作为select、create、alter等后面的查询或创建列时,一定要使用“${column}”的格式,而不能使...原创 2018-12-06 20:49:20 · 6618 阅读 · 3 评论 -
公司在千万级别数据上线项目上出现的问题 以及 相应需要注意的点(转)
上几个月一直很忙, 也没时间回顾和整理做的 一些东西 和 知识。 这里记载以下, 当时公司给石家庄做了一个比较大的项目, 里面 好几张表的数据 是千万级别的, 还有 好多张也是百万级别的, 自然, 表的数量之多也是不用多说了, 不过在问题出现后, 也就牵扯出了很多,在这个问题方面,公司也是 技术经理开会 我们对于这个问题进行了相应的学习 和 重视。 其实很重要的,有经验 和没...转载 2018-12-03 11:03:30 · 867 阅读 · 0 评论