相关疑难解决方法(0)

UTF-8 vs Latin1 mysql,未在utf-8上使用的索引

我尝试用UTF-8和Latin1 Char集创建我的mysql表.当我使用Latin1时,我使用了索引,当我使用UTF-8时,在选择/限制记录时不使用索引.是否有我错过的Char集导致这种情况发生?

干杯

mysql encoding

8
推荐指数
1
解决办法
4014
查看次数

PHP:查询MySQL的最快方法是什么?因为PDO非常缓慢

我需要执行一个简单的查询.

从字面上看,我需要做的就是:

SELECT price, sqft, zipcode FROM homes WHERE home_id = X
Run Code Online (Sandbox Code Playgroud)

当我使用PHP PDO时,我读过的是连接到MySQL数据库的推荐方法,只需创建连接就需要610毫秒.

我的代码如下:

try {
    $conn_str = DB . ':host=' . DB_HOST . ';dbname=' . DB_NAME;
    $dbh = new PDO($conn_str, DB_USERNAME, DB_PASSWORD);
    $params = array();    
    $sql = 'SELECT price, sqft, zipcode FROM homes WHERE home_id = :home_id';
    $params[':home_id'] = X;
    $stmt = $dbh->prepare($sql);    
    $stmt->execute($params);
    $result_set = $stmt->fetchAll(PDO::FETCH_ASSOC);
    // json output  
    ob_start("ob_gzhandler");
    header('Content-type: text/javascript; charset=utf-8');
    print "{'homes' : ";
    print json_encode( $result_set );
    print '}';
    ob_end_flush(); …
Run Code Online (Sandbox Code Playgroud)

php mysql performance pdo

7
推荐指数
3
解决办法
1万
查看次数

PDO - 与手动执行相比,特定查询速度极慢

我遇到了一个特定查询的查询执行速度极慢(如下所示).

奇怪的是,当手动运行查询(使用phpMyAdmin)时,只需要一秒钟即可完成,而使用PDO从PHP运行它需要大约10分钟!

其他查询正常执行(PDO和phpMyAdmin之间的持续时间相等).

技术细节:

  • 我正在使用Google的AppEngine和Cloud SQL.
  • 运行PHP5.5
  • 执行php代码的app引擎实例不忙.
  • 查询结果大约有10,000行

我正在运行的查询:

SELECT s.saleID,s.year,s.kilometrage,s.hand,s.price,s.pictures,u.platform,s.date,
   (SELECT AVG(price) FROM sales s2 WHERE s2.carID = s.carID AND s2.year = s.year HAVING COUNT(s2.saleID)>5) AS avgPrice
   FROM sales s JOIN users u ON u.ID = s.sellerID LEFT JOIN sold so ON s.saleID = so.saleID WHERE so.saleID IS NULL
Run Code Online (Sandbox Code Playgroud)

关于这个问题的任何提示?它与索引无关,因为查询在phpMyAdmin下运行得非常好.

编辑

如果有人也有这个 - 似乎PMA在查询的分页上添加了一个隐含的LIMIT,这使得在某些情况下一切运行得更快.

php mysql pdo

5
推荐指数
1
解决办法
191
查看次数

标签 统计

mysql ×3

pdo ×2

php ×2

encoding ×1

performance ×1