MySQL一个表,每条数据存了一个json很大的json,需要考虑性能查询速度,请问如何进行模糊查询
- 1、将json字符串解析为可查询的字段,然后将其存入数据库中,在查询时可以对某些字段使用模糊查询;
- 2、使用MySQL中的Full Text Search功能去实现模糊查询,先将json转换成标准的文本格式,再用MySQL的Full Text Search实现模糊查询;
- 3、使用MongoDB进行存储,MongoDB有自身的模糊查询支持,可以在查询时使用模糊查询;
- 4、使用ElasticSearch,ElasticSearch具有非常强大的搜索功能,可以实现对json的模糊查询。
我不想用mongodb也不想用es,只想优化sql如何查询比较好,列出优化后的sql
可以使用MySQL中的JSON操作函数对json字段进行查询 SELECT * FROM 表名 WHERE JSON_CONTAINS(json字段, '关键字');
如何使用MySQL的Full Text Search实现模糊查询,列出代码
首先,在数据库中创建一个具有全文索引功能的表: CREATE TABLE 表名 ( id INT PRIMARY KEY AUTO_INCREMENT, json字段 TEXT, FULLTEXT INDEX(json字段) ); 然后使用MySQL的全文搜索功能实现模糊查询: SELECT * FROM 表名 WHERE MATCH (json字段) AGAINST ('关键字' IN NATURAL LANGUAGE MODE);