如何在快速执行字符串搜索的同时迭代两个大型数组?

时间:2016-05-02 06:29:07

标签: php mysql optimization query-optimization

我有2个MySQL表如下......

Warning: Error in $: $ operator is invalid for atomic vectors
Stack trace (innermost first):
    56: dropNulls
    55: updateSelectizeInput
    54: observerFunc [/Users/francesco/Desktop/Tests/testy/app.R#35]
     1: runApp
ERROR: [on_request_read] connection reset by peer

inventory字段和old_inventory字段存储与StorageInventory共享相同结构的各种项的JSON序列化字符串...换句话说,它是一个包含id和invoice_numbers的mange项的大型JSON字符串。

现在我在PHP中使用MySQL查询将每列中的所有行拉入数组......就像这样......

Users
    - id field
    - inventory field
    - old_inventory field

StorageInventory
    - id field
    - invoice_number

这很好用......但是现在我需要这样做,所以我遍历users_array中的每个用户,然后反序列化JSON库存和old_inventory字段。

然后,对于结果数组中的每个库存项目,我需要检查其他库存项目和old_inventory项目,以及每个storage_array项目以查找重复的invoice_numbers。

如果找到重复的invoice_number,它应该打印出找到它的位置,invoice_number,然后继续搜索更多的重复项。

我的问题是,一旦PHP脚本开始执行多嵌套循环内部的检查,它就会执行FOREVER ...就像这个...请注意这是伪足以获取我需要的所有内容发生..

// Assume that the functions return a complete list from the MySQL database.
$users_array = GetUsersFromDatabase();
$storage_array = GetStorageFromDatabase();

我被告知坚持使用MySQL查询来做到这一点会更快,但我不认为MySQL有能力做任何像我刚才严格在MySQL做的事情......有没有人有任何解决方案/如何在PHP中实现这一点的想法?

0 个答案:

没有答案