我在laravel中构建一个应用程序(我不认为与该查询无关)。

有一些用户提供的设置保存在数据库表“设置”中。

为了便于使用,这些值在启动时被合并到应用程序的默认配置(一个简单的php数组)中,这意味着我只能使用1个接口来访问这些值,无论它们是来自默认配置数组,还是被该值覆盖D b。

当前,这意味着在启动之前先使用SELECT key,value FROM settings;查询。

我只是想知道是否有人知道这是否次优?

我预计此表中不会有100多个左右的行,每个请求大约需要60%的行。

考虑连接/查找/查询返回将是最佳的:


保持原样,只需在启动时加载所有内容
添加autoload列,并且仅在启动时加载此值为true的设置,并“按需”加载其余的(当有要求时)
加载每个“按需”


因为行太少,而且数据是每行两个简单的字符串,所以我猜只是将它们全部加载起来的速度总体上与加载几个然后再按需加载(涉及多个连接请求)一样快。

我是对的还是应该考虑通过选项2/3或其他方法进行优化?

最佳答案

为了简单起见(不那么复杂的代码),我将全部加载它们。因此,如果特定请求不需要40%ish怎么办。

这是一个简单的SQL语句。它没有其他变体(带有不同的WHERE子句)需要测试。

总体而言,似乎要测试的代码更少。我看不到其他替代方案的潜在节省。我无法证明额外的复杂性。

关于php - MySQL获取所有行与按需选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35090445/

10-09 01:04