mysql
文章平均质量分 66
Abzz
生命啊,就该璀璨如花!
展开
-
深入了解 MySQL 中的 Metadata Lock(MDL)
Metadata Lock(MDL)是一种用于保护数据库对象(如表)在进行结构性操作时的一致性的锁机制。它保证在进行涉及表结构的操作(如修改表结构、删除表等)时,表的结构不会被其他并发操作修改或访问。Metadata Lock(MDL)在 MySQL 中扮演着至关重要的角色,确保在进行表结构操作时数据的一致性和完整性。通过了解 MDL 的工作机制、如何查看当前的 MDL 锁以及如何解决常见问题,你可以更好地管理 MySQL 数据库中的并发操作和性能优化。原创 2024-08-28 14:40:38 · 1178 阅读 · 0 评论 -
MySQL触发器(Trigger)详解及使用
在SQL中,我们可以使用new得到修改后的row,使用old得到修改前的row。通过new、old可以获取具体的字段,比如:new.username可以得到修改后的username,old.username可以得到修改前的username。触发器(Trigger)是MySQL数据库提供的一种数据库对象,用于在对表数据进行更改(插入、修改、删除)时自动执行预先定义的动作。说明:我将数据表对象转换成json字符串,这样更通用,更合理一些。以下我们就拿根据表数据变化记录变化日志为例子,深入学习一下。原创 2024-08-28 09:21:01 · 339 阅读 · 0 评论 -
MySQL存储过程深入指南
存储过程(Stored Procedure)是预先编译并存储在数据库中的一组SQL语句。通过存储过程,我们可以将一系列操作封装起来,作为一个单元进行调用。存储过程不仅可以简化复杂的操作,还可以提高性能、增强安全性和减少网络流量。存储过程是MySQL中一个强大的功能,能够有效提升应用程序的性能和维护性。通过本文的介绍,希望你能够掌握存储过程的创建、调用、管理和优化方法,在实际工作中灵活运用存储过程,提高数据库操作的效率和安全性。原创 2024-08-20 15:47:17 · 930 阅读 · 0 评论 -
优化 SQL 查询性能:深入理解 EXPLAIN 命令
通过 EXPLAIN 命令,我们可以深入了解查询的执行计划,并找到性能瓶颈。使用 EXPLAIN 可以帮助我们做出优化决策,例如添加适当的索引、优化排序操作,以及减少不必要的表扫描。掌握这些技能,可以显著提升 SQL 查询的性能,确保数据库的高效运行。“优化不是一个目标,而是一个过程。原创 2024-08-15 09:56:58 · 996 阅读 · 0 评论 -
MySQL 中主键索引的页分裂:深入探讨
在 MySQL 的 InnoDB 存储引擎中,页(Page)是数据存储的基本单位。每个页通常包含了多个数据行或索引项。当对表执行插入或更新操作时,数据需要被存储在这些页中。页分裂是指在插入新数据时,原本已经满了的页会被分裂成两个页的过程。这个过程是为了保持 B+ 树索引的平衡性和高效性。页分裂的发生使得数据在新的页上继续存储,从而避免页的过度拥挤。页分裂是 MySQL InnoDB 存储引擎中 B+ 树索引的重要维护机制,它确保了数据结构的平衡和查询的高效性。原创 2024-08-14 11:20:11 · 598 阅读 · 0 评论 -
MySQL根据binlog恢复数据库相关命令
【代码】MySQL根据binlog恢复数据库相关命令。原创 2023-11-13 14:25:02 · 199 阅读 · 0 评论 -
深入学习MySQL索引:优化数据库性能的关键
MySQL索引是一种用于提高数据库性能和优化数据检索过程的关键技术。无论是在小型应用还是大型企业级系统中,索引都扮演着重要的角色,对于快速、高效地检索和操作数据库非常关键。MySQL索引可以理解为类似于书籍目录的结构,它们存储了指向数据库中特定数据的指针,使得查询可以更迅速地定位到所需的数据行,而不必全表扫描。这就像是在一本书中使用索引页来快速找到所需内容,而不是逐页翻阅整本书一样。通过创建适当的索引,可以显著提高数据库的性能和查询效率。原创 2023-07-20 14:08:17 · 194 阅读 · 1 评论 -
MySQL Explain命令参数参考
当你在MySQL中执行一条查询语句时,可以使用"EXPLAIN"关键字来获取查询执行计划的详细信息。原创 2023-07-19 10:51:26 · 272 阅读 · 0 评论 -
MySQL MVCC学习总结
在Repeatable Read隔离级别,在事务开始前创建ReadView,在本事务中所有查询都用这一个ReadView,不会再次去创建ReadView。MVCC只有在事务隔离界别:读已提交(Read Commited)和可重复读(Repeatable Read)的隔离接别下工作。在Read Commited隔离级别,每次查询都需要创建新的ReadView。这个东西还是有些抽象,有些绕,大家多花点时间肯定能想通,能搞明白的!MVCC是借助UndoLog和ReadView实现的。原创 2023-07-07 11:28:07 · 259 阅读 · 0 评论 -
MySQL数据库事务隔离级别学习总结
1.以上事务级别按照数据一致性排序是由低到高,但是按照并发性能排序是由高到低。不可重复读:指同一个事务内多次读取数据会出现不一致,重点强调数据的修改。幻读:指同一个事务内按照相同查询条件获取到的数据不一致,重点强调数据的插入和删除。原创 2023-07-04 17:10:15 · 266 阅读 · 0 评论 -
MySQL教程之MySQL定时备份数据库
MySQL教程之MySQL定时备份数据库一、MySQL数据备份1.mysqldump命令备份数据在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法:#MySQLdump常用mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql2.mysqldump常用操作示例2.1备份全部数据库的数据和结构mysqldu转载 2021-07-22 16:03:49 · 178 阅读 · 0 评论 -
JPA如何优雅的拼接动态查询条件
由于之前开发持久层用户都是mybatis,所以体会不了jpa动态拼接查询条件的痛楚。关于JPA动态拼接查询条件的解决方案dao层继承JpaSpecificationExecutor来实现通过@query方式去实现我个人是更加习惯取用第二种方式,大家可以看看以下代码片段:@Query("select c from Customer c where (:name is null or c...原创 2019-09-04 14:29:20 · 7974 阅读 · 6 评论 -
mysql查询结果编号
问题描述项目有这样的需求:需要给每条数据进行编号然后导出excel,处理这个问题有两种方法:(1) 遍历数据库查询结果,对每一个查询结果进行编号; (2) 直接在mysql里面对数据进行编号;解决办法分析第一种在java中进行编号,数据量小的时候不影响系统性能,如果数据量变大,遍历一次可能就会影响用户体验。个人比较偏向于第二种解决办法,具体mysql语句如下:SELECT @row := @row原创 2016-12-09 11:31:39 · 1135 阅读 · 0 评论 -
关于mysql字符类型的笔记
1.VARCHAR类型并不是越长越好说明:举个栗子,用varchar(5)和varchar(200)去存储“Hello”时空间开销是一样的,更长的列会消耗更多的内存,MySql通常会分配固定大小的内存块来保存内部值。所以,最好的做法就是需要多少就分配多少。2.ENUM类型说明:枚举类型的最终存储类型为整数,而不是字符串;还有,枚举枚举字段是按照内部存储的整数而不是字符串进行排序的,这样可能就会出现非原创 2016-11-24 09:35:13 · 461 阅读 · 0 评论 -
关于mysql中字符集和排序规则说明
1.关于字符集所为字符集,就是用来定义字符在数据库中的编码的集合。常见的字符集有:utf8(支持中文)和AccIS(不支持中文)2.关于排序规则数据库中的排序规则用来定义字符在进行排序和比较的时候的一种规则。常见的如下: (1) utf8_general_ci 不区分大小写,utf8_general_cs 区分大小写 (2) utf8_bin 规定每个字符串用二进制编码存储,区分大小写,可以直接原创 2016-11-01 16:24:26 · 8898 阅读 · 5 评论