Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SQL查询时间复杂性-连接与子查询

SQL查询时间复杂性-连接与子查询
EN

Stack Overflow用户
提问于 2017-08-30 09:44:28
回答 2查看 2.4K关注 0票数 2

我的问题是当使用joinsub-query方法给出相同的结果时,

哪个更好,哪个更快?(__时间复杂度__的角度来看)

join需要O(M+N)时间复杂度吗?sub-query是否接受O(M*N)

我这样想错了吗?如果是,请纠正我。

这里,(M,N)是两个表中的行数,结合这些行可以得到结果。

我正在寻找基于SQL标准的答案,而不仅仅是MySQL。

P.S -我已经看过了this的问题和所有的答案。从本质上讲,它并不关注时间复杂性部分。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-30 10:06:01

联接是否需要O(M+N)时间复杂度?子查询取O(M*N)吗?我这样想错了吗?

是的,恕我直言,你这样想是错误的。SQL是声明性的。您可以使用它来声明您想要的结果,服务器根据可用的索引和数据结构找出传递结果的最佳方法--满足您的查询。

几千年来--真的!--开发人员已经开始研究各种算法、优化和黑客,以降低服务器用于满足查询的过程的复杂性。

随着数千年的经验积累,相关子查询和连接查询之间的性能差异变得不那么重要了。

你的想法是错误的,有一个特定的原因:你是按程序思考,而不是陈述性的思考。当您断言某一特定类型的查询可以在例如O(m*n)时间内满足时,您是在假设用于满足它的过程。几代开发人员一直致力于使您的假设错误。

当然,可以创建具有病态性能特征的表、索引和查询。这种事时时刻刻都发生。但是有人修正了一个指数,问题就解决了。

票数 10
EN

Stack Overflow用户

发布于 2017-08-30 09:51:51

据我所知,演出应该是一样的。在表上应用正确的索引和集群更为重要。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45966729

