mysql为json字段创建索引的方法有哪些?

前两天我正在调试一个电子商务后端接口。
用户反映查询特定产品的详细信息非常慢。
当我查看SQL日志时,我发现这个查询运行了很长一段时间。
该表相当大,包含数百个字段。
JSON 字段存储产品规格和 SKU 等信息。
我点击表结构,发现只有两个json_column,一个用于存储规格,另一个用于存储图像信息。
当时我就想这个JSON字段不应该被索引。

更改索引后,再次运行 SQL。
哇,分钟变成了秒。
感觉就像在图书馆的书架上添加索引标签一样。
搜索书籍时,只需按照标签即可,无需浏览整个系列书籍。
然而,这个索引创建命令实际上很有趣。
例如,对于 jsondata->$.key,该路径指定得非常精确,就好像它直接指向书架上的特定书籍一样。

等等,还有别的事。
每次用户更改产品规格时,我的电子商务系统是否都需要重新索引?这会非常耗时吗?记得之前使用MariaDB的时候,它并没有像MySQL那样全面支持JSON,只能使用全文索引。
现在MySQL还可以指定内部JSON路径来创建索引。
这项技术发展得非常快。
突然我想到:如果JSON字段很大,比如例如。
几MB的文本,索引会不会也很大?

mysql查看、创建和删除索引的方法

前两天我整理了旧电脑,翻出了一本本世纪初的笔记本。
此时,公司刚刚连上内网,数据库管理员小张每天都忙着调试服务器嗡嗡作响的硬盘。
他总是说索引就像给书本添加索引一样。
查找信息更快,但书变得更重。

例如,他教我通过打开高级界面或在命令行中输入 SHOW INDEX FROMOrders 来查找索引;当我看着屏幕上出现的一长串Key_name和Seq_in_index时,我感觉自己正在读一本天堂之书。
想一想:那些名为“order_id”和“customer_id”的列看起来像我小时候玩积木的说明吗?
创建索引更令人着迷。
他经常说,“不要只看 CREATE INDEX idx_order_date ONorders(order_date),想一想。
如果表包含数百万行数据,添加索引就像给老式挂钟上弦一样 - 它会立即加速,但可能会在半夜开始自行转动。
”我记得他曾经给ProductName添加了全文索引。
在测试过程中,他可以通过输入“计算机”来搜索三年前的旧报告。
采购部很震惊,说这个搜索比我妈妈搜索袜子还准确。

最重要的是删除索引。
它保存了DROP INDEX idx_customer_name之前的表结构;就像他在拆除墙壁之前测量老房子的尺寸一样。
他说,索引是数据库的减肥药。
吃多了肚子会胀,不吃就找不到了。
此时人员表已经有3 000多行了。
删除索引后,存储空间增加了五到六GB。
然而,在导入数据时,他发现EXPLAIN SELECT FROM Staff;突然出现在屏幕上。

等一下,小张也说了一句——有一个实习生把价格一栏改成了唯一索引。
销售经理导出报表时,发现同一款产品的编号是1 -1 -1 他用红笔画圈:“索引是一把双刃剑,你必须要能磨快它。

现在 Navicat 允许你拖放符号来创建索引,但我总是想起它坐在服务器前面说:“索引就像菜市场中的秤。
这样可以省事,但如果重量放置不正确,交易可能会出错。
”我突然想起来,后来他被调到了运维部门。
听说他现在整天忙着给云数据库添加分布式索引。
我不知道这些云服务器中隐藏着什么秘密。