Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysqljson查询性能

作者:月下孤魂   发布日期:2025-08-24   浏览:92

-- 示例代码:使用 MySQL 查询 JSON 数据的性能优化

-- 创建一个包含 JSON 字段的表
CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    details JSON
);

-- 插入一些示例数据
INSERT INTO products (details) VALUES
('{"name": "Laptop", "price": 1200, "category": "Electronics"}'),
('{"name": "Smartphone", "price": 800, "category": "Electronics"}'),
('{"name": "Coffee Maker", "price": 50, "category": "Home Appliances"}');

-- 创建索引以提高查询性能
-- 对 JSON 字段中的特定键创建虚拟列并索引
ALTER TABLE products 
ADD COLUMN price_index DECIMAL(10, 2) AS (JSON_UNQUOTE(JSON_EXTRACT(details, '$.price'))) STORED,
ADD INDEX idx_price (price_index);

-- 查询价格大于 100 的产品
SELECT * FROM products WHERE price_index > 100;

-- 解释说明:
-- 1. 使用 `JSON_UNQUOTE` 和 `JSON_EXTRACT` 函数从 JSON 字段中提取值。
-- 2. 创建虚拟列 `price_index` 并对其创建索引,以加速查询。
-- 3. 在查询时使用索引字段 `price_index`,而不是直接在 JSON 字段上进行查询,从而提高性能。

上一篇:mysql 删除外键

下一篇:mysql 回滚

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 备份恢复

mysql 插入更新

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站