HeidiSQL 12.21 已经发布。本次版本没有加入复杂的新工作流,但集中改善了表格编辑器、数据库树和更新检查等日常使用细节,同时修复了旧版 MySQL 的 SQL 兼容性问题,以及导入设置、刷新会话列表和断开连接会话相关的问题。
表格编辑器直接显示索引大小
新版本在表格编辑器中使用单独的列显示索引大小。过去,开发者往往需要额外执行查询,才能判断某张表的索引占用了多少空间;现在可以在编辑表结构时直接查看这一信息。
这对排查以下问题比较有帮助:
- 某个索引是否异常膨胀;
- 表数据增长后,索引占用是否明显超过预期;
- 多个索引是否存在重复或收益有限的情况;
- 清理索引前,预计可以释放多少空间。
可以用下面的 SQL 对编辑器中的信息进行交叉验证。请将 your_database 和 your_table 替换为实际名称:
SELECT
TABLE_SCHEMA,
TABLE_NAME,
INDEX_NAME,
COLUMN_NAME,
SEQ_IN_INDEX,
NON_UNIQUE,
CARDINALITY,
INDEX_TYPE
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = 'your_database'
AND TABLE_NAME = 'your_table'
ORDER BY INDEX_NAME, SEQ_IN_INDEX;
需要注意,information_schema.STATISTICS 主要描述索引元数据,并不直接提供每个索引的精确磁盘占用。要查看表级数据和索引空间,可以执行:
SELECT
TABLE_NAME,
ENGINE,
TABLE_ROWS,
DATA_LENGTH,
INDEX_LENGTH,
DATA_FREE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'your_database'
AND TABLE_NAME = 'your_table';
其中 INDEX_LENGTH 是表级索引空间指标。它适合做容量观察,但不应简单等同于某一个单独索引的大小。
数据库树中的列层级更清晰
12.21 还调整了数据库树的展示方式:列会作为表的子项显示。浏览数据库对象时,可以沿着“数据库 → 表 → 列”的层级展开结构,不必频繁切换到表编辑器才能确认字段组成。
这个变化对查看陌生数据库尤其方便。开发者可以快速确认:
- 表有哪些列;
- 列的命名是否符合约定;
- 字段数量是否异常;
- 某个表是否包含常见的主键、时间戳或状态字段。
树形浏览适合定位对象,表格编辑器适合修改结构。实际操作中,建议把两者分开使用:先通过数据库树确认目标表和列,再进入编辑器检查索引、默认值以及其他结构属性。
旧版 MySQL 兼容性与会话问题修复
本次更新还包含几类面向稳定性的修复。
更新检查对话框中的 release link 标签现在始终启用,并指向通用下载页面。这样可以减少更新入口状态不一致的问题。
针对 MySQL 4.0.2 以下版本,版本修复了不支持 CAST(x AS CHAR) 的情况。若需要兼容这类老版本,应用层或 SQL 脚本仍应避免默认使用较新的语法。下面是一个需要根据服务器版本选择的示例:
-- 较新的 MySQL 版本可以使用
SELECT CAST(123 AS CHAR) AS value_as_text;
-- 面向非常旧的 MySQL 版本时,可优先检查服务器能力,
-- 再决定是否使用字符串函数或在客户端完成类型转换。
SELECT CONCAT('', 123) AS value_as_text;
CONCAT('', 123) 是否符合业务语义,仍要由应用场景决定;如果转换逻辑涉及日期、金额或字符集,不要只为了兼容性机械替换。
此外,导入设置文件后刷新会话列表的问题也得到修复。对于维护多个连接配置的用户,这意味着导入设置后可以更可靠地看到更新后的会话。摘要还提到断开连接会话相关的修复,但没有给出更具体的行为描述,因此升级后仍建议按常用的连接、断开和重新连接流程进行验证。
升级后的检查清单
HeidiSQL 12.21 适合通过小范围验证完成升级确认:
- 打开一张包含多个索引的表,确认索引大小出现在独立列中。
- 在数据库树中展开表,确认列作为表的子项显示。
- 导入一份已有的设置文件,刷新或重新打开会话列表,检查新会话是否出现。
- 测试连接、断开连接和重新连接流程。
- 如果仍需管理 MySQL 4.0.2 以下服务器,检查涉及类型转换的查询,避免依赖
CAST(x AS CHAR)。
这次版本的价值主要体现在数据库对象浏览、容量观察和边界版本兼容性上。对日常使用 HeidiSQL 管理多个数据库连接的开发者,可以在备份设置并验证关键连接后进行升级;对依赖老旧 MySQL 环境的团队,则应把 SQL 兼容性回归作为升级后的重点检查项。