回答

收藏

mysql查询选择键并插入

技术问答 技术问答 277 人阅读 | 0 人回复 | 2023-09-12

我有两个表:Articles存储相关文章的信息,PageLinks用于存储页面之间的超链接。架构如下。
% P* r) a9 h( n. i' x: }3 hCREATE TABLE `Articles` (  `id` int(11) NOT NULL AUTO_INCREMENT, `slug` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `label` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `slug_UNIQUE` (`slug`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8CREATE TABLE `PageLinks` (  `id` int(11) NOT NULL AUTO_INCREMENT, `from_id` int(11) NOT NULL, `to_id` int(11) NOT NULL, PRIMARY KEY (`id`),    UNIQUE KEY `index4` (`to_id`,`from_id`), KEY `fk_PageLinks_1` (`from_id`), KEY `fk_PageLinks_2` (`to_id`), CONSTRAINT `fk_PageLinks_1` FOREIGN KEY (`from_id`) REFERENCES `Articles` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_PageLinks_2` FOREIGN KEY (`to_id`) REFERENCES `Articles` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8我有数百万个子词,它们表示相应页面之间的超链接。我试图从这些子弹中加载PageLinks表。6 |# _) q: o: G: U& ?, Z: `) l
目前,我有一个python程序,程序select id查询每个段塞,将段塞对转换为Article
  C( `$ ~0 Y0 ~! d. v7 E: }id对。然后将ID对写入文件并加载load datainfile。此外,如果文章表中没有子弹,程序将插入一个没有标签的虚拟行,然后使用该行ID。# }$ \& Y- l3 P9 W5 ^! F# s( e" R6 j
我正在尝试优化程序以更快地加载条目(我想加载18左右)GB子弹对)。我相信,如果可以批量执行,slug->
" C7 \0 m$ h  I4 {4 R% cid插入分析和页面链接可以达到一定的速度(避免每次SELECT费用)mysql做到这一点的最好方法是什么?
% h$ n4 H1 q; M6 n, w                                                                3 L# E; @  ?/ N% ~* v# y3 F
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则