gpt4 book ai didi

PHP SQLite 喜欢慢

转载 作者:行者123 更新时间:2023-12-03 18:54:12 24 4
gpt4 key购买 nike

我正在尝试分析网络流量。流量被保存到一个大约 300MB-SQLite 文件中,我正在尝试梳理该文件以查找关键字。

我有大约 10 个关键字,我为其生成突变(反向字符串、哈希等),每个关键字大约有 20 个变体。为了找到这些排列,我为每个关键字生成一个查询,其中包括一个命令中的所有排列,用 OR 分隔。一个查询如下所示:

SELECT * FROM flows 
WHERE
(buffer LIKE :permutationOne) OR
(buffer LIKE :permutationTwo) OR
(buffer LIKE :permutationThree) OR

(buffer LIKE :permutationTwenty)

SQLite 通信和语句绑定(bind)的初始化如下所示:
$sqlite = new PDO('sqlite:resources/traffic.sqlite'); // executed once

// done for each keyword
$statement = $sqlite->prepare($sqlCommand);
$statement->execute([':permutationOne' => '%perm1%', ':permutationTwo' => '%perm2%', …]);

我测量了这十个查询的执行时间,它在 150 到 300 秒之间变化,具体取决于执行查询的设备。由于文件很大,我执行了 10 个查询,每个查询有 20 个类似字符串,我想知道是否有一种方法可以优化查询?如果可能的话,我非常希望至少将执行时间减半。或者也许我应该使用另一个库而不是 PDO?

最佳答案

好的。我们在我的另一个答案中决定索引在这种情况下无济于事。如果你被 sqlite 卡住了,那么你可以使用 全文搜索 (FTS) 引擎 .它包含在源代码中,但是您必须在启用此功能的情况下重新编译 sqlite 的麻烦。

更多信息:

http://answers.oreilly.com/topic/1955-how-to-use-full-text-search-in-sqlite/

关于PHP SQLite 喜欢慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21560269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com