SpringBoot + JSON 字段 + MySQL 8.0 函数索引:灵活存储半结构化数据,查询不慢
引言 最近在重构用户配置系统时遇到了一个经典问题:不同用户需要不同的配置字段,如果用传统的关系表设计,要么字段爆炸,要么频繁改表。后来发现MySQL 8.0的JSON字段配合函数索引简直是为这种场景量身定制的解决方案。 很多同学一听到JSON就想到MongoDB这些NoSQL数据库,但其实MySQL 8.0对JSON的支持已经相当成熟了。今天就来聊聊如何用SpringBoot结合MySQL JSON字段,既保持关系型数据库的优势,又能灵活处理半结构化数据。 传统方案的痛点 关系型表设计的局限 面对用户配置这种多变的数据结构,传统方案的问题: 字段爆炸: -- 用户配置表设计噩梦 CREATE TABLE user_config ( user_id BIGINT PRIMARY KEY, theme VARCHAR(50), -- 主题 language VARCHAR(20), -- 语言 notification BOOLEAN, -- 通知开关 auto_save BOOLEAN, -- 自动保存 font_size INT, -- 字体大小 -- ... 还有几十个可能的配置项 ....