【发布时间】:2013-03-27 23:12:35
【问题描述】:
我想制作一个表格,将用户的操作反映给我的应用程序中的另一个用户。
我想到了两个解决方案,我想知道哪个会更快?
1)
ID | source_user_id | target_user_id | action_type
在此选项中,我将为每个操作创建一行
2)
Id | source_user_id | target_user_id | action_x | action_y | action_z
在此选项中,我将为其他用户可用的所有操作创建一行, 当未执行操作时,该字段将设置为 NULL 值 仅当至少执行了一项操作时才会创建此行
你能帮我理解为什么最好的选择是
对不起,我的英语不好。
谢谢你
【问题讨论】:
-
主要问题是你不知道如何自己衡量这个。我不知道 mysql,但我可以想象很多方法来进行性能测试。一种可能且简单的解决方案是询问谷歌。但是,从我的角度来看:#2 更快,因为它避免了
JOIN。但这是设计表结构的一种非常愚蠢的方式,因为据我所知,它违反了 3ND。 -
主要问题是牺牲正确性来换取性能。速度杀人。对速度的需求更加致命。
标签: mysql sql database performance optimization