我可以使用索引提高此请求的效率吗?

塞德

我有此bean /表“ Userinfo”,其中包含列ID,用户名和twitchChannel。对于大多数userinfo,twitchChannel列将为null。我正在遍历表中的每个userinfo实体,并搜索twitchChannel列,如果该列不为null,则将twitchChannel放入数组中。

这是我的要求:

"SELECT ui FROM Userinfo ui WHERE ui.iduserinfo=:id"

这是非常低效的,因为我要遍历每个单独的实体,即使那些twitchChannel为空的实体,我也不会对这些实体感兴趣。

这是Java,但是我注释了每一行,因此对于那些不了解它的人来说很容易理解。

    while (true) { // I'm going through the table in an infinite loop
        int id = 0; //id that is incremented for searches
        Userinfo ui;  // this will be an object that will hold the result of my query
        do {
            ui = ups.getUserInfo(id); // this execute the query I posted above
            id++; //incrementing id for next search
            if (ui.getTwitch() != null) {  // if the search didn't return null
                twitchChannels.add(ui.getTwitch());   // put my twitch in an array
            }
        } while (ui != null);
    }

因此,目前,我要遍历表中的每个实体,甚至包括那些抽动无效的实体。据我了解,可以通过索引来加速该过程。

CREATE INDEX twitchChannel
ON Userinfo (twitchChannel)

因此,类似的东西将有一个不为null的twitchChannel的表。我如何像上面那样遍历这张桌子?它与Java持久性能否以相同的方式工作?

戈登·利诺夫(Gordon Linoff)

将查询更改为:

SELECT ui
FROM Userinfo ui
WHERE twitchChannel IS NOT NULL

这将受益于索引Userinfo(twitchChannel)(假设确实只填写了很少的值)。至少,这将减少从数据库传递到应用程序的数据量,即使不使用索引也是如此。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以使用类或列表来提高代码效率吗?

有人可以帮助我提高此代码的效率吗?

在无法应用 omp atomic/reduction 的情况下,我们可以使用 omp critical 来提高效率吗?

(Lisp)我可以提高效率吗?

我可以使用applescript自动点击此链接吗?

我可以使用循环使此迭代更容易吗?

我可以使用jQuery或JavaScript更改此CSS吗?

我可以使用 SUMPRODUCT 来完成此操作吗?

我可以使用集合类型作为数组索引吗?

我可以使用张量作为列表索引吗?

反应:我可以使用名为“索引”的道具吗

我可以使用flutter在Firestore上创建索引吗?

我可以使用GZIP压缩HTTP请求吗?

我可以使用 Cloudflare Workers 批量处理请求吗?

我将如何提高此脚本的效率?

我可以使用类实例的类来提高可读性吗?

可以使用索引来强制执行此业务规则吗?

我可以使用逻辑索引或索引列表对张量进行切片吗?

$ in / $ or查询可以使用索引吗?

我可以更改密钥对数据的存储方式以提高访问效率吗?

我可以使用此快照调用访问文档 ID 吗?

我可以使用Collection.size()替换此代码中的计数器吗?

有人可以使用.bind()函数向我解释此代码吗?

我可以使用纯MySQL解决此问题吗?(以';'分隔的列中的值联接)

我可以使用LINQ GroupBy更干净地进行此操作吗?

我可以使用SQL函数来执行此操作吗

我可以使用状态设计模式解决此纸牌游戏应用程序吗?

我可以使用此引用引用委托元素的选择器吗?

我可以使用地图功能执行此操作吗?