青云博客 记录、分享

归档

2024 年 04 月

数据库事务是指一系列数据库操作的逻辑单元,这些操作要么全部成功执行,要么全部回滚。它的目的是确保数据的一致性和完整性。事务具备4大特性,即原子性、一致性、隔离性和持久性: 原子性:事务中的所有操作要么全部执行成功,要么全部回滚到事务开始前的状态。如果在事务执行期间发生错误,系统将回滚所有已执行的操作
MySQL支持以下四个事务隔离级别: 读未提交:最低的隔离级别。事务可以读取到其他事务尚未提交的数据,可能会出现脏读、不可重复读和幻读问题。 读已提交:事务只能读取到已经提交的数据。但在同一事务中,多次读取同一行的数据结果可能会不一致,可能会出现不可重复读和幻读问题。 可重复读
1. SQL语句优化 1.1. 准备工作: 1.1.1. 创建student表: DROP TABLE IF EXISTS student; CREATE TABLE student ( id int(10) NOT NULL AUTO_INCREMENT COMMENT '序号', stu
索引失效是指在使用索引进行查询时,索引无法发挥作用,导致查询性能下降。常见的导致索引失效的情况有以下几种: 不满足索引列顺序:如果查询条件中的列顺序与索引列的顺序不一致,索引可能无法被使用。例如,一个联合索引(A, B),如果查询条件只包含了B列而没有A列,那么这个索引就无法被利用。 使用函数或表达
针对SQL慢查询,可以考虑以下一些优化措施: 优化查询语句结构:检查是否存在冗余的操作、重复的子查询、不必要的排序、大量的JOIN操作等。优化查询语句的结构和逻辑,减少不必要的数据读取和计算。 添加合适的索引:确保查询中涉及的列都有适当的索引,并且查询条件能够充分利用索引。通过使用适当的索引,提高查
要查询慢SQL产生的原因,可以采取以下4个步骤: 启用慢查询日志:在MySQL配置中启用慢查询日志,这样可以记录执行时间超过阈值的查询语句。通过分析慢查询日志,可以找到执行时间较长的SQL语句。 使用EXPLAIN分析执行计划:对于慢查询的SQL语句,使用EXPLAIN命令来查看其执行计划。通过分析
CHAR和VARCHAR的区别可以总结如下: 存储方式:CHAR是固定长度的字符类型,而VARCHAR是可变长度的字符类型。 占用空间:CHAR会以固定的长度存储数据,不论实际存储的字符数目,而VARCHAR则根据实际需要的空间动态分配存储。 尾随空格:
并发事务可以带来以下几个问题: 脏读(Dirty Read):一个事务读取了另一个事务未提交的数据。假设事务A修改了一条数据但未提交,事务B却读取了这个未提交的数据,导致事务B基于不准确的数据做出了错误的决策。 不可重复读(Non-repeatable Read):一个事务在多次读取同一数据时,得到
在MySQL中记录货币金额,一般推荐使用DECIMAL字段类型。 DECIMAL字段类型用于存储精确的定点数值,可以指定总共的位数和小数点后的位数。这使得它非常适合用于存储货币金额,因为货币金额通常需要精确到小数点后几位。 以下是一个示例创建DECIMAL字段类型的语句: CREATE TABLE
介绍索引下推 索引下推(INDEX CONDITION PUSHDOWN,简称 ICP)是在 MySQL 5.6 针对扫描二级索引的一项优化改进。总的来说是通过把索引过滤条件下推到存储引擎,来减少 MySQL 存储引擎访问基表的次数以及 MySQL 服务层访问存储引擎的次数。ICP 适用于 MYIS
上一页 下一页