Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过MySQL连接优先级队列而不破坏优先级顺序?_Mysql_Priority Queue - Fatal编程技术网

如何通过MySQL连接优先级队列而不破坏优先级顺序?

如何通过MySQL连接优先级队列而不破坏优先级顺序?,mysql,priority-queue,Mysql,Priority Queue,我有一个程序的优先级队列(PQ)太大了,以至于它不适合内存。我们决定以以下方式将一些数据移动到MySQL数据库(DB):新元素被放入DB而不是PQ,当PQ被清空时,它将由DB中的条目更新。但这种方式似乎破坏了优先顺序。是否有任何解决方案不会破坏优先级顺序并将PQ与DB结合起来 由于某些原因,我无法摆脱PQ而只使用DB。您的问题在功能上相当模糊,但我认为这个想法是错误的 似乎有人想到了将数据库用作内存中应用程序的辅助存储。这没有多大意义。通常情况下,您会使用一个简单的文件来完成此操作。尽管您可以使

我有一个程序的优先级队列(PQ)太大了,以至于它不适合内存。我们决定以以下方式将一些数据移动到MySQL数据库(DB):新元素被放入DB而不是PQ,当PQ被清空时,它将由DB中的条目更新。但这种方式似乎破坏了优先顺序。是否有任何解决方案不会破坏优先级顺序并将PQ与DB结合起来


由于某些原因,我无法摆脱PQ而只使用DB。

您的问题在功能上相当模糊,但我认为这个想法是错误的

似乎有人想到了将数据库用作内存中应用程序的辅助存储。这没有多大意义。通常情况下,您会使用一个简单的文件来完成此操作。尽管您可以使用数据库来管理二级/三级存储,但数据库还可以做许多其他事情,因此它就像只将智能手机用作时钟一样

如果要使用数据库,则将整个结构存储在数据库中,并为其开发满足您需要的API

如果您需要有关如何构造数据的帮助,请编写另一个问题,包括:

  • 样本数据
  • 如何使用优先级队列
  • 你对数据结构有什么想法吗

简单文件不适合我的需要,因为在原始实现中,我必须根据轮询请求查看整个文件。使用文件来实现像二进制堆这样的简单结构似乎很复杂。我不知道MySQL中存储的数据到底是怎样的,但我认为表的表示方式不只是行列表。@vvadimov。表不存储为行列表。对于性能,表上通常会有一个索引。但是,正如我所建议的,请提出另一个问题,包括示例数据和期望的结果,并询问存储数据的最有效方式。您可以(1)询问现有代码,在这种情况下,您应该发布它,或者(2)询问建议。在这两种情况下,你的问题现在都离题了。