我正在开发一个需要缓存系统的程序。所以描述是我有一个 mysql 数据库,它有 4 列,'mac'、'src'、'username'、'main' 其中 mac、src、username 是主表中的键/值和外键。它将首先插入这 3 个并将它们的 ID 放在 main 中。我得到的主表数据约为 18m,而这 3 个数据约为 2m。我不想在每次需要插入 main 时都使用 select,所以我使用了一个数组来缓存它们。$hash= ['mac'=>[],'src'=>[],'用户名'=>[]]; 并像这样存储'n获取数据: $hash['mac']['54:52:00:27:e4:91'];
当哈希数据超过 500k 时,这种方法的性能很差;那么有没有更好的方法来做到这一点?
PS:我用 nodeJS 得到了同样的东西,我使用了一个名为 hashtable 的 npm 模块,性能大约每 4m 插入 10k。我读过 php arrays 并发现它们是 Hashtables ,但现在它做同样的工作要慢得多,只需要 1k 至少需要 5 分钟;