![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 59
林中静月下仙
我们注定会变成另一个人、
展开
-
Mybatis-plus 更新数据的坑
如果你用mybatis-plus自动生成的代码是不会遇到这个坑。如果你用的是第三方生成的代码那这里是有问题的比如int 要用Intergerlong要用Long。 因为基本数据类型会有默认值为0,所以在update时,会先判断类中的每条属性是否有值,有值才进行更新这个字段,没有值就不做更新。更新操作不是新增,所以更新时,用的对象可能就两三个字段有值,这个时候其他的数字类型,如果是基本类型,就会把数据改成0! 这就很坑了!所以要改成包装类型,这样默认值才是null,就不会被乱改了!原创 2022-12-06 15:39:33 · 715 阅读 · 0 评论 -
Mysql中find_in_set()函数使用
有个数据库里面有个type字段,它存储的是类型,有 1西瓜、2香蕉、3苹果、4梨等等。现在他既是西瓜,又是苹果,还是梨,type中以 1,3,4 的格式存储。那我们如何用sql查找所有type中有4的梨的数据呢??原创 2022-11-28 10:55:17 · 1855 阅读 · 0 评论 -
MySQL中for update的作用和用法
for update是一种行级锁,又叫排它锁。一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行。如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式锁表,一直到提交或复原该事务为止。行锁永远是独占方式锁。执行提交(COMMIT)语句退出数据库(LOG OFF)程序停止运行。原创 2022-09-23 20:58:16 · 1327 阅读 · 0 评论 -
MySQL Innodb表共享空间损坏无法启动
线上数据库服务器上mysql运行一段时间了,突然出现了异常:启动mysql后随即就又关闭了,mysql服务启动失败!!查看mysql错误日志如下:160920 22:41:41 mysqld_safe Starting mysqld daemon with databases from /home/MysqlData/2016-09-20 22:41:41 0 [Note] /Data/app/mysql5.6.25/bin/mysqld (mysqld 5.6.25-log) s.原创 2022-02-15 17:28:17 · 1428 阅读 · 0 评论 -
Mysql给root开启远程访问权限
MySql出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问,所以需要给root账户新增一个远程访问权限。1.链接远程服务器,或者使用远程服务器上的数据库工具mysql -u root -p;use mysql;输入查询语句可以看到mysql只开起了本地访问权限:select User,authentication_string,Host from user;2.解决方法:给新增权限用户设置的密码123446,%代表所有主机,也可以具体到..原创 2021-12-22 10:01:03 · 13672 阅读 · 4 评论 -
mysql 查询当天、本周,本月,上一个月的数据
今天select * from 表名 where to_days(时间字段名) = to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1近7天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)近30天SELECT * FROM 表名 where DATE_SU原创 2021-03-10 19:02:49 · 126 阅读 · 0 评论 -
异构数据库、异构数据源、分布式数据库三者的辨析区别
异构数据库:HDB Heterogeneous DataBase 异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库系统的异构性主要体现在以下几个方面:计算机体系结构的异构 各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中。 基础操作系统的异构 各原创 2021-01-06 10:47:51 · 2183 阅读 · 0 评论 -
建立数据库索引的优缺点,分析一张表上如何建立索引
1、表的主键、外键必须有索引;2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:A、正确选择复合索引中的主列字段,一般是选择性较好的字段;B、复合索引的几个字段是否经常同时...原创 2020-09-04 23:09:14 · 281 阅读 · 0 评论 -
数据库和数据表 建立索引的原则
数据库建立索引的原则1,确定针对该表的操作是大量的查询操作还是大量的增删改操作。2,尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。3,尝试建立复合索引来进一步提高系统性能。修改复合索引将消耗更长时间,同时,复合索引也占磁盘空间。4,对于小型的表,建立索引可能会影响性能5,应该避免对具有较少值的字段进行索引。6,避免选择大型数据类型的列作为索引。索引建立的原则索引查询是数据库中重要的记录查询方法,要不要进入索引以及在...原创 2020-09-04 23:07:05 · 536 阅读 · 0 评论 -
索引失效的原因以及解决索引失效方法
一.准备工作创建student表,id是主键创建复合索引 1 create index idx_name_age on student(name,age); 查看索引 1 show index from student; 二.索引失效原因1.全值匹配我最爱 1 explain select * from student where name = '张三' and age原创 2020-09-04 23:03:50 · 6686 阅读 · 1 评论 -
缓存和数据库的数据同步和一致性
首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。文章结构本文由以下三个部分组成1、讲解缓存更新策略2、对每种策略进行缺点分析3、针对缺点给出改进方案正文先做一个说明,从理论..原创 2020-08-28 07:54:42 · 876 阅读 · 1 评论 -
如何理解 悲观锁与乐观锁
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之.原创 2020-08-28 07:36:16 · 212 阅读 · 0 评论 -
MongoDB 应用场景 ?
如:案例1用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用MongoDB。 用在一些第三方信息的获取或者抓取,因为MongoDB的schema-less,所有格式灵活,不用为了各种格式不一样的信息专门设计统一的格式,极大的减少开发的工作。案例2mongodb之前有用过,主要用来存储一些监控数据,No schema 对开发人员来说...原创 2019-09-17 21:41:23 · 480 阅读 · 0 评论 -
Redis,Memcache,MongoDb 优点和区别
总结:Redis相比memcached有哪些优势?(1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型(2) redis的速度比memcached快很多(3) redis可以持久化数据(4)Redis支持数据的备份,即master-slave模式的数据备份。(5)、使用底层模型不同它们之间底层实现方式 以及与客户端之间...原创 2019-09-17 21:36:25 · 450 阅读 · 0 评论