51Testing软件测试论坛
标题:
sql server XML数据类型存储,模糊搜索的性能如何提升?
[打印本页]
作者:
测试积点老人
时间:
2019-12-17 13:15
标题:
sql server XML数据类型存储,模糊搜索的性能如何提升?
sql server XML数据类型存储,模糊搜索的性能如何提升?
最近有个项目,其中一个业务是客户输入的信息字段不固定(字段合集大概100多个,客户可能只会挑选其中5-15个填写),这里我使用的是动态XML存储客户数据,自然就想到了mssql里面的xml数据类型,研究了半天时间(其中xml主索引,xml辅助索引-path索引、value索引都加了),发现这个字段内容值模糊查找性能很差:1.测试了姓名节点模糊查找;2.测试了时间段的查找,运行结果如下(数据量测试环境下是200W条,实际项目上线运行数据量会以每月15W左右的量逐步增加):
SELECT * FROM dbo.user_info_xml WHERE info_xml.value('(/customers/user_name)[1]','nvarchar(50)') LIKE '%孙%' --19秒
SELECT * FROM dbo.user_info_xml WHERE info_xml.exist('/customers/user_name/text()[contains(.,"孙")]') = 1 --14秒
SELECT * FROM dbo.user_info_xml WHERE info_xml.value('(/customers/play_date)[1]','datetime') > '2015-3-21'
AND info_xml.value('(/customers/play_date)[1]','datetime') < '2015-3-24' --29秒
复制代码
不知有无其他办法,可以从mssql本身的xml数据类型来讨论,也可以以这个业务来讨论抛弃mssql存储方式。
作者:
qqq911
时间:
2019-12-18 11:03
多表存储吧
作者:
jingzizx
时间:
2019-12-18 12:22
顶一下,最后查一下各类策略
作者:
litingting0214
时间:
2019-12-18 13:07
建议建多个表存储
作者:
bellas
时间:
2019-12-18 14:21
议建多个加索引
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2