
数据库
维他明不是维他命
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql的datetime列的长度导致的问题
背景java使用mybatis框架,更新一个datetime数据类型的值,插入后查询获取该字段并转成时间戳,发现插入前的时间戳和取出后的时间戳不一致。原因更新后数据库里该字段的时间戳跟程序中的时间戳相比,后面三位数都是0,说明是数据入库时被截断了。后面三位数刚好是毫秒数,可以判断出是datetime数据入库时,毫秒数未被保存。通过查资料和核对表设计,发现该datetime列的长度为0,即保存0位毫秒数。解决办法如果需要保持入库时程序中的时间和数据库里的时间精度一致,有以下两种方案:可以通过原创 2021-06-18 11:55:18 · 3434 阅读 · 0 评论 -
redis慢查询导致的线上事故
背景接入流量涨了将近一倍时,用户就反馈系统的反应很慢,发起一个请求后,要很久才能实际看到响应的结果。排查和分析过程1.因为用户是在浏览器页面上操作的,所以做的第一件事就是打开网页和开发者工具,然后模拟用户操作发起请求。发现这个过程有些操作的响应是很快的,而有些不是,初步排除是服务出了问题(内存溢出,死循环等),然后根据请求的响应时间确定出现延时的接口。2.确定了接口后,查看接口的实现,发现全部都是基于redis的读操作。初步判断是redis出了问题。马上登上redis服务器,查看redis进程的各项原创 2020-08-30 20:11:35 · 304 阅读 · 0 评论 -
mysql中text和varchar的区别
最近在做项目的时候,mysql数据库需要用到text型的字段保存数据。平时都是习惯将字符型的数据默认值设置为“”,于是使用的时候取出text类型的字段按照默认值为“”处理,当出现错误的时候才发现text类型的字段默认值只能为null,于是好奇varchar和text还有什么区别。首先打开mysql官网查看文档,查看 DataTypes 目录下的 The BLOB and TEXT Types 小...原创 2019-03-12 10:38:12 · 6045 阅读 · 0 评论 -
关于对数据库查询结果排序时,将特定的某个值排在最前面的问题
应用场景前台传入一个查询字段id,要求查询后返回的结果中,该name所在的数据在第一行,其他数据行按照正常的字典序排序。解决方法在order by语句中,使id字段等于前台传入的值,则整个表达式会作为排序的依据,如前台传入2:则结果会先将id=2的数据输出,其他行则按字典顺序或其他排序字段的顺序列出。...原创 2019-04-01 23:29:33 · 14593 阅读 · 3 评论 -
关于在数据量比较大的时候进行插入或更新操作的问题
背景最近需要每天从A库拉取5W+数据,然后需要插入B库,而且插入的过程,要先判断是否需要插入,判断后再进行插入或更新操作。问题如果每条数据都要先进行数据库查询看库中有没有数据再进行更新或插入操作,就会多出5W+的查询操作,每次又涉及到数据库连接的断开和连接,这样就导致性能的下降和时间的提高。解决办法使用 ON DUPLICATE KEY UPDATE 可解决此问题,将判断逻辑交由数据库去...原创 2019-04-25 23:09:42 · 1786 阅读 · 1 评论 -
分布式集群架构下的mysql错误 "too many connections"
背景项目采用微服务,分布式集群的方式进行部署,每个服务有2至3个节点。问题新增了一个服务,开了两个节点,发布到线上环境后,过了一段时间,发现其他服务的消息积压了。原因经过查看各个相关服务的日志,发现数据库无法写入,日志中首先出现了Communications link failure,The last packet successfully received from the serve...原创 2019-05-02 01:10:27 · 209 阅读 · 0 评论 -
关于使用druid数据源连接Oracle导致的SQLRecoverableException(socket read timeout,关闭的连接等)
背景数据源初始化后,获取Oracle的连接进行查询操作,相隔 半个小时 左右,再次对同一数据库进行查询操作。问题第二次查询的时候,就会出现如下一些异常情况2019-06-05 14:17:58.247 [CorePoolHandler-thread-6] ERROR [LOGID:] com.alibaba.druid.pool.DruidDataSource - discard conn...原创 2019-06-18 20:00:00 · 20120 阅读 · 11 评论 -
mysql分组后如何取第一条或最后的一条数据
这里只介绍在表数据有顺序可排序(时间,数字大小等)的情况下的分组取第一或最后一条数据:https://blog.csdn.net/li_jian_fei/article/details/86162962原创 2019-09-08 23:16:34 · 5789 阅读 · 0 评论