gpt4 book ai didi

php - 非常慢的mysql表

转载 作者:行者123 更新时间:2023-11-29 03:01:24 25 4
gpt4 key购买 nike

我有一个非常简单的 MySQL 表,它运行得非常慢,我不知道为什么。

结构是:

id               int(11)        (Primary Key)        
username varchar(64) (Index)
password varchar(64)
pws varchar(16)
default_password varchar(32)
session_id varchar(64)
license_number int(10) (Index)
contact_name varchar(64)
phone varchar(16)
first_login_date datetime
last_login_date datetime
status tinyint(4)
test_mode tinyint(4)
email varchar(64)
email_verified tinyint(4)

表中只有 80 多行,但以下查询花费了 67 秒!!

SELECT * FROM `users` ORDER BY `username` ASC

几乎所有在此表上的操作都非常慢。我做错了什么,或者我应该从哪里开始挖掘?

另一方面,我有另一个更复杂的表,有 20,000 行,运行速度非常快。

**更新...修复数据库和优化有助于选择。似乎更新非常慢,然后减慢选择...

$this->db->update( "UPDATE users SET session_id='' WHERE id=:userid", array( ":userid" => $this->getUserId() ) );

这是我正在使用的 PHP 数据库代码:

class Database extends PDO
{

public function __construct($DB_TYPE, $DB_HOST, $DB_NAME, $DB_USER, $DB_PASS)
{

$this->handleDB = new PDO($DB_TYPE.':host='.$DB_HOST.';dbname='.$DB_NAME, $DB_USER, $DB_PASS);
$this->handleDB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

}

public function update($sql, $array = array())
{
$sth = $this->handleDB->prepare($sql);
foreach ($array as $key => $value) {


if(is_int($value)){
$sth->bindValue("$key", $value, PDO::PARAM_INT);
}else{
$sth->bindValue("$key", $value, PDO::PARAM_STR);
}



}

$sth->execute();

return $sth->rowCount();
}
}
}

谢谢!

最佳答案

您可以检查两件事,如果您从客户端计算机运行查询,请检查您到服务器的网络速度。如果查询在服务器上运行缓慢,您可以检查 Mysql 服务器上的慢查询日志。其次,您尝试在表上重新创建索引。在 MySql 上尝试查表、修复表命令。

关于php - 非常慢的mysql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23073640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com