MySQL【bug】- spatial key

AI-摘要
文章摘要 GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
MySQL【bug】- spatial key
Mr.蓝桉【bug1】
MySQL建Spatial索引的前提条件是列定义NOT NULL,而当location列中有**’GEOMETRYCOLLECTION EMPTY ‘的值时,这里‘GEOMETRYCOLLECTION EMPTY’**变相绕过了这个限制,会导致报错。
插入空集合 GEOMETRYCOLLECTION EMPTY,空集合占一行空间,语义上“我知道这里该有几何,但当前没有数据”。
与 NULL 的区别
| 场景 | 存储值 | ST_IsEmpty | ST_AsText |
|---|---|---|---|
| NULL | 无 | NULL | NULL |
| GEOMETRYCOLLECTION EMPTY | 有 | 1 | GEOMETRYCOLLECTION EMPTY |
重建表也无法进行修复
1 | CREATE TABLE `spatial_table` ( |
解决方法:删除这些行并重建表
【bug2】
先对含** SPATIAL KEY** 的表做过 ALTER TABLE → R-tree 根页指针错乱,后续 UPDATE/DELETE走空间索引时找不到记录 → 报** Record in index … not found**。在MySQL Server 5.7.49、8.0.41、8.4.4和9.2.0版本中修复。
官方文档:https://bugs.mysql.com/bug.php?id=93728
1 | CREATE TABLE tab ( |
解决方法:
- 升级版本
- 重建表再重新导入数据
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果














