MySQL技术文章
-
把连接字符集改成 utf8mb4 不会自动改变表和索引,但列字符集迁移可能让索引前缀的字节数重新触及 InnoDB 上限。本文给出区分连接设置、核算前缀和安全迁移的检查方法。344 收藏 -
从 INSTANT、INPLACE、COPY 和 LOCK 四个维度,判断 MySQL ALTER TABLE 是否会重建数据,并给出克隆表试跑和上线检查清单。339 收藏 -
MySQL 递归 CTE 不退出或结果越界时,检查递归成员的 WHERE 条件,再用递归深度、执行时间和 LIMIT 做安全保护。338 收藏 -
MySQL LOAD DATA 导入 CSV 时,FIELDS TERMINATED BY、ENCLOSED BY、ESCAPED BY 和 LINES TERMINATED BY 必须匹配文件生成规则。本文用带逗号、双引号和字段内换行的示例说明参数组合与检查方法。335 收藏 -
MySQL 分区裁剪不需要单独开关,关键是分区表达式与 WHERE 条件能否推导出有限的分区范围。本文用按日期 RANGE 分区的订单表说明半开区间写法,并通过 EXPLAIN 的 partitions、rows、type 和 key 排查裁剪与分区内索引访问。329 收藏 -
用 RANGE COLUMNS 按月份组织 MySQL 分区表,先核对分区边界,再安全删除越过保留线的历史分区,并处理 MAXVALUE 分区的滚动维护。327 收藏 -
数据库 · MySQL | 2天前 | MySQL · 数据库 · 外键约束 · 数据一致性 · 表结构设计 · mysql 外键 foreign key ON DELETE SET NULL 可空列
解释 MySQL 外键 ON DELETE SET NULL 为什么要求子表外键列允许 NULL,并用父子表示例、建表语句和动作对比说明如何选择 SET NULL、CASCADE 与 RESTRICT。325 收藏 -
用 mysqldump 的一致性读、备份时点 GTID 和副本状态联合确认 InnoDB 在线备份的快照边界,解释为什么 Seconds_Behind_Source 不能单独证明备份一致。323 收藏 -
MySQL UPDATE 条件看起来只命中少量数据,却出现大范围锁等待时,按执行计划、data_locks、范围锁和事务边界逐层定位,避免盲目改隔离级别。311 收藏 -
MySQL 连接池空闲连接被 wait_timeout 或中间网络设备断开后,不要只靠重试。本文从服务端超时、连接池回收、PingContext 和事务安全四个层面给出恢复方案。311 收藏 -
MySQL 切换事务隔离级别后查询结果仍不变,通常是当前事务已经建立了快照,或切换只作用于下一事务。本文用两个会话说明 REPEATABLE READ、READ COMMITTED、自动提交和锁定读的边界。307 收藏 -
MySQL 字符串列完整建索引过宽时,可以用前缀索引缩小索引体积,但长度不能凭感觉填写。本文用区分度查询选择候选长度,再结合字符集、字节上限、SHOW INDEX、EXPLAIN 和 ORDER BY 边界完成验证。305 收藏 -
MySQL 复制延迟排查先区分 IO 接收线程和 SQL 应用线程,再结合读取位点、执行位点、relay log 积压及 Last_IO_Error、Last_SQL_Error 判断问题落点。304 收藏 -
MySQL 生成列索引不生效,通常不是索引语法错,而是查询表达式没有与生成列定义完全匹配。本文按表达式、结果类型、JSON_UNQUOTE 和 EXPLAIN 四个方向排查。300 收藏 -
MySQL invisible index 可以在不删除索引的情况下观察优化器计划变化。本文用 IS_VISIBLE、EXPLAIN、ALTER INDEX 和 SET_VAR 说明如何安全评估索引下线影响。300 收藏