
数据库
文章平均质量分 69
终成一个大象
战略上要藐视敌人,战术上要重视敌人!
展开
-
Mysql timestamp和datetime区别
文章目录一、存储范围和精度二、默认值和自动更新三、时区处理四、索引和性能五、存储空间和数据复制六、使用场景和注意事项七、时区转换MySQL是一个常用的关系型数据库管理系统,其内置了多种数据类型用于存储和操作数据。其中,timestamp和datetime是两种常用的日期和时间类型,在实际应用中经常被使用。本文将从不同的角度分析二者的区别,并结合案例和代码进行比较说明。原创 2023-12-05 16:15:47 · 1006 阅读 · 0 评论 -
springboot 按月分表的优雅实现方式
一、项目背景1、分表的方式二、代码实现1、pom文件依赖2、配置文件3、MybatisPlusConfig实现4、优雅的使用5、mysql表名拆分三、遇到的问题在实际工作中,会遇到业务比较集中的情况,随着时间推延,这部分业务关联的mysql表就会越来越大,十分臃肿。尽管在项目架构上做了读写分离,也会导致查询的时候出现比较慢的情况,导致线上慢查询的出现。这种情况下导致的慢查询,单纯从sql优化的角度是无法解决的,此时我们就会用到分库分表。由于我们目前的问题是部分mys原创 2022-01-14 13:37:20 · 6335 阅读 · 1 评论 -
mysql 模糊查询like优化方案(亲测)
前言本文的测试数据是基于740w数据进行的。查询开头是“今天不开心”的聊天记录,是可以走索引的。select * from message_1 where content like "今天不开心%”;查询包含“今天不开心”的聊天记录,是不能走索引的。select * from message_1 where content like "%今天不开心%";咱们主要优化的是第二种情况,我本人测试查询耗时是在9秒。优化方案对于查询包含某个关键词的需求,从业务上来说尽量避免。但是实际原创 2021-11-18 19:43:32 · 33213 阅读 · 20 评论 -
mysql 语句优化的几种方式(总结)
一、避免操作多余数据1、使用where条件语句限制要查询的数据,避免返回多余的行。2、 尽量避免select *,改使用select 列名,避免返回多余的列。3、若插入数据过多,考虑批量插入。4、尽量避免同时修改或删除过多数据。5、尽量避免向客户端返回大数据量。二、避免删库跑路6、删除数据时,一定要加where语句。三、where查询字句优化7、避免在where 子句中的 “=” 左边进行内置函数、算术运算或其他表达式运算。8、避免在 where 子句中使用 != 或 <> 操作符。9原创 2021-11-16 19:48:40 · 17703 阅读 · 3 评论 -
mysql事务未提交 也未回滚
公司的一哥们在使用事务时未进行commit,链接断开后数据库执行了回滚操作,导致线上直播相关库的部分数据丢失,本文通过mysql命令行模拟该事故,并提供解决该问题的思路。希望对大家有帮助。一、场景模拟二、紧急处理三、原因分析四、相关命令1、查看正在执行的事务2、查看正在锁的事务3、查看等待锁的事务4、查看所有的线程列表5、定位未提交的事务执行的sql语句原创 2021-09-03 18:39:45 · 4094 阅读 · 1 评论 -
Parameter index out of range (2 > number of parameters, which is 1) 各种情况总结
情况1、#{}引用参数后,外面多加了双引号“”。举例,my.xml接口sql实现如下: <select id="selectByEndWord" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from idiom where pinyin = "#{endKey}" and name not in原创 2021-06-21 14:51:44 · 1506 阅读 · 0 评论 -
SpringBoot 缓存管理 @EnableCaching、@Cacheable
SpringBoot缓存管理一、SpringBoot缓存管理1、pom文件添加依赖2、@EnableCaching开启缓存管理。3、注册缓存管理Bean。4、@Cacheable使用缓存。二、集成redis5、添加redis配置6、修改cacheManager7、查看redis进行验证:三、注解使用事项1、@Cacheable2、@CachePut3、@CacheEvict4、@Caching本文章介绍SpringBoot集成redis缓存管理。一、SpringBoot缓存管理1、pom文件添加依赖原创 2021-06-03 18:52:46 · 1712 阅读 · 1 评论 -
mongodb 多表关联查询
需求mongodb库中有三张表,需求:查询表A中的数据,但这些数据的threadId字段,不能存在于表B和表C中,做一个过滤查询,需要分页和排序。mongodb 命令实现{ "aggregate": "__collection__", "pipeline": [ { "$match": { "open": 1, "closed": 0 } }, { "$lookup": { "from"原创 2021-04-17 20:12:49 · 3662 阅读 · 1 评论 -
can‘t convert from BSON type long to Date
{ $project: { year: { $year: "$createTime" }, _id: 1, createTime: 1 }}以上语句在查询mongodb时报错:can't convert from BSON type long to Date,截图如下:原因:数据库存储的createTime为long类型,而project语句需要一个date类型,优化如下:{ year:{原创 2021-02-21 17:36:00 · 3260 阅读 · 0 评论 -
failed to authenticate: ERR Client sent AUTH, but no password is set
关闭保护模式protected-mode no设置密码requirepass 123456原创 2020-02-23 19:02:30 · 575 阅读 · 0 评论 -
linux环境redis环境搭建和redis基本操作
官网地址:https://redis.io/5.0.7版本下载地址:http://download.redis.io/releases/redis-5.0.7.tar.gzlinux命令行下载:wget -c http://download.redis.io/releases/redis-5.0.7.tar.gz原创 2020-02-23 18:47:43 · 1469 阅读 · 0 评论 -
im源码分析(teamtalk)--DbProxyServer
im源码分析(teamtalk)–DbProxyServer原创 2019-06-06 01:28:13 · 1417 阅读 · 0 评论 -
mysql 主从备份
一、下载略二、主服务器配置添加mysql用户 groupadd mysql useradd -r -g mysql mysql环境变量配置(可省略) 创建目录连接 ln -sv /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql 设置环境变量 /etc/profile export PATH=$...原创 2018-03-26 11:28:58 · 318 阅读 · 0 评论 -
数据库异常
异常描述:web端用户在创建群组时,没有反应。创建群组的接口是调用底层消息中间件(即时通信)所提供的。原因分析:通过查看日志发现,http消息服务在访问数据库服务代理时,请求超时。进一步跟进查看数据库代理服务,发现操作数据库前校验了是否有该用户,结果发现没有当前用户。推测原因可能是用户数据没有同步到即时通信的数据库,导致查询该用户失败。解决方法:访问物理机时,发现密码已过期,myca...原创 2018-12-29 16:19:06 · 338 阅读 · 0 评论 -
org.springframework.jdbc.BadSqlGrammarException
今天使用postman测试web接口,访问数据库的时候报了如下错误: 检查了map文件和代码,发现没问题,请教后发现我使用的”key”字段是与数据库的关键词冲突,导致语法错误; org.springframework.jdbc.BadSqlGrammarException是指语法错误...原创 2018-06-15 15:49:27 · 4174 阅读 · 0 评论 -
mycat 配置解析
server.xml Mycat的配置文件,设置账号、参数等schema.xml Mycat对应的物理数据库和数据库表的配置rule.xml Mycat分片(分库分表)规则一 :wrapper.conf–配置jdkwrapper.java.command=D:/Program Files/Java/jdk1.8.0_131/bin/java.ex...转载 2018-11-16 12:43:42 · 257 阅读 · 0 评论