Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >比较列存储索引与行索引

比较列存储索引与行索引

作者头像
用户1217611
发布于 2018-01-30 08:27:08
发布于 2018-01-30 08:27:08
1.8K00
代码可运行
举报
文章被收录于专栏:文渊之博文渊之博
运行总次数:0
代码可运行

原因:

    之前已经写过一篇关于列存储索引的简介https://cloud.tencent.com/developer/article/1032222,很粗糙但是基本阐明了列存储索引的好处。为了更好的理解列存储索引,接下来我们一起通过列存储索引与传统的行存储索引地对比2014中的列存储索引带来了哪些改善。由于已经很多介绍列存储,因此这里我仅就性能的改进进行重点说明。

测试场景

    我创建了5个测试,尽量保证测试环境避免来自外界的重负载进而影响到结果。测试结果基于两个独立的表,分别是:

  • FactTransaction_ColumnStore - 这个表仅有一个聚集列存储索引,由于列存储索引的限制,该表不再有其他索引。
  • FactTransaction_RowStore - 该表将包含一个聚集索引和一个非聚集列存储索引和一个非聚集行存储索引。

    首先我用脚本文件创建表和索引,然后用30m行数据填充到三个表中。由于所有的测试我都制定了最大并行度的hint ,因此可以指定内核数量来查询。

测试1-填充表

   为了更好地测试,一个表由列存储索引构成,而另一个表仅有行存储索引构成。填充数据来自于另一个表'FactTransaction'。

IO 和时间统计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Table 'FactTransaction_ColumnStore'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'FactTransaction'. Scan count 1, logical reads 73462, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

  (30000000 row(s) affected)

SQL Server Execution Times:  CPU time = 98204 ms,  elapsed time = 109927 ms.

Table ' FactTransaction_RowStore '. Scan count 0, logical reads 98566047, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'FactTransaction'. Scan count 1, logical reads 73462, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

 (30000000 row(s) affected)

SQL Server Execution Times:  CPU time = 111375 ms,  elapsed time = 129609 ms.
观察测试

表名

填充时间

逻辑读

FacTransaction_ColumnStore

1.49 mins

0

FacTransaction_RowStore

2.09 mins

98566047

测试2-比较搜索

   注意这里在行存储索引上我指定表的hint,迫使表通过索引查找。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- Comparing Seek.... 
SET Statistics IO,TIME ON

Select CustomerFK
From [dbo].FactTransaction_RowStore WITH(FORCESEEK)
Where transactionSK = 4000000
OPTION (MAXDOP 1)

Select CustomerFK
From [dbo].FactTransaction_ColumnStore  
Where transactionSK = 4000000
OPTION (MAXDOP 1)

SET Statistics IO,TIME OFF

IO 和时间统计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Table 'FactTransaction_RowStore'. Scan count 0, logical reads 3, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:    CPU time = 0 ms,  elapsed time = 0 ms.

Table 'FactTransaction_ColumnStore'. Scan count 1, logical reads 714, physical reads 0, read-ahead reads 2510, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:    CPU time = 0 ms,  elapsed time = 83 ms.

执行计划

观察测试2

正如上图所示,行存储索引表的索引查找远比列存储索引表查询快的多。这主要归因于2014的sqlserver不支持聚集列存储索引的索引查找。执行计划对比图中一个是索引扫描导致更多的逻辑读,因此导致了性能的下降。

表名

索引类型

逻辑读

运行时间

FacTransaction_ColumnStore

Column

714

83 ms

FacTransaction_RowStore

Row

3

0 ms

Test 3 - Comparing SCAN

   注意这次我指定的hint都是索引扫描,当然列存储索引上优化器默认为索引扫描。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- Comparing Scan.... 
SET Statistics IO,TIME ON

Select CustomerFK
From [dbo].FactTransaction_RowStore WITH(FORCESCAN)
Where transactionSK = 4000000
OPTION (MAXDOP 1)

Select CustomerFK
From [dbo].FactTransaction_ColumnStore WITH(FORCESCAN)
Where transactionSK = 4000000
OPTION (MAXDOP 1)

SET Statistics IO,TIME OFF

IO 和时间统计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Table 'FactTransaction_RowStore'. Scan count 1, logical reads 12704, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:
  CPU time = 32 ms,  elapsed time = 22 ms.

