JAVA开发+关系型数据库-MySQL
文章平均质量分 69
MySQL数据库知识
涵冰...
学无止境
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据库锁升级问题
在 MySQL 的 InnoDB 存储引擎中,锁升级是指将行锁升级为表锁的过程。这种情况通常会影响数据库的并发性能,降低系统的效率。锁升级的主要原因包括索引的使用情况和查询的范围。原创 2024-11-20 11:07:21 · 570 阅读 · 0 评论 -
什么是索引覆盖,索引下推,回表
它发生在使用非聚集索引(Secondary Index)进行查询时,索引中只包含了索引列的副本以及指向对应主键的引用。当一个查询的所有数据需求都可以通过索引中的数据来满足时,就发生了索引覆盖。的一个关键要求是查询中的所有列都必须在索引中。如果查询引用了索引中没有的列,那么就无法实现索引覆盖。这意味着查询涉及的所有列都包含在索引中,从而避免了第二次查询。在设计索引时,应该考虑查询模式,以便最大限度地利用索引覆盖和索引下推的优势。列有一个普通索引,查询会首先使用这个索引。在MySQL中,如果有一个表,其中。原创 2024-10-29 03:00:00 · 1041 阅读 · 0 评论 -
聚簇索引和非聚簇索引
很简单记住一句话:找到了索引就找到了需要的数据,那么这个索引就是聚簇索引,所以主键就是聚簇索引,修改聚簇索引其实就是修改主键。(索引就是我们要找的数据)索引的存储和数据的存储是分离的,也就是说找到了索引但没找到数据,需要根据索引上的值(主键)再次回表查询,非聚簇索引也叫做辅助索引。(找到了索引还要根据索引查询数)原创 2024-10-29 09:00:00 · 311 阅读 · 0 评论 -
插入数据时遇到主键重复问题怎么办?——insert into数据库技巧 (insert into主键重复数据库)
在使用数据库时,主键的作用非常重要,它可以确保数据的唯一性,避免重复插入数据。针对这种情况,我们可以采取忽略重复行、更新重复行、指定插入某些数据等处理方式,有效避免主键重复的问题。另外,在设计数据库表时,应该合理设计主键,并为需要唯一性约束的字段添加唯一索引,以及将主键设置成自增长,这样可以有效地避免主键重复的问题。但是在插入数据的过程中,有时候会遇到主键重复的问题,当这种情况发生时,该怎么处理呢?当我们执行插入数据的操作时,如果插入的数据的主键已经在表中存在,就会出现主键重复的情况。原创 2024-10-22 21:51:13 · 3999 阅读 · 0 评论 -
MySQL的多列索引问题:最左匹配原则
最左匹配原则是数据库索引设计中的一个重要概念,尤其是在使用MySQL数据库时。这个原则指出,在创建多列索引时,索引会从最左边的列开始匹配,直到遇到范围查询(如>、原创 2024-10-22 12:02:03 · 822 阅读 · 0 评论 -
面试题:MySQL为什么一定要有一个主键
有主键查询速度会更快。如果没有主键,那么这些表就会依赖一个全局序列计数器生成的ROW_ID来构造一个隐式的聚簇索引,就会导致竞争引起性能问题。没有主键,更新或删除表中特定行会很困难。原创 2024-10-18 10:21:10 · 908 阅读 · 0 评论 -
MySQL中的binlog redolog和undolog的区别和作用
MySQL中的Redo Log(重做日志)、Undo Log(撤销日志)和Binlog(二进制日志)是三种不同的日志类型,它们在数据库中扮演不同的角色和功能。原创 2024-10-17 08:17:16 · 1014 阅读 · 1 评论 -
Spring事务的底层原理
事务其实是一个并发控制单位,是用户定义的一个操作序列,这些操作要么全部完成,要不全部不完成,是一个不可分割的工作单位原创 2024-10-03 18:49:09 · 1772 阅读 · 1 评论 -
MySQL集群实现方式之主从异步复制
是MySQL的原生功能,这也是最简单最有效的方式,既然单点MySQL扛不住,那多来几台不就完事了,主从复制说的就是这种方案,如下图,一主两从,主接收写请求后同步给从,这种方案天生就是读写分离的。随着公司业务的发展,对数据库的要求越来越高,以前的单机MySQL肯定是玩不转了,亟需升级成MySQL集群,这是一个公司在业务发展时不得不面临的问题。的,Master只需要写入Binary Log就不管了,不用等待Slave的确认。不难看出,这种方式天生就是。原创 2024-08-16 16:13:15 · 553 阅读 · 0 评论 -
数据库分库分表的介绍
概览 :: ShardingSphere (apache.org)ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。Sharding-JDBC是ShardingSphere的第一个产品,也是ShardingSphere的前身。原创 2024-08-16 09:52:33 · 1798 阅读 · 0 评论 -
数据库行转列
1、使用case…when…then2、使用SUM(IF()) 生成列3、使用SUM(IF()) 生成列 + WITH ROLLUP 生成汇总行4、使用SUM(IF()) 生成列,直接生成汇总结果,不再利用子查询5、使用SUM(IF()) 生成列 + UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total6、动态查询列值不确定的情况7、合并字段显示:group_concat()原创 2024-08-16 10:08:32 · 1693 阅读 · 0 评论 -
一种软删除实现的枚举模型对象
软删除,也称为逻辑删除或标记删除,并不是真正的从数据库中删除数据,而是通过设置一个字段(如isDelete或state)来标记删除状态。当该字段为0时,表示数据未被删除;当该字段为1时,表示数据已被删除。这种删除方式的优势在于数据可恢复性较高,只需要根据标记进行恢复即可。软删除的优点:数据恢复:软删除可以保留被删除数据的备份,方便在需要时进行数据恢复。历史记录:软删除可以保留删除操作的历史记录,有助于审计和追踪数据的变化。原创 2024-03-07 16:13:45 · 331 阅读 · 0 评论 -
悲观锁和乐观锁
高并发的场景下,乐观锁相比悲观锁来说,不存在锁竞争造成线程阻塞,也不会有死锁的问题,在性能上往往会更胜一筹。乐观锁总是假设最好的情况,认为共享资源每次被访问的时候不会出现问题,线程可以不停地执行,无需加锁也无需等待,只是在提交修改的时候去验证对应的资源(也就是数据)是否被其它线程修改了(具体方法可以使用版本号机制或 CAS 算法)。当多个线程同时使用 CAS 操作一个变量时,只有一个会胜出,并成功更新,其余均会失败,但失败的线程并不会被挂起,仅是被告知失败,并且允许再次尝试,当然也允许失败的线程放弃操作。原创 2024-03-11 14:27:23 · 1192 阅读 · 0 评论 -
索引失效的介绍和避免方法
在关系数据库 中,,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。原创 2024-03-11 20:46:49 · 717 阅读 · 0 评论 -
mysql日期格式化-DATE_FORMAT函数
在MySQL中,可以使用DATE_FORMAT函数对日期进行格式化。该函数可以将日期类型的数据按照指定的格式转换为字符串。原创 2024-01-25 10:48:19 · 1034 阅读 · 0 评论 -
mysql服务器常用的命令
4,当前账号设置密码(可以一直设置,新密码会覆盖旧密码)1,关闭数据库服务(数据库名称因设置而不同)2,启动数据库服务(数据库名称因设置而不同)6,查看数据库的账号和密码。3,进入数据库服务去器。5,当前账号取消密码。原创 2023-12-20 13:40:47 · 524 阅读 · 0 评论 -
安装并配置MySQL数据库服务器
个人认为MySQl数据库目前推荐的两个版本系列为5.6.51和8.系列。至于我们为什么要下载两个版本呢?是因为官方在数据库下载的结构上有所改变。5.系列:为MySQL官方25周年发布,5.6.51又是5.系列最后一个版本,所以比较问安全稳定8.系列:8.系列就是目前最新版本,有新增功能,有需求的可以学习使用原创 2023-08-02 12:39:26 · 1275 阅读 · 3 评论 -
Druid数据库连接池的简单介绍和使用
Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入 了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。原创 2023-12-09 09:13:23 · 1763 阅读 · 1 评论 -
MySQL数据库服务器的简化与配置(此操作针对开发人员,不推荐运维人员)
简化数据库只是为了让数据库文件更小更简单。对于开发人员来说是一个不错的选择,h是将数据库只用于简单的数据操作,但是对于运维人员来说就是灾难。 建议每次删除前可以备份,提高我们的容错率。原创 2023-08-02 20:15:50 · 372 阅读 · 2 评论 -
JDBC连接数据库
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种 关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建 更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。原创 2023-08-11 15:17:08 · 752 阅读 · 2 评论 -
MySQL查看当前数据库视图-SQL语句
查看当前数据库内的视图show full tables where table_type原创 2023-08-08 15:31:16 · 1382 阅读 · 0 评论
分享