thinkphp 内存查询表 防止多次查库

    //从内存查询 表 以防止多次查库
    private static function selectTable($tableName,array $where,$getFirst=false){
        $res=array();
        if(!isset(self::$tableData[$tableName])){
            self::$tableData[$tableName]=M($tableName)->select();
        }
        if(false===self::$tableData[$tableName]){
            return false;
        }

        is_null(self::$tableData[$tableName]) and self::$tableData[$tableName]=array();
        foreach(self::$tableData[$tableName] as $val){
            $flag=true;
            foreach($where as $k=>$v){
                if($val[$k]!=$v){
                    $flag=false;
                    break;
                }
            }
            $flag and $res[]=$val;
        }
        $getFirst and $res=current($res);
        empty($res) and $res=null;
        return $res;
    }
时间: 2024-10-12 16:14:32

thinkphp 内存查询表 防止多次查库的相关文章

使用ThinkPHP开发中MySQL性能优化的最佳21条经验

使用ThinkPHP开发中MySQL性能优化的最佳21条经验讲解,目前,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询大多数的MySQ

ThinkPHP 3.2 性能优化,实现高性能API开发

需求分析 目前的业务全站使用ThinkPHP 3.2.3,前台.后台.Cli.Api等.目前的业务API访问量数千万,后端7台PHP 5.6,平均CPU使用率20%. 测试数据 真实业务 php5.6:500 QPS php7.0:850 QPS 真实业务中减少一次Mysql查询业务或者减少一次Redis读写 php5.6:800 QPS php7.0:1250 QPS 目前优化的结果: ThinkPHP可以完整的跑在缓存中: 在不需要mysql查询时,不建立mysql连接: 不读写redis时

内存故障与分析

内存故障与分析 一.开机无显示 由于内存条原因出现此类故障是比较普遍的现象,一般是因为内存条与主板内存插槽接触不良造成(在排除内存本身故障的前提下),只要用橡皮擦来回擦试其金手指部位即可解决问题(不要用酒精等清洗),还有就是内存损坏或主板内存槽有问题也会造成此类故障. 由于内存条原因造成开机无显示故障,主机扬声器一般都会长时间蜂鸣(针对Award Bios而言) 二.windows系统运行不稳定,经常产生非法错误 出现此类故障一般是由于内存芯片质量不良或软件原因引起,如若确定是内存条原因只有更换

ThinkPHP框架系统源码解析——URL路由解析

1 一.ThinkPHP框架目录 2 /test/index.php //项目入口文件 3 /ThinkPHP/ThinkPHP.php //框架入口文件 4 5 Common 框架公共文件目录(函数库) 6 ThinkPHP/Common/runtime.php //框架初次运行文件 7 ThinkPHP/Common/common.php //框架基础函数库 8 ThinkPHP/Common/functions.php //标准模式公共函数库 9 10 Conf 框架配置文件目录 11 T

详解thinkphp模型

模型这一块,Think PHP讲解的比较复杂,并且内部做了各种数据库兼容,我认为,虽然它做了这么多的兼容,但是并不代表我们要使用那么多晦涩的用法,事实上,那些用法是降低效率的. ORM:object relational mapping 对象关系映射,以中间件的形式存在. CURD: create update read delete ActiveRecord模式:领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录. 领域模型模式和模型类关系密切,这里

thinkphp架构

模块: Common是一个特殊的公共模块,访问所有子模块之前都会首先加载Common模块配置文件( Conf/config.php )和公共函数文件( Common/function.php ). 但Common模块本身不能通过URL直接访问. 配置禁止访问的模块的方法: 'MODULE_DENY_LIST' => array('Common','Runtime','Api') 配置允许访问的模块: 'MODULE_ALLOW_LIST' => array('Home','Admin','Us

ThinkPHP 多表查询-如果字段A相同,则把字段B相加

在一个项目中,需要查询表tr_product中的user_id字段,如果user_id相同,则把其对应的money字段相加,数据库截图如下: 实现代码: $Model = D('Model'); $res =$Model->query("SELECT user_id,sum(money) from tr_order GROUP BY user_id"); 结果: array (size=2) 0 => array (size=2) 'user_id' => strin

ThinkPHP第二课 框架MVC目录和URL访问方式

第二课 框架MVC目录和URL访问方式 1.说明: ThinkPHP是基于MVC的框架,认识框架目录将更好的实现分层,掌握ThinkPHP.URL访问就是访问框架的控制器(MVC中的C),共有四种方式,框架中的C起到分模块的作用. url的4种访问方式: 1.PATHINFO 模式 -- 重点!!!!!! http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2 2.普通模式 http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2

ThinkPHP核心框架实现

之前和朋友一块学过够语言,作为系统级别的语言,没有一定的功力和系统编程 经验,很难快速的搭建起来可堪来用的代码块 刚好在公司在用ThinkPHp,这个框架还算是友好,比较灵活.加上PHP的很多函数感觉没怎么用过,正好看看如何利用一些函数搭建起来一套系统.虽然跟着老师创业的时候写了一段时间原生PHP 直接进入代码: 再次学习TP 用户URL请求 调用应用入口文件 载入框架入口文件*******THINKPHP.php 记录初始化运行时间和内存开销 系统常量判断和定义 载入框架引导类*******T