Table 'FactTransaction_ColumnStore'. Scan count 1, logical reads 714, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:
  CPU time = 0 ms,  elapsed time = 2 ms. 

执行计划

观察测试3

   正如之前提到的,索引扫描列存储要比行存储快,俩个逻辑读和运行时间表明列存储索引在大表扫描上是更优的方式,因此更适合于数据仓库的表。

表名

索引类型

逻辑读

运行时间

FacTransaction_ColumnStore

Column

714

2 ms

FacTransaction_RowStore

Row

12704

22 ms

测试4-聚合查询

    测试行存储表使用基于聚集索引。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SET Statistics IO,TIME ON

Select CustomerFK,BrandFK, Count(*)
From [dbo].[FactTransaction_RowStore] WITH(INDEX=RowStore_FactTransaction)
Group by CustomerFK,BrandFK
OPTION (MAXDOP 4)

   测试行存储表,使用CustomerFK 和BrandFK的索引。(覆盖索引)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Select CustomerFK,BrandFK, Count(*)
From [dbo].[FactTransaction_RowStore] WITH(INDEX=RowStore_CustomerFK_BrandFK)
Group by CustomerFK,BrandFK
OPTION (MAXDOP 4)

    测试行存储索引使用CustomerFK 和BrandFK的列存储索引(覆盖索引)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Select CustomerFK,BrandFK, Count(*) From [dbo].[FactTransaction_RowStore] WITH(INDEX=ColumnStore_CustomerFK_BrandFK) Group by CustomerFK,BrandFK OPTION (MAXDOP 4)

Test on the columnstore table using the Clustered Index.

Select CustomerFK,BrandFK, Count(*)
From [dbo].[FactTransaction_ColumnStore]
Group by CustomerFK,BrandFK
OPTION (MAXDOP 4)

SET Statistics IO,TIME OFF
IO 和时间统计

    使用基于聚集索引查询行存储的表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Table 'FactTransaction_RowStore'. Scan count 5, logical reads 45977, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
  Table 'Workfile'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:  CPU time = 9516 ms,  elapsed time = 2645 ms.

   使用行存储的非聚集索引测试行存储表。(覆盖索引)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Table 'FactTransaction_RowStore'. Scan count 5, logical reads 71204, physical reads 0, read-ahead reads 2160, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Workfile'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:  CPU time = 5343 ms,  elapsed time = 1833 ms.

   使用非聚集列存储索引测试行存储表。(覆盖索引)

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Table 'FactTransaction_RowStore'. Scan count 4, logical reads 785, physical reads 7, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Workfile'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:  CPU time = 141 ms,  elapsed time = 63 ms.

    使用聚集索引测试列存储表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Table 'FactTransaction_ColumnStore'. Scan count 4, logical reads 723, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Workfile'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:  CPU time = 203 ms,  elapsed time = 118 ms.
执行计划
观察测试4

   这里才是列存储索引开始“闪耀”的地方。两个列存储索引的表查询要比传统的航索引在逻辑读和运行时间上性能好得多。

表名

索引使用

索引类型

逻辑读

运行时间

FacTransaction_ColumnStore

ClusteredColumnStore

Column

717

118

FacTransaction_RowStore

RowStore_FactTransaction

Row

45957

2645

FacTransaction_RowStore

RowStore_CustomerFK_BrandFK

Row

71220

1833

FacTransaction_RowStore

ColumnStore_CustomerFK_BrandFK

Column

782

63

测试5-比较更新(数据子集)

   这个测试中,我将更新少于100m行数据,占总数据的30分之一。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SET Statistics IO,TIME ON

Update [dbo].[FactTransaction_ColumnStore]
Set    TransactionAmount = 100
Where  CustomerFK = 112
OPTION (MAXDOP 1)

Update [dbo].[FactTransaction_RowStore]
Set    TransactionAmount = 100
Where  CustomerFK = 112

OPTION (MAXDOP 1)

SET Statistics IO,TIME OFF
IO 和时间统计
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Table 'FactTransaction_ColumnStore'. Scan count 2, logical reads 2020, physical reads 0, read-ahead reads 2598, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

(913712 row(s) affected)

SQL Server Execution Times:  CPU time = 27688 ms,  elapsed time = 37638 ms.

