【MySQL】pdo连接数据连接很慢

【MySQL】pdo连接数据连接很慢,第1张

概述上图是使用pdo连接mysql时计算的连接时间,为什么会差距这么大最终的问题就是在这里,连接使用127.0.0.1速度嗖嗖的总结在使用PDO连接数据库主机地址使用IP而不是域名,使用域名会让PDO在连接之前进行一次不必要的dns lookup,当DNS缓存过于巨大的时候,这个问题可能会更严重。(即使是运行在本机,使用 127.0.0.1 而不是 localhost)这是一份pdo的一...



上图是使用pdo连接MysqL时计算的连接时间,为什么会差距这么大

最终的问题就是在这里,连接使用127.0.0.1速度嗖嗖的

总结

在使用PDO连接数据库主机地址使用IP而不是域名,使用域名会让PDO在连接之前进行一次不必要的dns lookup,当DNS缓存过于巨大的时候,这个问题可能会更严重。(即使是运行在本机,使用 127.0.0.1 而不是 localhost)

这是一份pdo的一点封装代码
<?PHP/** * 数据库DAO -->>> 对数据库进行 *** 作的类 */class Db{    /**     * 连接数据的地址     * @var string     */    CONST DRIVER_CLASS = 'MysqL:host=127.0.0.1;dbname=ipone';    /**     * 数据库的用户名     * @var string     */    CONST USERname = 'root';    /**     * 数据库的密码     * @var string     */    CONST PASSWORD = 'root';    /**     * 数据库连接出错     * @var string|array     */    private $error = '没有异常';    /**     * 连接数据库驱动     * @var PDO     */    private $pdo;    public function __construct()    {        try {            $pStartTime=microtime(true);            // 初始化执行数据库类            // jdbc:MysqL://localhost:3306/"            $this->pdo = new PDO(self::DRIVER_CLASS,self::USERname,self::PASSWORD);            $this->pdo->query('SET nameS UTF8');            $this->pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);            $pEndTime=microtime(true);            $res1=$pEndTime-$pStartTime;            echo $res1;        } catch (PDOException  $e) {            // throw new \Exception($e->getMessage(),500);            return $e->getMessage();        }    }    /**     * 读 *** 作 -->> 查询     * @param  string $sql 查询sql     * @return array       执行结果     */    public function query($sql)    {        try {            $result = $this->pdo->query($sql);            $data = [];            foreach($result as $key => $value){                $data[] = $value;            }            return (count($data) <= 1) ? $data[0] : $data ;        } catch (PDOException  $e) {            // throw new \Exception($e->getMessage(),500);            return $e->getMessage();        }    }    /**     * [call description]     * @param  string $sql 查询的语句     * @param  string $select_param 参数     * @return [type]     */    public function call($sql,$select_param = null)    {        $stmt = $this->pdo->prepare($sql);        if ($stmt->execute()) {            if (isset($select_param)) {                return $this->pdo->query($select_param)->fetchAll();            } else {              return $this->pdo->fetchAll();            }            return true;        } else {            return false;        }    }    /**     * 执行sql     * @param  string $sql 查询sql     * @return array       执行结果     */    public function execute($sql)    {        try {            return $this->pdo->exec($sql);        } catch (PDOException  $e) {            // throw new \Exception($e->getMessage(),500);            return $e->getMessage();        }    }    //------------------    //属性get | set 方法    //------------------    /**     * 获取系统错信息     */    public function getError()    {        return $this->error;    }    public function write($data)    {        file_put_contents("log.txt",$data."\n",file_APPEND);    }}// $db = new Db;
总结

以上是内存溢出为你收集整理的【MySQL】pdo连接数据连接很慢全部内容,希望文章能够帮你解决【MySQL】pdo连接数据连接很慢所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/1151695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存