繁体   English   中英

MySQL存储过程与多项选择

[英]MySQL stored procedure vs. multiple selects

这是我的情况:

我有一张(称为它们)节点的表。 每个密钥的主键只是“ node_id”。

我有一个维护节点层次结构的表,只有两列:parent_node_id和child_node_id。

层次结构保存在单独的表中,因为节点可以具有N:N关系。 也就是说,一个节点可以有多个孩子,也可以有多个父母。

如果我从一个节点开始并希望获得其所有祖先(即,层次结构中更高层次的所有事物),则可以执行多个选择,也可以在一个存储过程中全部执行。

任何对此问题有实际经验的人都知道哪个可能是性能最好的? 我在网上阅读了推荐这两种方式的内容。

“哪个可能是性能最好的?”:没人知道! 您唯一可以做的就是同时尝试和MEASURE。 令人遗憾的是,这是所有与性能相关的问题的主要答案……除非您在算法之间显然存在O(n)差异。

而且,顺便说一下,“多父母”并不构成一个等级体系(否则,我建议读乔·塞尔科(Joe Celko)的一些书),但是DAG(直接非循环图)则很难驯服……

如果您关心性能,那么该架构设计将无法像其他人那样很好地工作。

有关更多信息,请参见SQL中的“更多树和层次结构”

我认为一般的语句可能会导致问题,因为它取决于您的查询以及存储过程如何利用索引。 为了做出有用的声明,有必要将您选择的SQL和存储过程进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM