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 数据库中,查询优化是一个非常重要的方面。在实际应用中,高效的查询可以提高整个系统的性能和响应速度。下面我们将介绍几个提高 MySQL 数据库查询...
1、支持所有数据库查询字符串,或者指定一个或者多个数据库查询字符串; 2、支持本地使用或者指定远程数据库地址; 3、支持命令行指定参数方便运行,支持省略参数; 4、支持显示匹配的数据来自数据库名称和表名称; ...
本文实例讲述了php查询mysql数据库并将结果保存到数组的方法。分享给大家供大家参考。具体分析如下: 这里主要用到了mysql_fetch_assoc函数 mysql_fetch_assoc语法如下: array mysql_fetch_assoc (resource $...
MySQL 数据库目录查询 MySQL 数据库目录查询是数据库管理员和开发人员非常关心的一项任务。了解 MySQL 数据库的目录结构对于数据库的管理、维护和优化非常重要。在本文中,我们将详细介绍如何查询 MySQL 数据库的...
在本文中,我们将讨论如何使用 PHP 语言基于 MYSQLI 类操作 MYSQL 数据库,以提高网站的开发效率和性能。 在 PHP 中,MYSQLI 是一种扩展了 MYSQL 的类,提供了对 MYSQL 数据库的操作接口。通过使用 MYSQLI 类,我们...
在信息技术领域,VB6.0(Visual Basic 6.0)是一个经典的编程语言版本,而MySQL则是一个流行的开源关系数据库管理系统。在编写应用程序时,经常会涉及到数据库的操作,比如查询、更新、删除和插入等。本文将详细地...
h2 数据库导入 MySQL 数据库 h2 数据库导入 MySQL 数据库是指将 h2 数据库中的数据导入到 MySQL 数据库中,以便更好地存储和管理数据。下面将详细介绍 h2 数据库导入 MySQL 数据库的步骤。 首先,需要创建一个 ...
MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!
在这个"MySQL数据库应用形考实验1-4全答案.zip"压缩包中,包含了四个关于MySQL基础操作的实验训练,涵盖了从数据库和表的创建,到数据的查询、增删改,以及数据库系统的维护等关键知识点。以下是对这些实验的详细...
"国家开放大学 MySQL数据库应用实验训练1 在MySQL中创建数据库和表" 本实验训练旨在让学生掌握 MySQL 中的数据库和表的创建过程。 MySQL 是一种关系型数据库管理系统,广泛应用于各种领域。为提高学生的实践能力,...
MATLAB 访问 MySQL 数据库教程及代码 MATLAB 是一个功能强大的数学计算软件,而 MySQL 是一个流行的关系数据库管理系统。在本教程中,我们将学习如何使用 MATLAB 访问 MySQL 数据库,并提供详细的代码示例。 一步...
MySQL 服务器的配置方法包括启动和停止 MySQL 服务器、连接到 MySQL 服务器、查看错误日志文件、启用二进制日志、慢查询日志和通用查询日志、关闭二进制日志、慢查询日志和通用查询日志、创建数据库、查看系统状态...
知识点5: Docker技术的应用可以提高项目开发效率和质量,但其对数据库性能的影响需要通过实际测试和分析来验证,以确保基于Docker的MySQL数据库的应用价值。 知识点6: 在网站项目中,选择合适的数据库管理系统是...
MySQL数据库巡检手册是MySQL数据库管理员(DBA)在进行数据库管理和维护工作中非常重要的参考资料。巡检手册包含了数据库性能、安全、运行状况等方面的检查项,以确保数据库能够正常稳定运行,及时发现并解决潜在问题...
- 项目5:查询性能优化,学习如何提高数据库查询效率。 - 项目6-8:数据库程序设计及数据库维护,掌握数据库应用设计和维护的高级技巧。 在进行项目实践时,学生需要安装和配置MySQL数据库,通过练习题和实战项目来...
总的来说,MySQL数据库原理及设计方法涉及到网络通信、查询优化、并发控制、事务处理等多个层面,理解这些知识对于有效地使用和管理MySQL数据库至关重要。通过合理的设计和配置,可以确保MySQL在高并发环境下提供...
MySQL基于SQL(结构化查询语言),它是用于管理关系数据库的标准语言。在MySQL中,数据存储在表格中,表格之间可以建立关联,形成复杂的数据库结构。MySQL支持多种数据类型,如整数、浮点数、字符串、日期和时间等,...
1. **数据库原理**:MySQL基于SQL(结构化查询语言),它是管理和处理数据库的标准语言。在这一部分,我们将学习到关系数据库模型,包括实体、属性、键和关系等概念。此外,事务处理、并发控制和恢复机制也是理解...
MySQL 数据库是当前网络环境中最流行的开源关系型数据库之一,随着网络环境中数据总量的急剧攀升,对数据库查询的响应时间提出了更严格的要求。为了提高查询效率,需要研究 MySQL 数据库的查询性能优化。 本文主要...
鉴于MySQL数据库的流行与强大,决定多学习使用。...提供添加、修改、删除用户功能,同时,为了测试MySQL数据库的访问性能,提供批量数量添加测试功能,如批量添加10000个用户,看看数据库的执行效率。界面作如下布