gpt4 book ai didi

简单记录的 Mysql 优化 - 什么是最好的?

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:58 25 4
gpt4 key购买 nike

我正在开发一个最终将拥有数百万用户的系统。系统的每个用户都可以访问系统中的不同“选项卡”。我正在使用一个名为 usertabs 的表来跟踪它。有两种方法可以处理这个问题。

方式 1:每个用户一行,包含 userid 和 tab1-tab10 作为 int 列。

该系统的优点是通过userid查询单行的速度非常快,缺点是'空'列占用空间。另一个缺点是,当我需要添加一个新选项卡时,我将不得不重新组织整个表,如果有数百万条记录,这可能会很乏味。但这不会经常发生。

方式二:单行包含userid和tabid,仅此而已。每个用户最多 10 行。

该系统的优点是易于分片或其他优化存储的机制,不会浪费空间。行仅在必要时存在。缺点是每次访问记录时最多必须读取 10 行。如果这些行是分散的,它们的访问速度可能会变慢或变快,具体取决于它们的存储方式?

我的程序员侧倾向于方式 1,而我的大数据侧倾向于方式 2。

你会选择哪个?为什么?

最佳答案

过早的优化,以及所有...

选项 1 可能看起来“更简单”,但您已经发现了主要的缺点 - 可扩展性是一个巨大的痛苦。

我也非常怀疑它是否会比选项 2 更快 - 数据库几乎是专门为查找相关数据位而设计的,查找 10 条记录而不是 1 条记录几乎肯定不会产生可衡量的差异。

“分散”的记录并不重要,数据库使用索引能够非常快速地检索数据,而不管它们的物理位置。

当然,正如@Barmar 评论的那样,这确实取决于使用外键索引。

关于简单记录的 Mysql 优化 - 什么是最好的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13181875/

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