MySQL技术文章
-
MySQL invisible index 试验结束后,用 ALTER TABLE ... ALTER INDEX ... VISIBLE 恢复可见,再通过 IS_VISIBLE、SHOW INDEX 和 EXPLAIN 确认对象状态与执行计划。118 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 数据库 · SQL · MySQL VALUES() 弃用 ON DUPLICATE KEY UPDATE MySQL 行别名 INSERT AS new MySQL upsert INSERT SELECT
MySQL 已将 ON DUPLICATE KEY UPDATE 中用 VALUES() 读取新行字段的写法标记为弃用。本文从库存快照写入场景出发,给出行别名 AS new 的最小改写、INSERT ... SELECT 的不同处理方式,以及上线前应核对的兼容边界。117 收藏 -
从列定义、参数绑定和 EXPLAIN 计划三处排查 MySQL 隐式类型转换,避免字符串列与数字比较导致索引无法高效查找。116 收藏 -
用 MySQL 8.4 的 authentication_policy 规划单因素与多因素账号,说明 caching_sha2_password、旧客户端兼容窗口和上线前登录验收方法。113 收藏 -
通过部门成绩同分示例比较 MySQL ROW_NUMBER 与 DENSE_RANK:前者适合每组固定取 N 行,后者适合保留前 N 个并列档位,并讲清稳定排序、CTE 外层筛选和 NULL 边界。112 收藏 -
MySQL 主从切换后如何确认新主库已经追上指定事务?本文用 GTID 集合和等待函数组织一套可回滚的断点判断流程,覆盖超时、空集合和误判场景。111 收藏 -
MySQL 临时表不会因为事务 COMMIT 自动消失,它绑定创建它的客户端会话;连接池复用时要主动清理,避免旧数据污染下一次请求。110 收藏 -
围绕 MySQL 混合 ASC/DESC 排序说明降序索引避免 filesort 的条件,涵盖多列键序、WHERE 常量、InnoDB 限制、EXPLAIN 验证和索引取舍。110 收藏 -
MySQL GTID 自动定位可让副本按已执行事务集向新源请求缺失事务。本文给出候选源核对、SOURCE_AUTO_POSITION 切换命令、状态验收和已清理 GTID 的处理边界。110 收藏 -
把订单金额、状态和时间关系交给应用层校验,批处理或旁路写入仍可能留下脏数据。本文用 MySQL 8.4 CHECK 约束建立可落地的边界,演示新增约束前的存量检查、失败写入的错误定位、约束命名和回滚步骤,避免一次结构变更卡住发布。109 收藏 -
REPLACE INTO 遇到主键或唯一键冲突时,不是原地更新,而是先删除旧行再插入新行。本文用订单同步场景拆开执行语义、AUTO_INCREMENT、外键级联和更稳妥的替代写法。109 收藏 -
数据库 · MySQL | 1个月前 | 慢查询 · sql优化 · MySQL教程 · mysql explain EXPLAIN ANALYZE sort_buffer_size Using filesort
EXPLAIN 出现 Using filesort 只说明排序没有直接由索引完成,并不等于查询一定很慢。本文用订单列表场景拆开 filesort 的输入行数、排序缓冲区、临时文件和实际耗时,给出可复现的判断与优化顺序。109 收藏 -
MySQL 窗口函数按时间排序遇到并列时,使用 ROW_NUMBER() 配合唯一键补序,并在外层筛选 rn = 1,即可稳定地每组只保留一条结果;文中同时比较 RANK() 与 DENSE_RANK() 的适用边界。109 收藏 -
MySQL 8.4 的 SHOW GRANTS 只看账号时容易漏掉角色携带的权限。本文用 app_read、app_write 和 report_user 拆解角色授予、默认激活、CURRENT_ROLE() 与 SHOW GRANTS ... USING 的核对顺序。107 收藏 -
MySQL 的 IS NULL 可以参与索引范围,但复合索引顺序不能靠 WHERE 条件位置判断。本文用租户与软删除示例说明左前缀、索引选择和 EXPLAIN 复查方法。107 收藏