CakePHPのfind関数のcount引き数でカラムを指定する方法

DSC00821

2014年06月11日(水)

お久しぶりです。お久しぶりです。

今回は久しぶり?のCakePHPのTipsをご紹介します!!

CakePHPでfind関数を使うと思うのですが、結構クエリのことをなにも考えずに使っている人が多いなと思いますが、今回はそんな人に対して少しでも勉強していただきたいと思い、そのなかでもcount時に少しでもパフォーマンスアップできるクエリを生成するTipsをご教授いたします。

 

普通のfindとcountの使用例

$this->Model->find(‘count’);

 

クエリを考えたうえでfindとcountを使った使用例

$this->Model->find(‘count’, array(‘fields’=>’id’));

 

なにが違う?

それぞれのクエリを見てみましょう!

 

普通のfind関数で引数にcountを付与するパターン

$this->Model->find('count');

こちらが吐き出すクエリが以下です。

SELECT COUNT(*) AS `count` FROM …

 

find関数の引数にcountとフィールドid指定するパターン

$this->Model->find('count', array('fields'=>'id'));

こちらが吐き出すクエリです。

SELECT COUNT(id) AS `count` FROM …

 

なにが良いかというと、id指定しているおかげでインデックスが効くようになるらしいです。

確かに*だと、、、ねぇ。

 

あと、CakePHPをつかっていて、クエリを考えずに構築する人でfieldsを指定しないでfindを使ってしまう人が結構いるようですので、しっかりfieldsを指定してやってくださいな。使うカラムだけを取り出そうね!

メモリ的にもクエリ速度的にもそれだけで結構効果あると思いますよ!

 

 

 

スポンサードリンク

運営サービスPR

スポンサードリンク

運営サービスPR