【发布时间】:2015-06-27 05:23:09
【问题描述】:
我正在尝试将国际专利数据库 (PATSTAT) 的四个大型表(35-2 亿行)连接到符合一些要求的被引用最多的前 15 名专利中。
第一个表 (t9) 列出了从一组(系列)申请到另一组的引用。
另一个表 (t1) 基本上将所有内容链接在一起,因为它包含家庭和申请 ID,以及申请年份
表 t2 和 tls209_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_symbol。 appln_id 在此表中可能出现零次或多次。在我的查询中,我只需要docdb_family_ids,如果他们链接的appln_ids 的任何 链接到我列出的ipc_subclass_symbols 的任何。
【问题讨论】:
-
你有没有考虑稍微增加wait_timeout?
mysql> SHOW VARIABLES LIKE 'wait_timeout'; -
很遗憾,这不是基于 Web 的 PATSTAT 界面中的选项,只接受选择查询。
标签: mysql group-by subquery left-join large-data