【发布时间】:2018-02-16 17:35:24
【问题描述】:
我正在做一些网络爬虫并将结果插入数据库。刮大约需要 2 秒,但插入时间要长得多。有两张表,表一是url和Ids的列表,表二是tagIds和siteIds的集合。
当我向 siteIds 添加索引时(这是 URL 的 md5 哈希值,我这样做是因为它可以加快插入速度,因为它不必为每个 urls id 查询数据库来添加站点标签配对)插入速度在 300,000 左右页后急剧下降。
示例
表一
hash |url |title |description
sjkjsajwoi20doi2jdo2xq2klm www.somesite.com somesite a site with info
表2
site |tag
sjkjsajwoi20doi2jdo2xq2klm xn\zmcbmmndkd2
当我取消索引时,它的速度要快得多,我能够在 12 小时内添加大约 2500 万条记录,但是搜索未索引的标签是不可能的。
我为此使用 php 和 mysqli,我愿意接受有关组织这些数据的更好方法的建议。
【问题讨论】:
-
正确的索引表会比不正确使用索引的选择更快。
标签: php sql database mysqli indexing