如何为大型数据集(数百万行)使用联接和子查询优化MySQL查询

古斯

我正在尝试将国际专利数据库(PATSTAT)的四个大表(35-200百万行)加入到满足某些要求的引用最多的15个专利的前15名中。

第一个表格(t9)列出了从一组应用程序(家族)到另一组应用程序的引用。另一个表(t1)基本上将所有内容链接在一起,因为它既包含族和应用程序ID,又包含归档年份表t2tls209_appln_ipc并用于标识appln_id要包含的。

我最终得出的代码如下:

SELECT t9.cited_docdb_family_id, COUNT(t9.cited_docdb_family_id) AS cited, t3.appln_id
FROM docdb_family_citation t9 
LEFT JOIN 
(SELECT
t1.appln_id, t1.docdb_family_id from tls201_appln t1
LEFT JOIN tls204_appln_prior t2 on t1.appln_id=t2.appln_id 
WHERE
t1.appln_filing_year BETWEEN 2010 AND 2015
AND
t2.appln_id IS NULL
AND
t1.appln_id IN (SELECT distinct appln_id from tls209_appln_ipc where ipc_subclass_symbol in ("A61K", "C07K", "A61P", "Cl2N", "C07D", "Cl2P", "C07H", "C12Q", "C07J"))) t3 ON t9.cited_docdb_family_id=t3.docdb_family_id
GROUP BY t9.cited_docdb_family_id
ORDER BY cited DESC
LIMIT 15

问题是,在我的会话超时之前,在PATSTAT的基于Web的在线基于网络界面中运行的查询未收敛。有什么方法可以提高此查询的效率吗?

-编辑
-tls_209_appln_ipc包含1.95亿行,appln_id加上ipc_subclass_symbolappln_id在此表中可能出现零次或多次。在我询问我只需要docdb_family_id■如果其链接appln_ids的连接到任何ipc_subclass_symbol就是我列出的。

古斯

在前面的答案的帮助下,给出了所需结果的最终代码:

SELECT t9.cited_docdb_family_id, t99.cited AS cited, t1.appln_id, t1.appln_nr_epodoc
        FROM docdb_family_citation t9 
INNER JOIN (SELECT cited_docdb_family_id, count(cited_docdb_family_id) as cited FROM docdb_family_citation GROUP BY cited_docdb_family_id) t99 
ON t9.cited_docdb_family_id = t99.cited_docdb_family_id
LEFT JOIN 
     tls201_appln t1
     on t9.cited_docdb_family_id = t1.docdb_family_id 
     WHERE
        t1.appln_filing_year BETWEEN 2010 AND 2015 and
        exists (select 1 from tls209_appln_ipc t209
                where t209.appln_id = t1.appln_id
                  and    t209.ipc_subclass_symbol in ("A61K", "C07K", "A61P", "Cl2N", "C07D", "Cl2P", "C07H", "C12Q", "C07J")
               ) and
        not exists (select 1 from tls204_appln_prior t2
                    where t1.appln_id = t2.appln_id 
                   )
GROUP BY t9.cited_docdb_family_id
ORDER BY cited DESC
LIMIT 15;`

请注意,带有子查询的联接t99用于获取正确的cited计数

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 MYSQL 上的数百万行优化求和/分组查询

来自分类Dev

查询联接中的大数据集(15+百万行)

来自分类Dev

如何加速具有数百万行的简单UPDATE查询?

来自分类Dev

如何对数百万行执行此计算繁重的查询

来自分类Dev

优化涉及百万行的mysql查询

来自分类Dev

优化两个数百万行表之间的内部联接

来自分类Dev

SQL Server-使用数百万条记录优化此查询

来自分类Dev

用于优化具有数百万行和许多列的表的选项

来自分类Dev

数百万行表上联接的性能

来自分类Dev

如何优化处理数百万行的用户定义的 python 函数?

来自分类Dev

PostgreSQL针对数百万行的查询在UUID上花费的时间很长

来自分类Dev

如何处理数百万个单独的插入查询

来自分类Dev

从 MySQL 数据库中删除数百万行的最快方法是什么?

来自分类Dev

Laravel,数百万行插入和搜索

来自分类Dev

如何将数百万行添加到实时生产mysql表中?

来自分类Dev

在MySQL中跨数百万行使用VARCHAR vs INT

来自分类Dev

如何提高数百万行表的速度

来自分类Dev

如何优化包含联接和子查询的查询

来自分类Dev

优化包含联接和子查询的查询

来自分类Dev

使用大型子查询优化 Django 查询

来自分类Dev

在左联接中使用子查询时如何优化查询

来自分类Dev

应该使用哪种类型的数据库来存储数百万个餐厅并对其进行查询

来自分类Dev

如何在MySQL中使用子查询为报表优化多个联接的查询

来自分类Dev

计算后更新数百万行

来自分类Dev

在 Ruby 中处理数百万行

来自分类Dev

在 Python 中处理数百万行

来自分类Dev

MySQL与数据库一起工作包含一个包含数百万行的表

来自分类Dev

Laravel 5.1查询具有数百万条记录的数据库

来自分类Dev

如何将JSONB列中的数据转换为Rails / Postgres中数百万行的单独列?

Related 相关文章

  1. 1

    使用 MYSQL 上的数百万行优化求和/分组查询

  2. 2

    查询联接中的大数据集(15+百万行)

  3. 3

    如何加速具有数百万行的简单UPDATE查询?

  4. 4

    如何对数百万行执行此计算繁重的查询

  5. 5

    优化涉及百万行的mysql查询

  6. 6

    优化两个数百万行表之间的内部联接

  7. 7

    SQL Server-使用数百万条记录优化此查询

  8. 8

    用于优化具有数百万行和许多列的表的选项

  9. 9

    数百万行表上联接的性能

  10. 10

    如何优化处理数百万行的用户定义的 python 函数?

  11. 11

    PostgreSQL针对数百万行的查询在UUID上花费的时间很长

  12. 12

    如何处理数百万个单独的插入查询

  13. 13

    从 MySQL 数据库中删除数百万行的最快方法是什么?

  14. 14

    Laravel,数百万行插入和搜索

  15. 15

    如何将数百万行添加到实时生产mysql表中?

  16. 16

    在MySQL中跨数百万行使用VARCHAR vs INT

  17. 17

    如何提高数百万行表的速度

  18. 18

    如何优化包含联接和子查询的查询

  19. 19

    优化包含联接和子查询的查询

  20. 20

    使用大型子查询优化 Django 查询

  21. 21

    在左联接中使用子查询时如何优化查询

  22. 22

    应该使用哪种类型的数据库来存储数百万个餐厅并对其进行查询

  23. 23

    如何在MySQL中使用子查询为报表优化多个联接的查询

  24. 24

    计算后更新数百万行

  25. 25

    在 Ruby 中处理数百万行

  26. 26

    在 Python 中处理数百万行

  27. 27

    MySQL与数据库一起工作包含一个包含数百万行的表

  28. 28

    Laravel 5.1查询具有数百万条记录的数据库

  29. 29

    如何将JSONB列中的数据转换为Rails / Postgres中数百万行的单独列?

热门标签

归档