php - 调用 mysqli_fetch_assoc 最有效的方法

标签 php mysql mysqli performance

最近,我已将所有“mysql 特定”函数移至一个类中,这样,如果将来我决定切换数据库语言,我不必更正所有脚本,而只需更正一个类。

我的问题是关于大数据的效率和速度。

例如,现在在我的database.class.php中我有:

public function fetchAssociative($data) {
    $assocarr = array();
    while ($row = mysqli_fetch_assoc($data)){
        array_push($assocarr, $row);
    }
    return $assocarr;
}

然后在我的脚本中调用它。

与我刚使用时相比

while ($row = mysqli_fetch_assoc($result)) {
   //operate on returned data ONE ROW AT A TIME
}

就在我的脚本中。

正如我之前提到的,将所有 mysql 特定功能放在一个类中很方便,但是速度效率如何呢?在此示例中,我的脚本必须等待所有数据返回,然后才能执行任何操作,与之前一样(使用 while ($row = mysqli_fetch_assoc($result)))操作,每次返回的每一行上执行一个操作。

TLDR:如果我将 mysql 特定函数推回到类中,效率和速度会受到怎样的影响?

最佳答案

My question is about efficiency and speed on large data.

那么您应该担心 SQL 查询和索引。 不是 PHP 类或 PHP 函数。MySQL 和大数据(读取大型数据集)的 98% 性能问题是由低效 SQL 查询(如子查询、IN/EXISTS 语句、无索引、错误索引、使用没有索引的联接以及不理解 SQL 查询)引起的。 MySQL 引擎..

关于php - 调用 mysqli_fetch_assoc 最有效的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20076386/

相关文章:

java - 如何使用传递给 main 方法的参数从 php 调用可执行 jar

java - 从 PHP 脚本调用 Java(或 python 或 perl)

php - 还有什么比 PHPDoc 更好的吗?

php - 递增数字不会出错

php - mysqli,OOP 与过程

php - Mysql多插入查询

java - JPA RollbackException 但不在单元测试中

php - 多个 MySQL 查询以及如何使我的脚本运行得更快

php - 可捕获的 fatal error :第14行的C:\xampp\htdocs\PokemonFight\pokemon.php中无法将类mysqli_result的对象转换为字符串

php - 使用 UNION 查询在 while 语句中获取总数