gpt4 book ai didi

mysql - SQL Select Query中的Where条件算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:26:30 24 4
gpt4 key购买 nike

我正在处理需要我比较行的每一列的任务。有很多方法可以实现,我很好奇,因为行数很大。所以我在这里举例说明。

---------------------------------------------------------------------
ID[P_K] | Name | Address | City | Gender | College
---------------------------------------------------------------------

上面是一个表的基本示例,它包含来自多个学院的学生数据,现在我从外部来源获取一些数据,需要将其与我的数据库中的数据进行比较。以下是可能的方法。

  1. 我将使用 where Id = <id> 进行选择查询并在我的代码中一一匹配。

  2. 我可以通过其他方式使用 where ID = <id> and name = <name> and so on... 进行选择查询

所以现在我更喜欢第二种选择,因为它的复杂性较低。

现在继续前进,只有一件事在我脑海中制造冲突。

问题:

这两个查询相互比较的查询复杂度(将 ID 视为主键):

  1. where Id = <id>

  2. where ID = <id> and name = <name> and so on...

我知道这个总要看MySQL的算法,我找了很多都没有找到MySql的Select算法。

如果有人能分享一下Select算法会很有帮助。

特定于算法:

这个算法有两种工作方式:

  1. For number of rows {
    if(whereCondition1 && whereCondition2 .... && whereCondition<N>)}<br/>
    }

  2. for number of rows {
    if(whereCondition1){
    //Result filter according whereCondition1
    if(whereCondition2){
    //Result filter according whereCondition2
    .
    .
    and so on...
    } else {
    continue;
    }
    } else {
    continue;
    }
    }

现在第一个的复杂度将是 O(n)。对于第二个假设ID[P_K],复杂度会降低。对吧?

那么从上面哪个算法是user呢?或者不是这些?

最佳答案

每个 RDBM 都有自己的选择算法,但所有这些都是基于 SQL ANSI 99图案。

这里的问题是 RDBM 如何处理并解析它以获得更好的性能。您不必担心这一点,您唯一需要担心的是您的数据库是否设计良好并具有适当的索引。

这就是使用 where Id = <id> 的不同之处。或 where ID = <id> and name = <name> and so on...

如果 ID 是该表的 PK,并且您所说的外部源与您的数据同步(意思是:ID 具有相同的记录),您只需要使用 where Id = <id>但是如果这些 ID 不同步,那么您应该定义什么将使您的注册表独一无二,而不是创建您的 sql 条件并确保您有适当的索引。

关于mysql - SQL Select Query中的Where条件算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24757779/

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