复制
相关文章
JavaScript 将对象数组按字母顺序排序
Chrome、IE、Edge、Firefox、Safari、Opera 等 都支持 sort() 方法。
唐志远
2023/07/26
6340
JavaScript 将对象数组按字母顺序排序
JavaScript 将对象数组按字母顺序排序
1.if条件语句 + sort() 2.localeCompare() + sort() 3.Collator() + sort()
唐志远
2023/08/01
2610
JavaScript 将对象数组按字母顺序排序
python中按字母排序_在Python中按字母顺序排序文本文件的内容
我想在文件内部按字母顺序排序。我当前执行此操作的代码不起作用,文件保持不变。这个程序本身就是一个基本的调查问卷,用来实验读写文件。在import time
用户7886150
2021/01/27
4.9K0
数组按指定顺序排序
数组排序可以直接使用 sort() 方法,可以对数组按规律排序。 但如果指定一个没有规律的顺序进行排序呢? 同样可以使用  sort() 方法: const data = [   { name: '张三', code: 'zs' },   { name: '王五', code: 'ww' },   { name: '赵七', code: 'zq' }, ]; data.sort((star, next) => {   const sortList = ['zq', 'zs', 'ww']   return 
德顺
2022/06/12
2.7K0
flutter - 如何在DartFlutter中按字母顺序对Set String进行排序?
问?我知道有List<string>,但是我需要使用Set<string>。有没有一种方法可以按字母顺序对其进行排序?
徐建国
2021/08/03
6.8K0
将若干字符串按字母顺序(由小到大)输出(用指针)
#include <stdio.h> #include <stdlib.h> #include <string.h> void sortt(char *name[],int n) { int i,j; char *temp; for(i=0;i<5;i++) { for(j=i+1;j<5;j++) { if(strcmp(name[i],name[j])>0) /** 设这两个字符串为
谙忆
2021/01/19
1.1K0
C++返回指针值的函数 | 按字母顺序由小到大输出
学到这里的读者应该知道在C语言中,函数指针变量常见的用途之一是作为函数的参数,将函数名传给其他函数的形参,这样可以在调用一个函数的过程中根据给定的不同实参调用不同的函数,在C++中同样如此。
小林C语言
2020/12/22
1.5K0
C++返回指针值的函数 | 按字母顺序由小到大输出
Excel按列排序和按行排序
文章背景:Excel二维表中记录着多行多列的数据,有时需要按行或按列排序,使数据更加清晰、易读。下面分别对按列排序和按行排序进行介绍。
Exploring
2022/08/10
3.2K0
Excel按列排序和按行排序
junit方法按顺序执行
选定版本,直接加注解
IT云清
2021/12/06
1.3K0
junit方法按顺序执行
sql按顺序去重
参考博客: https://blog.csdn.net/qtvb1987/article/details/42081585
周杰伦本人
2022/10/25
8470
sql按顺序去重
词序:神经网络能按正确的顺序排列单词吗?
当学习第二语言时,最困难的挑战之一可能是熟悉单词顺序。词序在机器翻译中也很重要,因为翻译大致上是一种处理目标语言词汇的过程,它与源语言是对等的。也许你已经做过一个把打乱的单词或字母放在原来顺序的游戏。
AiTechYun
2018/03/05
1.1K0
词序:神经网络能按正确的顺序排列单词吗?
map按key和按value排序
看一个题: 查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom 70 smith 67 从低到高 smith 67 Tom 70 jack 70 peter 96 1、按照value排序 2、可以递增排序和递减排序 3、保证排序的稳定性 golang map按key排序 //golang的map不保证有序
李海彬
2018/03/27
3.2K0
map按key和按value排序
看一个题: 查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom 70 smith 67 从低到高 smith 67 Tom 70 jack 70 peter 96 1、按照value排序 2、可以递增排序和递减排序 3、保证排序的稳定性 golang map按key排序 //golang的map不保证有序
李海彬
2018/03/27
4.7K0
实现线程按顺序输出ABC
线程按顺序输出ABC 实现描述:建立三个线程A、B、C,分别按照顺序输出十次ABC 首先建立一个方法,按照条件进行输出 class PrintABC{ private int index=0; public synchronized void print(int n) { // TODO Auto-generated method stub try { while(index!=n) { wait(); } if(index==0) { System.out.
呆呆
2021/10/06
7810
hastable按值排序
最近做了一个项目,需要对一个2维数组的值进行排序然后再取出对应的Key值。开始是用HashTable做的,不过HashTable中的排序只是对Key进行排序,如果想对值进行排序得用其它办法。下面我就把这种方法说下:
codeniu
2022/02/25
1.3K0
python 按中文排序
安装中文库 sudo apt-get update sudo apt-get install language-pack-zh-hans-base sudo dpkg-reconfigure locales 使用 import locale locale.setlocale(locale.LC_COLLATE, 'zh_CN.UTF8') cmp = locale.strcoll courses.sort(lambda x, y: cmp(x.course_name, y.course_name)) 测试
py3study
2020/01/06
1.7K0
C语言实例:实现对英文的12个月份按字母进行排序
这个实例中,我们使用到了二级指针,并将二级指针作为函数参数。作比较时使用到了strcmp()函数
C语言中文社区
2022/05/30
2.8K0
C语言实例:实现对英文的12个月份按字母进行排序
pandas排序 按索引和值排序
pandas 排序 import pandas as pd import numpy as np unsorted_df=pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],columns=['col2','col1']) print (unsorted_df) # 按标签排序 sorted_df = unsorted_df.sort_index(ascending=False) # 降序 print (sorted_df) s
AI拉呱
2021/01/14
2.7K0
hive-行转列按顺序合并
目录 一、背景 二、实现 1.建表ddl 2.示例数据 3.按顺序合并 4.按顺序合并结果 5.可以看到最后一条最长的才是我们需要的数据 6.结果 ---- ---- 一、背景 想实现行转列按顺序合并,但是impala不支持,故用hive实现 二、实现 1.建表ddl create table a( id bigint comment '主键', type bigint comment '分类', start_time bigint comment '开始时间,时间戳', end_time big
chimchim
2022/11/13
2.1K0
hive-行转列按顺序合并
java | 如何让线程按顺序执行?
本文使用了8种方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中许多常用的方法,不止为了知道如何让线程按顺序运行,更是让读者对多线程的使用有更深刻的了解。使用的方法如下:
JavaFish
2019/10/16
6.6K0

相似问题

按字母顺序排序TypeScript接口键

45

是否按值和键对NSMutableDictonary进行排序?

10

按顺序排序不按字母顺序排序

210

按字母顺序排序字母

11

在LinkedHashMap中按字母顺序排序键

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文