Performance MySQL字段管理

Performance MySQL字段管理,performance,mysql-management,mysql,Performance,Mysql Management,Mysql,当我提出疑问时,我经常想知道: 添加额外字段是否更好 表,或者只获取值和 在服务器端进行计算 语言 例如,表Student包含Student.score字段。我想拿到分数 我能拿到分数,赚一大笔钱吗 if/else/切换到等级 我是否通过添加一个仅用于存储的字段来浪费空间 依赖于他人的事物 场 前者是烦人的做每一次你需要的成绩。 当我想到空间使用时,后者让我害怕。如果我只有10000条记录,那么我已经浪费了10000个字段 考虑到非平凡表和中大型数据库,哪种方法最有效 如果重要的话,让我们使用P

当我提出疑问时,我经常想知道:

添加额外字段是否更好 表,或者只获取值和 在服务器端进行计算 语言

例如,表Student包含Student.score字段。我想拿到分数

我能拿到分数,赚一大笔钱吗 if/else/切换到等级

我是否通过添加一个仅用于存储的字段来浪费空间 依赖于他人的事物 场

前者是烦人的做每一次你需要的成绩。 当我想到空间使用时,后者让我害怕。如果我只有10000条记录,那么我已经浪费了10000个字段

考虑到非平凡表和中大型数据库,哪种方法最有效


如果重要的话,让我们使用PHP作为服务器端语言。

您的数据持久化层通常不应该存储经常更改的计算值。这样做会产生一种风险,即允许停滞的数据在数据存储中持久化,然后影响业务层,而业务层反过来又会影响其他一切

一般来说,您总是希望在运行时生成计算值


然而,在确定解决任何设计问题的最佳方法时,我不会担心数据库中的单个附加字段。硬盘空间既便宜又充足。:-)

您的数据持久性层通常不应存储经常更改的计算值。这样做会产生一种风险,即允许停滞的数据在数据存储中持久化,然后影响业务层,而业务层反过来又会影响其他一切

一般来说,您总是希望在运行时生成计算值


然而,在确定解决任何设计问题的最佳方法时,我不会担心数据库中的单个附加字段。硬盘空间既便宜又充足。:-)当您添加额外字段时,还需要考虑额外字段在需要更新的字段时是否需要更新。是否可以将计算移到SQL中,而不是在记录集中循环并在服务器端代码中进行计算?

您的数据库比您想象的强大得多

这在很大程度上取决于您的DB类型和版本,但是您可以使用一些过程和函数来提高脚本的效率。与现有的多行解决方案服务器端语言相比,这些方法可以是简单的快速调用。为什么不做一个过程——调用时——返回学生的所有信息加上它为您计算出的字母分数?为什么不使用一些数学函数来找出两个字段之间的差异呢?为什么不使用datetime函数格式化日期字段


有很多方法可以使用数据库处理信息。这取决于您希望数据库的大小。如果它只是一个简单的5页CMS网站,那么,不,您可能不希望在DB端完成太多的工作,但是,如果您有一个包含多个高容量表的大型数据库,并且这些表彼此之间存在关系,那么,是的,您可能希望将一些处理移到DB

你的数据库比你想象的强大得多

这在很大程度上取决于您的DB类型和版本,但是您可以使用一些过程和函数来提高脚本的效率。与现有的多行解决方案服务器端语言相比,这些方法可以是简单的快速调用。为什么不做一个过程——调用时——返回学生的所有信息加上它为您计算出的字母分数?为什么不使用一些数学函数来找出两个字段之间的差异呢?为什么不使用datetime函数格式化日期字段


有很多方法可以使用数据库处理信息。这取决于您希望数据库的大小。如果它只是一个简单的5页CMS网站,那么,不,您可能不希望在DB端完成太多的工作,但是,如果您有一个包含多个高容量表的大型数据库,并且这些表彼此之间存在关系,那么,是的,您可能希望将一些处理移到DB

当你需要+1时,它在哪里有意思?那么,如果数据库的容量更大、更活跃,为什么你会更倾向于在数据库中进行更昂贵的处理呢?我知道至少有一个例子是我能想到的。我有一个应用程序I管理员的情况,我需要从至少5个表中收集、处理和组织信息。与其有200多行代码,为什么不让它成为一个简单的过程调用?性能?我的意思是,我不是在反驳你说的话,我是在试图弄清楚为什么DB已经在做繁重的工作,而让DB去做繁重的工作。我也明白你的意思。我只是想澄清,有些复杂问题最好由争议裁决委员会处理。性能是一回事,但在某些情况下,性能虽然很差,但仍然比使用服务器端要好。当您需要时,+1在哪里有意思?那么,如果数据库的容量更大、更活跃,为什么你会更倾向于在数据库中进行更昂贵的处理呢?我知道至少有一个例子是我能想到的。我有一个应用程序I管理员的情况,我需要从至少5个表中收集、处理和组织信息。与其有200多行代码,为什么不让它成为一个简单的过程调用?性能?我是说,我不是在反驳你说的话,