gpt4 book ai didi

c++ - MySQL 和数据库查询 : sorting

转载 作者:行者123 更新时间:2023-11-28 05:49:08 26 4
gpt4 key购买 nike

首先,抱歉我的英语不好。

我有一个 C++ 桌面应用程序,它从数据库中获取行,并且对于每一行,该应用程序创建一个对象来表示该特定表中的该行。每个表都有其对应的类(我为此使用 ODB)。

恢复表格的行后,我将它们显示在表格中,表格可以按列排序。每列都有一个“排序”图标,允许根据该列对表格条目进行排序。

我的问题是,优质应用通常做什么?每次必须对表进行排序时进行其他查询?或者手动对对象进行排序,例如使用 std::set?哪个更快?

我认为使用 std::set 对条目进行排序更快,因为我们避免了与 MySQL 服务器的通信,但与此同时,如果我们对同一个数据库表进行多次重新排序,特别是使用索引,MySQL 优化器可能会发挥一些魔力涉及。我认为它甚至可能取决于这些排序操作的频率。

无论如何,我想知道这两种方法的优缺点。

最佳答案

许多应用程序让数据库执行大部分工作。

创建表时,应用程序会告诉数据库设置用于搜索(索引)的列。数据库通常会创建一个索引表。这使得搜索速度更快,因为不需要对表中数据的顺序进行排序。

应用程序会向数据库发送查询语句,以按需要的顺序从数据库中选择数据。然后应用程序迭代数据。

在 GUI 网格中显示数据时,许多框架会为您执行排序。您告诉 GUI 使用哪一列进行排序,让 GUI 求助然后显示数据。真正的应用程序尽可能使用现有的库和框架。

如果你的表有足够的内存,读入数据并对表进行排序。否则,告诉数据库生成一个新 View 并在 GUI 中重新加载表(如有必要)。

关于c++ - MySQL 和数据库查询 : sorting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35631554/

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