recherche

Maison  >  Questions et réponses  >  le corps du texte

php - 大量多级分类数据的获取、缓存、搜索查询 怎么设计最快 ?

1.数据量大
2.多级分类
3.首先要获取所有数据
4.获取到所有数据后 有搜索功能(搜索到的数据不管几级都要获取到它的所有父级和子级 存在和搜索名称相符合的标为红色)

现在我为了开始获取全部数据和后期搜索都用一个方法 我就获取到所有分类id和其父级子集放在一起 然后比如现在不是搜索 开始是全部数据肯定很多重复的 我去重 然后通过这些id去获取所有信息 最后再循环改变搜索相符的字体颜色(和搜索公用) 最后再循环组合成树状结构数据

因为数据量大的话 老循环我感觉可能会慢

怎么优化下 搜索和初始化所有数据分开写俩个方法 还是能怎么弄呢?

还有就是我加了缓存 这样每次初始化就不用去从新查了 直接拿缓存 但是搜索的话还是要去查 当然搜索可能数据量小 还好些 但是循环次数过多啊 缓存有办法进行二次筛选吗?thinkphp框架的S方法缓存的
感谢分享

PHP中文网PHP中文网2817 Il y a quelques jours306

répondre à tous(1)je répondrai

  • PHPz

    PHPz2017-04-10 17:43:12

    1. 不要感觉, 循环大多数情况下, 相对于数据库查询来说是快了几个数量级的, 除非你用循环去查数据库了

    2. 大多数情况下, select ... in并且命中主键或者索引的, 结果集在只是几百个以内的, 效率还是可以接受的, 你可以结合你的实际情况运用

    3. 真的数据量大, 筛选条件又多, 又有分词搜索的情况下请考虑上搜索引擎, ElasticSearch, Sphinx等等

    répondre
    0
  • Annulerrépondre