
MySQL
文章平均质量分 81
@程序员小袁
你说 然后呢 憋说话,让我静静
展开
-
分布式ID生成器:雪花算法原理与应用解析
雪花算法凭借其简单、高效以及去中心化的特性,已经成为分布式ID生成领域的主流方案之一。美团Leaf、百度uid-generator、滴滴TinyId以及MyBatis-Plus等众多开源项目和产品均在生产实践中验证了其可靠性。在设计分布式系统时,选择合适的ID生成方案需要结合业务场景、系统规模以及扩展性需求。如果要求ID严格有序且高效生成,雪花算法无疑是一个不错的选择;但同时也要注意时钟同步与机器ID分配等问题,合理采用自动化分配和容错策略是提升系统可靠性的关键。原创 2025-03-27 14:08:34 · 959 阅读 · 0 评论 -
打破传统查询瓶颈:深入解析MySQL 8.0 LATERAL JOIN的实战价值
LATERAL(横向关联)是SQL标准中的语法关键字,用于标记FROM子句中的派生表(Derived Table)可以横向引用左侧表的列。“针对主表每一行数据,触发一次子查询计算,并将结果动态拼接成结果集”这种逐行联动的特性,使得子查询能像函数一样接收主表的参数输入,完美解决了传统子查询无法引用外层字段的痛点。推荐场景不适用场景主表每行需触发动态子查询(如TopN、聚合)子查询完全独立,无需引用主表字段需要消除多层嵌套子查询数据量极小,传统方法已足够高效对复杂分页、JSON字段展开有需求。原创 2025-03-24 21:24:27 · 955 阅读 · 0 评论 -
MyBatis-Flex、MyBatis-Plus 与 Fluent-Mybatis 的比较分析
MyBatis 是一个灵活且易于扩展的持久层框架。随着企业级项目需求的增长,传统 MyBatis 在面对 CRUD 操作、复杂查询时往往需要编写大量 XML 或注解代码。:以增强 MyBatis 的 CRUD 功能和语法糖著称,内置分页、代码生成、性能分析等功能。:在简化配置与开发的同时,更注重灵活性与扩展性,支持多种查询方式和动态 SQL 构造。:提供流式 API,让编写查询更加直观、优雅,降低了 SQL 编写的门槛。MyBatis-Flex 主要目标是减少冗余代码,提升开发效率。灵活配置。原创 2025-03-24 21:23:52 · 1087 阅读 · 0 评论 -
MySQL闪回恢复:轻松应对数据误删,数据安全有保障
传统的数据恢复方法可能涉及复杂的操作,如全量备份和增量备份的恢复。本文将详细介绍MySQL闪回恢复的原理、配置和使用方法,帮助您轻松应对数据误删,确保数据安全。MySQL的闪回恢复功能为数据误删提供了便捷的解决方案。通过配置binlog和相关参数,并结合闪回表和闪回数据库命令,可以轻松应对数据误删,确保数据安全。在实际应用中,建议定期进行数据备份,并结合闪回恢复功能,为数据库管理提供双重保障。对于闪回恢复,推荐使用row格式,因为它记录了最详细的数据变更信息。这条命令将整个数据库恢复到删除之前的状态。原创 2024-11-25 10:22:12 · 592 阅读 · 0 评论 -
MySQL 全方位超全优化详细清单
通过以下步骤,可以有效使用EXPLAIN编写并执行 EXPLAIN 查询。分析 EXPLAIN 输出,关注 type、possible_keys、key 和 Extra 列。根据输出信息优化索引、查询条件和表结构。重新执行 EXPLAIN,验证优化效果。原创 2024-10-27 19:50:57 · 738 阅读 · 0 评论 -
后端程序员必备:15个MySQL表设计的经验准则
若无特殊理由,建议将字段定义为 NOT NULL。原因如下:可以防止出现空指针问题。NULL 值存储需要额外空间,且会使比较运算更为复杂,让优化器难以优化 SQL。NULL 值可能导致索引失效。若将字段默认设置成一个空字符串或常量值不影响应用逻辑,可将该字段设置为 NOT NULL。原创 2024-10-17 21:25:43 · 834 阅读 · 0 评论 -
MySQL索引-聚簇索引和非聚簇索引
聚簇索引也称为主键索引,它是一种按照数据的物理存储顺序来组织的索引。在 InnoDB 存储引擎中,表的数据行实际上是存储在聚簇索引的叶子节点中。- 这意味着,通过聚簇索引可以直接定位到表中的数据行,而不需要进行额外的查找。- 非聚簇索引也称为辅助索引,它是一种独立于数据存储的索引结构。在非聚簇索引中,叶子节点存储的是索引列的值和对应的主键值。原创 2024-09-15 08:24:16 · 375 阅读 · 0 评论 -
MySQL索引的失效情况列举
之前有看过尚硅谷的视频资料,感觉口号挺好的,便于记忆。Like百分写最右,覆盖索引不写星;VAR引号不可丢,SQL高级也不难!不等空值还有or,索引失效要少用;全值匹配我最爱,最左前缀要遵守;带头大哥不能死,中间兄弟不能断;索引列上少计算,范围之后全失效;原创 2024-08-19 09:30:52 · 1300 阅读 · 0 评论 -
MySQL各个版本的下载方法
MySQL的每个版本在官网都是有存档的1.进入官网2.找到下载,社区版3.找到存档版本4.找到inster5.愉快的下载原创 2019-08-18 20:15:08 · 1332 阅读 · 0 评论 -
sql语句union用法,根据字段顺序进行合并,而不是字段名称
字段名称可以不同,字段数量、数据类型、顺序必须相同。这样查出来的数据才是对的。如果字段数量不同但是如果字段名称不同(as 别名也算),数据类型不同,在这个时候,查询出来的数据是以左边的表为主的,也就是名字会变成左边的名字,数据类型会变成文本的数据类型下面是w3school的说明:UNION 操作符用于合并两个或多个 SELECT 语句的结果集。需要注意...原创 2019-07-11 18:14:43 · 2490 阅读 · 0 评论 -
MySQL学习之一:基础查询,排序查询,条件查询!!!
MySQL学习之一:基础查询,排序查询,条件查询!!! 大学学的是sqlserver2008,出来才发现大多用的是MySQL,好在语法都是一样的,基础也就是有的。先唠叨两句,为什么大多用MySQL呀,跨平台性,开源,部分收费,对于微软的数据库,只能运行在windos上,这也就是一个局限性了,我们要的是部署在服务器的数据库,也就是linux上部署数据库,虽说微软也有服务器上运行的系统,但...原创 2018-08-21 18:16:56 · 3029 阅读 · 1 评论 -
MySQL进阶7:连接查询
#进阶7:连接查询(有点理解)/*一、理解查询的字段或条件来自于多张表,这个时候则需要使用多表连接查询,简称连接查询 笛卡尔乘积的现象: 表1行数m行,表2行数n行,结果为m*n行如何产生的? 没有添加连接条件如何解决? 添加连接条件 如何添加连接条件?sql92语法: 内连接: 等值连接 ...原创 2018-08-23 16:32:09 · 419 阅读 · 0 评论 -
MySQL之分组查询
#进阶6:分组查询/*语法:(执行顺序)select 分组函数,分组的字段 -- ⑤from 表名 -- ①where 分组前的筛选条件-- ②group by 分组的字段,... -- ③having 分组后的筛选条件 -- ④order by 排序列表 --⑥特点:筛选可以分为分组前筛选和分组后筛选 ...原创 2018-08-23 15:22:38 · 408 阅读 · 0 评论 -
MySQL之函数(单行函数、分组函数)
##进阶函数/*调用语法:select函数名(实参列表);分组函数和单行函数的区别: 单行函数:将一个数据进行处理,返回一个值 分组函数:将虚拟表看做一个组,处理一组数据,返回一个值常见的分组函数: sum(字段):求该字段的所有值的和 avg(字段):求该字段的平均值 max(字段):求最大值 min(字段):求最小值...原创 2018-08-23 14:26:03 · 2149 阅读 · 0 评论 -
MySql之常见函数(单行函数)
#进阶4:常见函数(单行函数)/*函数:类似于“方法”,都是为了完成特定的功能,将内部实现细节隐藏,对外暴露函数名关心的是:函数名和函数功能下面是用到的数据库,可以自己执行一下!!!!再去做案例/*SQLyog Ultimate v10.00 Beta1MySQL - 5.5.15 : Database - myemployees***********************...原创 2018-08-22 13:59:41 · 1075 阅读 · 0 评论