MySQL技术文章
-
MySQL 的 CREATE TABLE ... SELECT 会默认忽略源表的 INVISIBLE 列;显式选择后列会进入新表但默认变为可见。本文用 CTAS 示例说明如何选择隐藏列、保留隐藏属性,并检查最终结构。266 收藏 -
MySQL 在线 DDL 仍可能在开始和结束阶段等待元数据锁。本文区分 lock_wait_timeout 与 InnoDB 行锁超时,说明 ALGORITHM、LOCK=NONE、会话级等待上限和 metadata_locks 排查方法。266 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 连接池 · 故障排查 · MySQL连接池 CURRENT_ROLE MySQL默认角色 SET DEFAULT ROLE SET ROLE DEFAULT
MySQL 的 SET DEFAULT ROLE 只定义登录或执行 SET ROLE DEFAULT 时应激活的角色,不会追溯修改已打开连接。本文给出当前会话修复、账户核对、连接池刷新和登录变量检查方法。265 收藏 -
MySQL 8.4 的普通 JSON_ARRAYAGG 不保证元素顺序,也没有内置 LIMIT。本文用 ROW_NUMBER、窗口 ORDER BY 和完整窗口帧生成每组固定数量、顺序稳定的 JSON 数组,并说明常见误区。265 收藏 -
MySQL CHECK 约束遇到 NULL 时可能返回 UNKNOWN,而 UNKNOWN 与 TRUE 一样不会触发 CHECK 失败。本文用字段约束对照说明三值逻辑,并给出 NOT NULL 与 CHECK 的显式非空写法。265 收藏 -
MySQL 窗口函数取每组最新记录时,不能只按时间排序;应使用 PARTITION BY 划分分组,在窗口 ORDER BY 中用时间和唯一键组成稳定排序,再根据是否允许并列选择 ROW_NUMBER、RANK 或 DENSE_RANK。265 收藏 -
MySQL 给大表加索引时,ALGORITHM 和 LOCK 决定了变更方式与并发影响。本文用 ALTER TABLE 说明如何预判支持范围、处理元数据锁,并在上线前做可回退的核对。264 收藏 -
MySQL 联合索引不是把多个单列索引简单拼在一起。以 (tenant_id,status,created_at) 为例,查询跳过第一列时通常失去按该联合键直接定位的能力,但最终是否使用索引仍要看谓词、选择性、统计信息和优化器成本。本文用 EXPLAIN 给出判断方法。264 收藏 -
MySQL ST_GeometryN 用于读取 GeometryCollection 中按 1 开始编号的指定几何对象。本文从集合长度、成员提取、WKT 展示和 NULL/非法输入边界入手,给出可直接改写到查询中的 SQL。264 收藏 -
EXPLAIN ANALYZE 能定位排序节点并展示实际耗时,但不会直接标记是否落盘。本文结合同一会话的 Created_tmp_disk_tables、Sort_merge_passes 等状态计数,说明如何判断磁盘临时表和排序归并线索。264 收藏 -
MySQL invisible index 可以在不立即删除索引的前提下模拟它离开优化器候选集的影响。本文用 SHOW INDEX、EXPLAIN 和 use_invisible_indexes 对比查询计划,并说明如何安全回滚。263 收藏 -
订单清理任务执行 DELETE 时,真正拖慢速度的可能不是主表扫描,而是子表外键检查、级联删除和长事务锁范围。本文用订单与明细表的场景拆开执行路径,给出索引核对、分批删除和安全验收方法。262 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 执行计划 · 慢查询 · MySQL EXPLAIN ANALYZE MySQL估算行数实际行数 MySQL执行计划耗时 MySQL慢查询诊断 MySQL TREE执行计划
从 EXPLAIN 基线到 EXPLAIN ANALYZE 实测,按节点对比估算行数、实际行数、迭代耗时和 loops,定位统计信息与访问路径偏差。262 收藏 -
MySQL ST_IsSimple 用来判断几何是否满足简单性规则。本文以 LineString 为主线,说明如何区分正常折线、自相交折线、重复节点和闭合端点,如何理解 0/1 返回值,以及为什么 ST_IsSimple 不能替代 ST_IsValid。262 收藏 -
从 INFORMATION_SCHEMA.ROUTINES 读取 MySQL 存储过程的 DEFINER 与 SECURITY_TYPE,区分账号不存在、对象权限不足和调用方缺少 EXECUTE,再按身份生命周期选择补齐原账号、用专用定义者重建或改用 INVOKER。262 收藏