PHP如何通过二分查找法高效实现文本内容快速定位?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1320个文字,预计阅读时间需要6分钟。
起因:由于在分析数据时经常遇到需要频繁读取某一数据库表的场景,例如根据根数据地区ID获取地区名称、根据网站分类ID获取分类名称、根据关键词ID获取关键词等。
解决方法:代码需要频繁地读取数据库中的特定表,以便快速获取所需信息。
起因先说说事情的起因,最近在分析数据时经常遇到一种场景,代码需要频繁的读某一张数据库的表,比如根据地区ID获取地区名称、根据网站分类ID获取分类名称、根据关键词ID获取关键词等。虽然以上需求都可以在原始建表时,通过冗余数据来解决。但仍有部分业务存的只是关联表的ID,数据分析时需要频繁的查表。
所读的表存在共同的特点数据几乎不会变更
数据量适中,从一万到100多万,如果全加载到内存也不太合适。
在做数据分析时,需要十分频繁的读这些表,每秒有可能需要读上万次。其实内部的数据库集群完全可以胜任,但会对线上业务稍有影响。(你懂得,小公司不可能为离线分析做一套完整的数据存储服务。大部分数据分析还要借助线上的数据集群)
优化方案的思考有没有一种方式可以不增加线上的压力,同时提供更高效的查询方式?想过redis,但最终选择用文本存储。因为数据分析是一个独立的需求,不希望与现有的redis集群或者其它存储服务有交集。还有一个原因是每次分析的中间结果,对下一次分析并没有很大的实质作用,并不需要把结果持久存储,而且占的内存也会较多。最终使用文本存储,然后用二分来查找。
本文共计1320个文字,预计阅读时间需要6分钟。
起因:由于在分析数据时经常遇到需要频繁读取某一数据库表的场景,例如根据根数据地区ID获取地区名称、根据网站分类ID获取分类名称、根据关键词ID获取关键词等。
解决方法:代码需要频繁地读取数据库中的特定表,以便快速获取所需信息。
起因先说说事情的起因,最近在分析数据时经常遇到一种场景,代码需要频繁的读某一张数据库的表,比如根据地区ID获取地区名称、根据网站分类ID获取分类名称、根据关键词ID获取关键词等。虽然以上需求都可以在原始建表时,通过冗余数据来解决。但仍有部分业务存的只是关联表的ID,数据分析时需要频繁的查表。
所读的表存在共同的特点数据几乎不会变更
数据量适中,从一万到100多万,如果全加载到内存也不太合适。
在做数据分析时,需要十分频繁的读这些表,每秒有可能需要读上万次。其实内部的数据库集群完全可以胜任,但会对线上业务稍有影响。(你懂得,小公司不可能为离线分析做一套完整的数据存储服务。大部分数据分析还要借助线上的数据集群)
优化方案的思考有没有一种方式可以不增加线上的压力,同时提供更高效的查询方式?想过redis,但最终选择用文本存储。因为数据分析是一个独立的需求,不希望与现有的redis集群或者其它存储服务有交集。还有一个原因是每次分析的中间结果,对下一次分析并没有很大的实质作用,并不需要把结果持久存储,而且占的内存也会较多。最终使用文本存储,然后用二分来查找。

