gpt4 book ai didi

mysql - MySQL 中 ORDER BY COALESCE 的性能影响

转载 作者:行者123 更新时间:2023-11-29 03:15:11 25 4
gpt4 key购买 nike

我的一般问题是,我希望用户能够实际上添加任意数量的不同类型的字段以与项目相关联。因此,我正在考虑的一种解决方案如下:

table `items`
item_id | name

table `parameters`
parameter_id | name | type

table `values`
item_id | parameter_id | datetimevalue | datevalue | integervalue | etc...

如果用户想在他的某些项目中添加“出生日期”参数,我们会在参数表中添加一个参数,然后在值表中为他希望具有此参数的每个项目添加一个条目,日期进入日期值列,所有其他“值”字段保留为空。

要按“出生日期”来排序他的项目,假设这个参数有 parameter_id=1,我会这样做

SELECT * from 
items
join values on items.item_id = values.item_id
join parameters on parameters.parameter_id = values.parameter_id

where parameter_id = 1
order by coalesce(values.datetimevalue, values.datevalue, values.integervalue...)

我的具体问题是,这个 ORDER BY 是否具有性能?它会很好地利用索引吗?它会做不必要的工作吗?

我的一般问题是,这种方法是好的做法吗?有更好的方法吗?

最佳答案

你在谈论 EAV 建模。

看看EAV modelling

关于mysql - MySQL 中 ORDER BY COALESCE 的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1337558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com