`
羽落窗前
  • 浏览: 108130 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类
最新评论

PHP查询MySQl数据库的效率小记

 
阅读更多

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 可以更方便地查看记录。

 

 

分享到:
评论

相关推荐

    mysql数据库全文多库多表查找,查询所有数据库中包含指定字符的数据。

    1、支持所有数据库查询字符串,或者指定一个或者多个数据库查询字符串; 2、支持本地使用或者指定远程数据库地址; 3、支持命令行指定参数方便运行,支持省略参数; 4、支持显示匹配的数据来自数据库名称和表名称; ...

    MySQL数据库目录查询

    MySQL 数据库目录查询 MySQL 数据库目录查询是数据库管理员和开发人员非常关心的一项任务。了解 MySQL 数据库的目录结构对于数据库的管理、维护和优化非常重要。在本文中,我们将详细介绍如何查询 MySQL 数据库的...

    PHP中基于MYSQLI类操作MYSQL数据库的实现.pdf

    在本文中,我们将讨论如何使用 PHP 语言基于 MYSQLI 类操作 MYSQL 数据库,以提高网站的开发效率和性能。 在 PHP 中,MYSQLI 是一种扩展了 MYSQL 的类,提供了对 MYSQL 数据库的操作接口。通过使用 MYSQLI 类,我们...

    PHP查询MySQL数据库的完整代码.doc

    PHP查询MySQL数据库的完整代码.doc

    h2数据导入mysql数据库(看评论酌情下载)

    h2 数据库导入 MySQL 数据库 h2 数据库导入 MySQL 数据库是指将 h2 数据库中的数据导入到 MySQL 数据库中,以便更好地存储和管理数据。下面将详细介绍 h2 数据库导入 MySQL 数据库的步骤。 首先,需要创建一个 ...

    MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!

    MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!

    VB6.0连接MySQL数据库

    在信息技术领域,VB6.0(Visual Basic 6.0)是一个经典的编程语言版本,而MySQL则是一个流行的开源关系数据库管理系统。在编写应用程序时,经常会涉及到数据库的操作,比如查询、更新、删除和插入等。本文将详细地...

    MySQL数据库应用形考实验1-4全答案.zip

    在这个"MySQL数据库应用形考实验1-4全答案.zip"压缩包中,包含了四个关于MySQL基础操作的实验训练,涵盖了从数据库和表的创建,到数据的查询、增删改,以及数据库系统的维护等关键知识点。以下是对这些实验的详细...

    MySQL数据库巡检手册 MySQL DBA必备

    MySQL数据库巡检手册是MySQL数据库管理员(DBA)在进行数据库管理和维护工作中非常重要的参考资料。巡检手册包含了数据库性能、安全、运行状况等方面的检查项,以确保数据库能够正常稳定运行,及时发现并解决潜在问题...

    连接android和php+mysql数据库

    本文将详细介绍连接 Android 和 PHP+MySQL 数据库的过程,包括安装 WAMP Server、创建 PHP 项目、创建 MySQL 数据库和表、使用 PHP 连接 MySQL 数据库等步骤。 安装 WAMP Server WAMP 是一个一键安装的软件,提供...

    国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表

    "国家开放大学 MySQL数据库应用实验训练1 在MySQL中创建数据库和表" 本实验训练旨在让学生掌握 MySQL 中的数据库和表的创建过程。 MySQL 是一种关系型数据库管理系统,广泛应用于各种领域。为提高学生的实践能力,...

    matlab访问mysql数据库教程及代码

    MATLAB 访问 MySQL 数据库教程及代码 MATLAB 是一个功能强大的数学计算软件,而 MySQL 是一个流行的关系数据库管理系统。在本教程中,我们将学习如何使用 MATLAB 访问 MySQL 数据库,并提供详细的代码示例。 一步...

    国家开放大学 数据库运维 形考一 MySQL数据库服务器配置

    MySQL 服务器的配置方法包括启动和停止 MySQL 服务器、连接到 MySQL 服务器、查看错误日志文件、启用二进制日志、慢查询日志和通用查询日志、关闭二进制日志、慢查询日志和通用查询日志、创建数据库、查看系统状态...

    基于Docker的MySQL数据库性能分析.pdf

    知识点5: Docker技术的应用可以提高项目开发效率和质量,但其对数据库性能的影响需要通过实际测试和分析来验证,以确保基于Docker的MySQL数据库的应用价值。 知识点6: 在网站项目中,选择合适的数据库管理系统是...

    MySQL数据库技术与项目应用教程教案.pdf

    - 项目5:查询性能优化,学习如何提高数据库查询效率。 - 项目6-8:数据库程序设计及数据库维护,掌握数据库应用设计和维护的高级技巧。 在进行项目实践时,学生需要安装和配置MySQL数据库,通过练习题和实战项目来...

    MySQL数据库原理及设计方法.pdf

    总的来说,MySQL数据库原理及设计方法涉及到网络通信、查询优化、并发控制、事务处理等多个层面,理解这些知识对于有效地使用和管理MySQL数据库至关重要。通过合理的设计和配置,可以确保MySQL在高并发环境下提供...

    MySQL数据库基础与实例教程所有资源

    MySQL基于SQL(结构化查询语言),它是用于管理关系数据库的标准语言。在MySQL中,数据存储在表格中,表格之间可以建立关联,形成复杂的数据库结构。MySQL支持多种数据类型,如整数、浮点数、字符串、日期和时间等,...

    C#连接操作MySQL数据库进行添加、修改、删除、查询等操作的演示

    鉴于MySQL数据库的流行与强大,决定多学习使用。...提供添加、修改、删除用户功能,同时,为了测试MySQL数据库的访问性能,提供批量数量添加测试功能,如批量添加10000个用户,看看数据库的执行效率。界面作如下布

    c# MySql数据库存储图片

    在C#编程环境中,与MySQL数据库进行交互是常见的任务,特别是在需要存储非结构化数据如图片时。本示例将详细介绍如何使用C#连接到MySQL数据库,并实现图片的存储功能。 首先,确保你已安装了MySQL数据库服务器以及...

Global site tag (gtag.js) - Google Analytics