Table 'FactTransaction_RowStore'. Scan count 1, logical reads 2800296, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

(913712 row(s) affected)

SQL Server Execution Times:  CPU time = 6812 ms,  elapsed time = 6819 ms.
执行计划
观察测试5

  在这种情况下 ,列存储索引的表要比行存储的更新慢的多。

表名

索引类型

逻辑读

运行时间

FacTransaction_ColumnStore

Column

2020

37638 ms

FacTransaction_RowStore

Row

2800296

6819 ms

    注意对于行存储表逻辑读还是要比行存储的要多很多。这是归因于列存储索引的压缩比率更高,因此占用更少的内存。

总结

    列存储索引(包含聚集和非聚集)提供了大量的优势。但是在数据仓库上使用还是要做好准备工作。一种合适地使用情况是非聚集索引不能被更新且禁用对底层表的更新。如果是巨大且没有分区的表,可能存在一个问题,整个表的索引每次都会被重建,因此如果表是巨大的则禁止使用列存储索引。因此必须要有好的分区策略来支持这种索引。

   有几个应用列存储索引的地方:事实表的聚合、Fast Track Data Warehouse Servers、恰当环境SSAS的Cube…

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-07-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
现在9个招呼8个外派,还有一个是德科OD
CSP、NOIP、NOI这三个比赛都是由中国计算机学会(CCF)举办的,    代表同学们在编程竞赛上的不同阶段:   
早起的鸟儿有虫吃
2025/06/08
260
现在9个招呼8个外派,还有一个是德科OD
青少年信息学奥林匹克竞赛流程(完整版本)
全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces,简称NOIP)。初赛在每年的10月,复赛在每年的11月。省级联赛分为两个级别:普及组和提高组。普及组针对初中生(多数省份也允许小学生参加),提高组主要针对高中生(允许水平高的初中生参加)。提高组成绩一般是知名高中、知名大学在招生时比较看重的成绩。
海天一树
2018/12/17
3.5K0
通往国际信息学奥林匹克竞赛的8个阶段
全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces,简称NOIP)。初赛在每年的10月,复赛在每年的11月。省级联赛分为两个级别:普及组和提高组。普及组针对初中生(多数省份也允许小学生参加),提高组主要针对高中生(允许水平高的初中生参加)。提高组成绩一般是知名高中、知名大学在招生时比较看重的成绩。
海天一树
2019/05/05
1.5K0
通往国际信息学奥林匹克竞赛的8个阶段
新一届信息奥赛国家队出炉:3/4来自浙江,北大英才班成最大赢家
而根据北大官网等公开信息,在这成团的四人中,周雨扬、罗煜翔、王展鹏三人均已被北大招至麾下,唯独蒋明润——王小川的成都七中学弟,选择保送去清华。
量子位
2020/09/04
1.1K0
00后中国队包揽IOI 2022金牌前4,天才少年全是清华保送生
---- 新智元报道   编辑:Joey 桃子 【新智元导读】IOI 2022,中国队再次包揽了金牌。 IOI 2022 开奖了。 中国队4位选手继IOI 2021再次包揽金牌前四名,2位选手拿到了满分。 这四位选手分别是: 戴江齐(南京外国语学校) 唐绍轩(山东省平邑第一中学) 张隽恺(成都外国语学校) 周航锐(杭州学军中学教育集团文渊中学) 其中,戴江齐和唐绍轩获得满分600分,并列金牌第1。张隽恺和周航锐获得555分的成绩,并列金牌第3名。 排名地址:https://ranking.ioi2
新智元
2022/08/26
7330
00后中国队包揽IOI 2022金牌前4,天才少年全是清华保送生
姚班大神陈立杰最新动向:MIT毕业后将进入诺奖摇篮,成为UC伯克利Miller研究员
晓查 发自 凹非寺 量子位 | 公众号 QbitAI 据知情人士透露,陈立杰今从MIT博士毕业后,将加入加州大学伯克利分校,成为该校Miller研究所研究员。 陈立杰是清华大学姚班知名校友,2016年清华特等奖学金得主,他16岁时获得全国信息学奥赛金牌而被保送清华。 本科毕业后,陈立杰于2017年赴美国MIT攻读博士学位。 今年,27岁的陈立杰将从MIT毕业,他本人已申请了UC伯克利Miller Fellowship并成功通过。 Miller Fellowship面向近期或即将获得博士学位的杰出青年科学家
量子位
2022/03/04
7730
冲刺2025年CSP-J/S和刷Leetcdoe找工作(1):拓扑排序-课程表 v1.0
本文大纲: 第一步:建立大局观  刷题有什么用 第二步:构建知识地图: 针对知识点有效训练 第三步:专心刷1题 拓扑排序-课程表
早起的鸟儿有虫吃
2025/06/08
1070
冲刺2025年CSP-J/S和刷Leetcdoe找工作(1):拓扑排序-课程表 v1.0
IOI 2021前四首次被中国包揽!人大附中邓明扬满分夺金,镇海中学再度大秀“基本操作”
邓明扬在2019年的国际数学奥赛(IMO 2019)上获得金牌,虞皓翔也是在2019年同时入选数学国家集训队和信息学国家集训队,还在本次IOI国家队选拔中排名第一。
量子位
2021/07/19
7940
我是如何成为一名少儿编程竞赛老师的
2017年9月,我以前一个同事问我能不能教他小孩Theo学习编程,因为以前在同一家公司时,我那同事经常带Theo去公司,我和Theo也认识,所以我答应了。
海天一树
2018/10/23
1.4K0
我是如何成为一名少儿编程竞赛老师的
IOI前四再次被中国包揽!双满分夺金+团体第一,全员保送清华
衡宇 发自 凹非寺 量子位 | 公众号 QbitAI 继IOI 2021之后,中国队再次包揽IOI 2022(第34届国际信息学奥林匹克竞赛)金牌前四名,并以绝对优势拿下团体第一。 △中国选手闭幕式合影,图源NOI官网 值得一提的是,有两位队员以两试均满分、总分600分的成绩摘得金牌榜并列第一。 他们分别是: 戴江齐,南京外国语学校,满分成绩并列金牌第1名 唐绍轩,山东省平邑第一中学,满分成绩并列金牌第1名 张隽恺,成都外国语学校,并列金牌第3名 周航锐,杭州学军中学教育集团文渊中学,并列金牌第3名 这是
量子位
2022/08/26
6490
IOI前四再次被中国包揽!双满分夺金+团体第一,全员保送清华
从成绩平平到保送清华,如何变身“别人家的神童”?
80 90后想被清北复交等名校保送 如果没有学霸体质 大概会想到 “新概念作文” “国际奥数联赛” “全国物理竞赛” 当这届00后渐渐长大 保送也有了新玩法 “信息学奥赛”新鲜出炉 成为了大热的名校保送通道 80 90的叔叔阿姨们不禁挠头 “信息学”是啥 研究情报吗? Emmmmmm 用“out”来形容你 都觉得有些太“out”了 别人家的“神童”:靠编程提前被名校锁定 鹅老师先来科普一下,信息学奥赛可不是搞什么卧底情报,其实就是中小学生的编程竞赛。当孩儿爸妈还在感慨“敲代码”竟有如此神力
鹅老师
2020/06/10
7290
冲刺2025年CSP-J/S和刷Leetcdoe找工作(1):拓扑排序-课程表 v1.0
本文大纲: 第一步:建立大局观 刷题有什么用 第二步:构建知识地图: 针对知识点有效训练 第三步:专心刷1题 拓扑排序-课程表
早起的鸟儿有虫吃
2025/06/05
830
冲刺2025年CSP-J/S和刷Leetcdoe找工作(1):拓扑排序-课程表 v1.0
奥数国家队时隔十年再有女生入选,6名选手5位来自南方高中
据已公布消息,2020年IMO(国际数学奥林匹克竞赛)中国国家队名单,6名征战选手全部确定。
量子位
2020/06/16
9840
中国团队勇夺IOI 2023金牌!4名少年全保送清华
全球最富盛名的第35届国际信息学奥林匹克竞赛(IOI 2023)获奖名单出炉了。
新智元
2023/09/09
4670
中国团队勇夺IOI 2023金牌!4名少年全保送清华
2018国际信息学奥林匹克竞赛4名中国队员的金牌之路
第30届国际信息学奥林匹克竞赛(IOI2018)于9月1日~8日在日本筑波举行,共有来自87个国家(地区)的335名选手参赛。
海天一树
2018/12/12
9380
2018国际信息学奥林匹克竞赛4名中国队员的金牌之路
IMO 2021国家队6人名单出炉!CMO全国冠军入选,深圳中学独占2席
最新消息:第62届国际数学奥林匹克竞赛(International Mathematical Olympiad)中国参赛名单公布!6 人入选,其中深圳中学独占 2 席,表现突出:
AI科技评论
2021/04/16
3.4K0
IMO 2021国家队6人名单出炉!CMO全国冠军入选,深圳中学独占2席
中国的程序员是世界最牛的程序员
本文通过HackerRank网站的数据统计,分析了不同国家的程序员在编程挑战中的表现,包括数学、算法、数据结构、操作系统、网络和安全等方面的挑战。通过对比不同国家的程序员在这些领域的表现,可以得出中国、俄罗斯和波兰的程序员在编程挑战中表现最为出色。尽管美国和印度的程序员也在努力,但与其他国家相比,他们的表现还有很大的提升空间。
企鹅号小编
2018/01/09
9280
中国的程序员是世界最牛的程序员
信息学奥赛那点事儿:第五回 继续聊聊编程相关的比赛(ACSL和OUCC)
上面分享了考察的知识点,我们可以看到,跟我们国内的CSP-J的重合度非常高,而且ACSL考察的知识点基本是CSP-J第一轮必考知识点。
小码匠
2024/01/31
3570
信息学奥赛那点事儿:第五回 继续聊聊编程相关的比赛(ACSL和OUCC)
IOI 2020落幕:中国队团体成绩第一!
2020年国际信息学奥赛(IOI 2020)完成了第二日比赛,四名中国队选手皆进入前十,分列3~7名,团队总成绩第一!
量化投资与机器学习微信公众号
2020/09/24
1.2K0
IOI 2020落幕:中国队团体成绩第一!
高三学生发表AI论文,提出针对网络暴力问题的新模型AdaGCN
【导读】近日,在清华大学举行的丘成桐中学科学奖半决赛落下帷幕,来自海内外的 72 支队伍获得了总决赛的入场券,北京师范大学附属实验中学的高三学生白行健,也在其中。他凭借一篇利用图卷积神经网络检测网络暴力的论文,在比赛中脱颖而出。长江后浪推前浪,瞧,00 后也要出道了。
AI科技大本营
2019/11/27
1.7K0
推荐阅读
现在9个招呼8个外派,还有一个是德科OD
260
青少年信息学奥林匹克竞赛流程(完整版本)
3.5K0
通往国际信息学奥林匹克竞赛的8个阶段
1.5K0
新一届信息奥赛国家队出炉:3/4来自浙江,北大英才班成最大赢家
1.1K0
00后中国队包揽IOI 2022金牌前4,天才少年全是清华保送生
7330
姚班大神陈立杰最新动向:MIT毕业后将进入诺奖摇篮,成为UC伯克利Miller研究员
7730
冲刺2025年CSP-J/S和刷Leetcdoe找工作(1):拓扑排序-课程表 v1.0
1070
IOI 2021前四首次被中国包揽!人大附中邓明扬满分夺金,镇海中学再度大秀“基本操作”
7940
我是如何成为一名少儿编程竞赛老师的
1.4K0
IOI前四再次被中国包揽!双满分夺金+团体第一,全员保送清华
6490
从成绩平平到保送清华,如何变身“别人家的神童”?
7290
冲刺2025年CSP-J/S和刷Leetcdoe找工作(1):拓扑排序-课程表 v1.0
830
奥数国家队时隔十年再有女生入选,6名选手5位来自南方高中
9840
中国团队勇夺IOI 2023金牌!4名少年全保送清华
4670
2018国际信息学奥林匹克竞赛4名中国队员的金牌之路
9380
IMO 2021国家队6人名单出炉!CMO全国冠军入选,深圳中学独占2席
3.4K0
中国的程序员是世界最牛的程序员
9280
信息学奥赛那点事儿:第五回 继续聊聊编程相关的比赛(ACSL和OUCC)
3570
IOI 2020落幕:中国队团体成绩第一!
1.2K0
高三学生发表AI论文,提出针对网络暴力问题的新模型AdaGCN
1.7K0
相关推荐
现在9个招呼8个外派,还有一个是德科OD
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验