1. MySQL数据库的连接和关闭
根据W3CSchool上的描述:
PHP 脚本一结束,就会关闭数据库连接。如需提前关闭连接,请使用 mysql_close() 函数。
http://www.w3school.com.cn/php/php_mysql_connect.asp
现在做PHP开发,通常会用到一些框架,一次脚本执行,对数据库的操作不一定是在一个函数里完成的。这时候频繁的连接和关闭,会降低执行效率。
为此特意做了一个实验,代码如下:
$host = '127.0.0.1';
$username = 'root';
$password = '';
$database = 'test';
$time = new rumtine();
echo '<p>插入100条数据,每次插入连接一次数据库,插入后关闭连接</p>';
$time->start();
for($i=1;$i<=100;$i++){
$query1 = "INSERT INTO testdata2(val) VALUES('{$i}')";
$con = mysql_connect($host, $username, $password);
mysql_select_db($database, $con);
mysql_query($query1);
mysql_close();
}
$time->end();
echo $time->spend().'<br/>';
echo '<p>插入100条数据,每次插入连接一次数据库,不关闭连接。</p>';
$time->start();
for($i=1;$i<=100;$i++){
$query1 = "INSERT INTO testdata2(val) VALUES('{$i}')";
$con = mysql_connect($host, $username, $password);
mysql_select_db($database, $con);
mysql_query($query1);
}
$time->end();
echo $time->spend().'<br/>';
执行五次的结果分别是:
每次操作后关闭连接:171.1 165.5 149.9 177.4 156.8
操作后不去关闭连接:144.8 142 132 146.1 137.9
2. 批量插入数据
批量INSERT记录的时候,最好能用
INSERT INTO tablename (column1, column2 ...) VALUES (val1, val2), (val1, val2), .....
这个效率比一条一条插入要快很多很多……
3. DISTINCT和GROUP BY
- Group by会根据group的字段按ASC排序
- DISTINCT可以用于计算,一共有多少种不同数值:
例如: SELECT COUNT( DISTINCT val) FROM tablename
- Group by可以用来计算,每一种不同数值,有多少:
例如: SELECT val, COUNT(val) FROM tablename GROUP BY val
- Group by一个常见用法,查询学生总成绩:
例如: 一张表scored,有学生ID(sid), 科目ID(cid), 成绩(val)
SELECT sid, sum(val) FROM scored group by sid
4. 避免在字段中定义允许为NULL,会影响查询效率。
5. 在SELECT语句前面加EXPLAIN,可以查看查询语句使用了几个索引。
6. 在命令模式下,在SELECT语句后面加 LIMIT 1 \G 可以更方便地查看记录。
分享到:
相关推荐
sql查询优化 提高MySQL数据库查询效率的几个技巧
国开作业《MySQL数据库应用》实验训练1在MySQL中创建数据库和表参考107.pdf国开作业《MySQL数据库应用》实验训练1在MySQL中创建数据库和表参考107.pdf国开作业《MySQL数据库应用》实验训练1在MySQL中创建数据库和表...
1、支持所有数据库查询字符串,或者指定一个或者多个数据库查询字符串; 2、支持本地使用或者指定远程数据库地址; 3、支持命令行指定参数方便运行,支持省略参数; 4、支持显示匹配的数据来自数据库名称和表名称; ...
很详细很有用的PHP操作mysql数据库教程。
MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!
主要介绍了Python实现的查询mysql数据库并通过邮件发送信息功能,可实现Python针对mysql的查询与宕机信息通过邮件发送的相关操作技巧,需要的朋友可以参考下
本文实例讲述了php查询mysql数据库并将结果保存到数组的方法。分享给大家供大家参考。具体分析如下: 这里主要用到了mysql_fetch_assoc函数 mysql_fetch_assoc语法如下: array mysql_fetch_assoc (resource $...
MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库
MySQL数据库MySQL数据库
国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表
PHP+MySQL数据库连接 PHP怎么链接mysql数据库
MySQL数据库巡检手册 MySQL DBA必备,建议下载参考学习
MySQL数据库修复程序,表查看,读取,表设计。SQL数据库内容读取。
查询mysql数据库中的二进制图片数据,并全部显示出来,很简单的例子,有两个jsp文件
国家开放大学 MySQL数据库应用 实验训练2:数据查询操作
php对mysql数据库的备份及还原
完整版 MySQL8.0从入门到精通 MySQL数据库教程 第07章 查询数据(共50页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第08章 插入、更新与删除数据(共12页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库...
MySQL 数据库备份 和 恢复
MySQL数据库命令大全 初学者的好东西!!
mysql数据库基础视频178讲,包括视频、sql脚本、ppt、以及复习资料