html 连续发送数据库,不要在循环中对数据库进行操作.htm
不要在循环中对数据库进行操作
性能非常低下,应改为用IN查询
示例:
1、在循环中查询数据库,增加gv_title属性(性能低下)
foreach ($res['data'] as &$val)
{
$gamesql = 'SELECT `gv_title` FROM
`mzw_game_version` WHERE `gv_id` =
'.$val['gv_id'];
$gamequery = $this->db->query( $gamesql
);
$val['gv_title'] = isset(
$gamequery->row()->gv_title ) ? $gamequery->row()->gv_title :
'';
$val['select_name_cf'] =
'';
$val['do_name_cf']
=
'';
$val['iTotalRecords']
=
$res['total'];
$val['iTotalDisplayRecords'] =
$res['total'];
$val['gc_client']
=
$arr_client[$val['gc_client']];
$val['gc_hide']
=
$arr_hide[$val['gc_is_hide']];
$val['gc_top']
=
$arr_top[$val['gc_is_top']];
$val['gc_top_time']
= date( 'Y-m-d H:i:s', $val['gc_top_time']
);
$val['gc_create_time'] =
date( 'Y-m-d H:i:s', $val['gc_create_time']
);
}
2、改用 IN 查询,速度提高至少10倍
foreach ($res['data'] as &$val)
{
$vid[]
= $val['gv_id'];
color=#ff0000>//将gv_id存入到数组
$val['select_name_cf'] =
'';
$val['do_name_cf']
=
'';
$val['iTotalRecords']
=
$res['total'];
$val['iTotalDisplayRecords'] =
$res['total'];
$val['gc_client']
=
$arr_client[$val['gc_client']];
$val['gc_hide']
=
$arr_hide[$val['gc_is_hide']];
$val['gc_top']
=
$arr_top[$val['gc_is_top']];
$val['gc_top_time']
= date( 'Y-m-d H:i:s', $val['gc_top_time']
);
$val['gc_create_time'] =
date( 'Y-m-d H:i:s', $val['gc_create_time']
);
}
if ( empty( $vid ) ) $vid =
array(0);
$vid_str = implode( ',', $vid
);
$sql = "SELECT
gv_title,gv_id FROM mzw_game_version WHERE gv_id IN ({$vid_str})";
color=#ff0000>//用IN方法对id数组进行查询
$query = $this->db->query( $sql
);
$title_res =
$query->result_array();
$title_arr =
array();
foreach ($title_res as $k => $v)
{
$title_arr[$v['gv_id']] =
$v['gv_title'];
}
foreach ($res['data'] as &$val)
{
$val['gv_title'] =
$title_arr[$val['gv_id']];
}
一键复制
编辑
Web IDE
原始数据
按行查看
历史
html 连续发送数据库,不要在循环中对数据库进行操作.htm相关推荐
- 避免在循环中访问数据库,一次对于PHP代码的优化经历
避免在循环中访问数据库,一次对于PHP代码的优化经历 这次是在上班过程中发生的事件,我隔壁的同事正在写一个功能.这个功能简单的描述是这样的:从数据库几个表中获取数据,导入到excel,类似的功能,实际 ...
- 小解的C语言笔记:循环中的取余操作 0%0
循环中的取余操作 0%0 题目 总结 题目 p 你的程序要读入一个整数,范围是[-100000,100000].然后,用汉语拼音将这个整数的每一位输出出来. 如输入1234,则输出: yi er sa ...
- docker 数据库 mysql_在Docker中体验数据库之MySql
在上一篇在Docker中体验数据库之Mongodb之后,这次记录一下在docker中安装mysql.过程要比Mongodb麻烦一点-- 参考网址: https://dev.mysql.com/doc/ ...
- python管理数据库的库_Python中管理数据库
前言:Python中是利用MySQL模块和数据库之间建立联系. MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL ...
- wordpress 数据库_在WordPress中使用数据库
wordpress 数据库 Out of the box, WordPress provides tons of functions that can be used to interact with ...
- 怎样修改游戏服务器里的数据库,修改游戏服务器中的数据库
修改游戏服务器中的数据库 内容精选 换一换 业界对备份一致性的定义包括如下三类:不一致备份:备份的文件.磁盘不在同一个时间点.崩溃一致性备份:崩溃一致性备份会捕获备份时磁盘上已存在的数据,文件/磁盘数 ...
- oracle数据库表excel文件位置,“如何将excel表格数据导入到oracle数据库对应的表中?“数据库文件导入excel表格数据库中...
如何实现Excel表格自动导入到数据库 库?是什么数据库?sql?access?mysql?我以sql2008为例子 1.打开SQL Server Management Studio-任务-数据 2. ...
- python数据库迁移教程_django中的数据库迁移的实现
Django是用python写的web开发框架,其特点是: 1.重量级框架,内部封装了很多的功能组件,使开发变的简便快速, 2.MVT模式:前后端分离,高内聚低耦合,m:model,与mvc中的m功能 ...
- mysql数据库插入datetime_往MySQL数据库datetime类型字段中插入数据库的当前时间
代码: StringBuilder sb = new StringBuilder(); sb.append(" insert into uosdetailfile ("); sb. ...
最新文章
- 第十届蓝桥杯JavaB组总结
- 修改ALSM_EXCEL_TO_INTERNAL_TABLE的限制
- linux常用命令:sudo 命令
- 数据库元数据数据字典查询_3_列出给定表的基本信息
- 安卓入门程序《发短信》
- 接收字节流_Java中的IO流之输入流|乐字节
- 默认适应窗口_PS教程基础之cs6默认快捷键汇总及补充
- Git 删除所有文件
- 微软Win10最新补丁KB5017380更新了什么?
- urdf 学习与制作
- [车联网安全自学篇] Android安全之Android so文件分析「详细版」
- 【GD32F310开发板试用】Contiki-NG在GD32F310的移植
- 计算机网络根据其规模大小和延伸范围,网络管理员考试计算机网络的分类
- 《华尔街》观后笔记9——拯救危机
- MySql学习笔记(2)--数据库操作及数据管理
- Ubuntu 如何使用crontab 定时检查srs进程
- BZOJ2277 [Poi2011]Strongbox 【数论】
- .NET 6 Preview 1 发布
- OFBiz —— 关于用户角色安全组的设计
- 多线程和虚拟机的宏观理解
热门文章
- 第一个通过HCIEv3.0的咱的学员
- python3 json.dump乱码问题
- 20135337朱荟潼 Linux第八周学习总结——进程的切换和系统的一般执行过程
- Bootstrap基础一 CSS 概览
- java实现选择排序
- CentOS6 kvm添加网卡桥接口脚本
- canvas是什么牌子的包_Jack Spade DIPPED INDUSTRIAL CANVAS UTILITY BRIEF 男款帆布手提包
- tensorflow tf.nn.max_pool_with_argmax返回最大池化对应索引值
- 无法安装.msi文件
- Druid:数据库连接池实现技术