MySQL 事务介绍及使用方法

MySQL

事务就是一组原子性的 SQL 语句,或者说一个独立的单元。可以理解为一个事务对应的是一组完整的业务(一组SQL),这个事务中的一切操作要么都成功要么都失败,只要有一个操作失败了,那么整个事务操作都将回滚到事务开始前

辰风沐阳 阅读 2042 2022-06-08

MySQL 事务特性和事务隔离级别

MySQL 面试题

MySQL 中的事务就是一组原子性的 SQL 语句,或者说一个独立的单元。MySQL 事务四大特性:原子性,一致性,隔离性,持久性,简称 ACID 特性。MySQL 事务的四种隔离级别: 读未提交,读已提交,可重复读,可串行化。

辰风沐阳 阅读 4784 2022-05-19

MySQL 索引用法详解

MySQL

MySQL 索引是加速数据检索的核心数据结构,其作用类似于书籍目录,可避免全表扫描,显著提升查询效率。索引类型包括 B+ 树索引(主流)、哈希索引(特定场景)、聚簇索引(数据与索引存储在一起)和非聚簇索引(需回表查询)。逻辑功能上分为普通索引、主键索引、唯一索引等。索引虽能提升查询速度,但会增加磁盘空间占用并降低增删改操作效率。适合建立索引的列包括高频查询条件列、表连接关联列、排序分组列和高区分度列;而区分度极低、频繁更新或很少查询的列则不适合。主键查询最快因其直接存储完整行数据,无需回表。MySQL 采用 B+ 树而非哈希索引,因其在磁盘I/O效率和功能全面性(支持范围查询、排序等)上更优。

辰风沐阳 阅读 495 2022-05-16

MySQL 慢查询详解

MySQL 面试题

常见面试题:如何从一个大项目中,迅速定位执行速度慢的 SQL 语句?此时可以使用慢查询定位 SQL 语句。慢查询,故名思义,就是在日志中记录运行比较慢的 SQL 语句,是指所有执行超过 long_query_time 参数设定的时间阈值的 SQL 语句查询

辰风沐阳 阅读 2028 2022-05-14

mysql 数据库设计三大范式

MySQL

设计表的依据,按照范式设计出来的表,不会出现数据的冗余。数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构清晰的;反之则是乱七八糟,不仅会给开发人员制造麻烦,还可能存储了大量冗余数据

辰风沐阳 阅读 1830 2022-05-14

MyISAM 和 InnoDB 的区别

MySQL 面试题

MySQL 的存储引擎其实就是如何存储数据、如何建立索引、如何查询和更新数据等技术的实现方法。事务和外键:MyISAM 强调的是性能,它的执行速度比 InnoDB 更快,但是不支持事务和外键功能;InnoDB 支持事务和外键等高级数据库功能

辰风沐阳 阅读 1794 2022-05-08

Redis 缓存穿透、击穿、雪崩问题

数据库 面试题 Redis

本文系统分析了缓存系统中的三大核心问题:穿透、击穿和雪崩。缓存穿透指请求查询不存在的数据,解决方案包括参数校验、缓存空值和布隆过滤器;缓存击穿是热点 Key 失效导致的高并发冲击,可通过互斥锁或逻辑过期策略解决;缓存雪崩源于大量 Key 同时失效,建议采用随机过期时间、多级缓存和限流降级机制。文章通过对比表格清晰展示了三种问题的区别与应对策略,为构建高可用缓存系统提供了系统性解决方案。

辰风沐阳 阅读 518 2022-03-01

mysql 函数: find_in_set()、instr()

MySQL 数据库

在文章表 article 中有个标签字段 tags,一个文章可以有多个标签, 标签 id: 1 html 2 css 3 javascript, tags 以 1,2,3 的格式存储标签,那么我们可以使用 find_in_set 查找出 tags 中有 1 的标签

辰风沐阳 阅读 2058 2021-12-18

MySQL5.7 中使用 group by 报错 this is incompatible with sql_mode=only_full_group_by

MySQL TP6.0

这个错误发生在mysql 5.7 版本及以上版本,5.7版本默认的sql_mode配置中包含 `ONLY_FULL_GROUP_BY`,这个配置严格执行了"SQL92标准"。解决方案: 去除 sql_mode 中的 only_full_group_by

辰风沐阳 阅读 2615 2021-08-28

Redis 可视化管理工具

Redis

本记录一些优秀的 Redis 可视化管理工具,提供在 Windows、MacOS 平台的安装包,体积小,完全免费。

辰风沐阳 阅读 3170 2021-04-11