COUNTを実行するSELECTステートメントが3つあります。これらを組み合わせると、mysqlの方が効率的で親切になると思いました。
$query = $db->query("SELECT count(category) FROM table WHERE cid='290463' and category = 'x'");
$tot_x = $db->result($query, 0);
$query = $db->query("SELECT count(category) FROM table WHERE cid='290463' and category = 'y'");
$tot_y = $db->result($query, 0);
$query = $db->query("SELECT count(category) FROM table WHERE cid='290463' and category = 'z'");
$tot_z = $db->result($query, 0);
1つのステートメントに:
SELECT
SUM(category='x' AND cid='290463') as tot_x,
SUM(category='y' AND cid='290463') as tot_y,
SUM(category='z' AND cid='290463') as tot_z
FROM table
問題は、新しいステートメントが元の3つを個別に実行するよりも遅いことです。
新しいステートメントが遅い理由と、SELECTをより速くするための推奨事項を明らかにできる人はいますか?