`
羽落窗前
  • 浏览: 107679 次
  • 性别: 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 可以更方便地查看记录。

 

 

分享到:
评论

相关推荐

    sql查询优化(提高MySQL数据库查询效率的几个技巧)

    SQL 查询优化(提高 MySQL 数据库查询效率的几个技巧) 在 MySQL 数据库中,查询优化是一个非常重要的方面。在实际应用中,高效的查询可以提高整个系统的性能和响应速度。下面我们将介绍几个提高 MySQL 数据库查询...

    php查询mysql数据库并将结果保存到数组的方法

    本文实例讲述了php查询mysql数据库并将结果保存到数组的方法。分享给大家供大家参考。具体分析如下: 这里主要用到了mysql_fetch_assoc函数 mysql_fetch_assoc语法如下:  array mysql_fetch_assoc (resource $...

    MySQL数据库目录查询

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

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

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

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

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

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

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

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

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

    连接android和php+mysql数据库

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

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

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

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

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

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

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

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

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

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

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

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

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

    MySQL数据库原理及应用(第2版)(微课版)-教学用数据库(Mysql数据库备份文件).zip

    1. **数据库原理**:MySQL基于SQL(结构化查询语言),它是管理和处理数据库的标准语言。在这一部分,我们将学习到关系数据库模型,包括实体、属性、键和关系等概念。此外,事务处理、并发控制和恢复机制也是理解...

    基于MySQL数据库的查询性能优化研究.pdf

    MySQL 数据库是当前网络环境中最流行的开源关系型数据库之一,随着网络环境中数据总量的急剧攀升,对数据库查询的响应时间提出了更严格的要求。为了提高查询效率,需要研究 MySQL 数据库的查询性能优化。 本文主要...

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

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

    c# MySql数据库存储图片

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

    Mysql数据库文档生成工具(含使用说明)

    总的来说,MySQL数据库文档生成工具是一个强大的辅助工具,它能有效地减少手动编写文档的时间和错误,提高工作效率。正确配置和使用这类工具,可以帮助我们在项目管理中保持数据库设计的整洁和一致性,对于大型项目...

Global site tag (gtag.js) - Google Analytics