MySQL【bug】 spatial key

AI-摘要
文章摘要 GPT
AI初始化中...
MySQL【bug】 spatial key
Eucalyptus【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](https://bugs.mysql.com/bug.php?id 93728)
1 | CREATE TABLE tab ( |
解决方法:
- 升级版本
- 重建表再重新导入数据
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果










