编写SQL语句的良好习惯至关重要,原因如下:它们提高了查询的清晰度和可读性,使其更易于理解、维护和调试。优化的SQL查询可以显著提升查询效率,减少执行时间和资源消耗。遵循最佳实践可以保障安全性,防止SQL注入攻击,确保敏感数据的安全处理。保持SQL编写的一致性,有助于团队成员之间的有效协作,并支持数据库系统扩展,以应对日益增长的数据量和用户访问。1. 始终使 ......
87
0
0
2024-11-03
作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。正文1. 准备工作确认事务隔离级别为可重复读:show variables like 'transactio ......
97
0
0
2024-11-01
有了PostgreSQL的出现,MySQL的数据库在SQL的处理上的问题一直被人当做有意思的事情来去谈论,实际上每种数据库有自己不同的个性,我们掌握就好,无需特别的进行一些情感上的好恶。MySQL 最近一个同学给我提了一个问题,关于为什么一个简单的语句,并且语句中提取的数据是唯一的一条,而却在下面循环了三次,因为我没有他的数据,也仅仅是看了执行计划和语句,又 ......
77
0
0
2024-11-01
索引简介索引是一个排好序的数据结构,包含着对数据表里所有记录的引用指针,如下图所示。索引文件和数据文件一样都存储在磁盘中,数据库索引的目的是在检索数据库时,减少磁盘读取次数。常见的索引数据结构包括二叉树、红黑树、Hash表、B树,可以通过www.cs.usfca.edu/~galles/vis…可视化学习这些数据结构。比如建立一个二叉树:MySQL中使用的索 ......
112
0
0
2024-10-31
前言在上一篇文章中,我们知道了可重复读的隔离级别采用 MVCC (multi-version concurrency control——多版本并发控制) 机制实现较高的隔离性,确保事务之间的隔离性和一致性。另外,MySQL 在读已提交的隔离级别下也实现了MVCC 机制。那么什么是MVCC?又该如何实现MVCC?MVCC 简介MySQL 中的 MVCC(Mul ......
109
0
0
2024-10-31
前言数据库通常会同时执行多个事务,这些事务可能同时对同一批数据进行增删改查操作,可能会导致脏写、脏读、不可重复读和幻读等问题。这些问题的根本是数据库的多事务并发性问题。为了解决多事务并发问题,数据库引入了事务隔离机制、锁机制和 MVCC 多版本并发控制隔离机制等一系列机制。接下来,小鱼将深入探讨这些机制,帮助各位 uu 们更好地理解数据库内部的执行原理。My ......
95
0
0
2024-10-31
前言本文若未特意说明使用的数据表,均为 MySQL索引(四)常见的索引优化手段 中的示例表。分页业务的索引优化在业务场景中,经常会使用到分页处理,那么sql 实现语句可能如下:SELECT * FROM employees limit 10000,10; 从"employees"表中选取10条数据,跳过前10000条数据,查询结果将返回"employees ......
94
0
0
2024-10-31
Trace 工具简介Trace 是 MySQL 5.6 版本后提供的 SQL 跟踪工具,用于了解优化器 (optimizer) 在选择执行计划时的决策过程,包括表访问方法、各种开销计算和转换等信息。当启用 trace 工具时,可以将跟踪结果记录到 INFORMATION_SCHEMA.OPTIMIZER_TRACE 表中,支持分析以下语句:SELECT、IN ......
106
0
0
2024-10-31
本文索引优化包含对 MySQL索引(三)explain实践,优化 MySQL 数据库查询性能 的一些补充。索引优化创建示例表CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT ......
87
0
0
2024-10-31
Explain工具EXPLAIN is used to obtain a query execution plan (that is, an explanation of how MySQL would execute a query).EXPLAIN 工具能用于获取查询执行计划,即分析 MySQL 如何执行一个 SQL 语句。我们可以通过使用EXPLAIN ......
131
0
0
2024-10-31
首先要声明的就是,千万级数据对于MySQL来说就是不太合理的一个存在。优化MySQL千万级数据策略还是比较多的。分表分库创建中间表,汇总表修改为多个子查询这里讨论的情况是在MySQL一张表的数据达到千万级别。表设计很烂,业务统计规则又不允许把sql拆成多个子查询。在这样的情况下,开发者可以尝试通过优化SQL来达到查询的目的。当MySQL一张表的数据达到千万级 ......
75
0
0
2024-10-29
在一些系统中有时某张表会出现百万或者千万的数据量,尽管其中使用了索引,查询速度也不一定会很快。这时候可能就需要通过分库,分表,分区来解决这些性能瓶颈。一. 选择合适的解决方法1. 分库分表。    分库分表从名字上就明白是需要创建额外的新数据库或新表,可以建在其他的机器上也可以是和当前数据库同一台机器。在优化查询上可能 ......
78
0
0
2024-10-28
目录1、什么是事务?2、介绍下数据库事务?3、并发事务会带来什么问题?3.1、不可重复读和幻读有什么区别?4、数据库隔离级别有哪几种?5、MySQL默认使用隔离级别是啥?6、如何控制并发事务?6.1、锁6.2、MVCC1、什么是事务?事务指的是逻辑上的一组操作,这组操作要么都执行,要么都不执行。最典型的就是转账的例子:老板每个月给你发工资(500元)转账的操 ......
102
0
0
2024-09-14
前天分享了50条MySQL常用脚本,有小伙伴说岳哥怎么突然这么卷?实际上一直都有在学习,只是公众号的算法机制让很多人刷不到,看得人比较少,这才将这些内容分享到各个群和朋友圈,希望能让更多人看到。好了咱们今天继续分享MySQL中一些比较实用的小技巧。1、使用REPLACE INTO来插入或替换数据,避免先删除再插入的操作。REPLACE INTO table_ ......
104
0
0
2024-09-08
花时间整理了50条常用的MySQL脚本,查漏补缺,希望对大家有所帮助。-- 1、插入数据 INSERT INTO example_table (name, age) VALUES ('Alice', 30); -- 2、查询表中所有数据 SELECT * FROM example_table; -- 3、使用 LIMIT 限制结果数量 SE ......
101
0
0
2024-09-08