请教Laravel下对于查询缓存和慢查询的两个问题
- 查询缓存如何管理?
- 面临的问题:
项目代码中各处都有很多查询后的Cache,key的命名缺乏规范,缺少统一管理。
另外像 gnahotelsolutions/laravel-query-cache 之类的查询缓存库可以自动处理缓存key,还能提供一些类似分组的功能。不知道实际应用中有多少人会用,是不是靠谱。
以及有什么好的办法可以统计缓存命中率。
- ORM下如何排查定位慢查询?
面临的问题:大量使用ORM的情况下,对于slow log中的sql大家是如何定位的。
请教下大家对于这些问题,有没有什么好的实践方式。
第一个问题,建议单独搞一个文件,作为redis key的记录,比如我现在要加一个redis key,我就在 cacheKey.php配置中,写上
使用时
问题2:
sql慢,一般有几个常见毛病:
处理:
可以在执行sql的地方,加耗时记录,分析具体是哪些ORM执行的sql慢。