2012-03-07 7 views
3

selectクエリでMySQLのCONCAT()関数を使用する際に、パフォーマンスに関する懸念事項はありますか?データベースからの結果セットが返された後に、PHPを使用してビューに対して単純な選択とフォーマット文字列を実行するのがより速く/遅く/無視できるか?または、より複雑なビューのために既にフォーマットされた文字列を返す、CONCAT()への複数の呼び出しを伴うより複雑なSQLクエリですか?一度に何千人もこのような操作の数百を行うことを計画している場合を除き、それはどこも問題ないでしょう文字列performacne:PHP対MySQL

<?php 
    $query = 'Select lastname, firstname from people'; 
    ... 

    $name = $data['lastname'] . ', ' . $data['firstname']; //OR 
    $name = sprintf("%s, %s", $data['lastname'], $data['firstname']); 
?> 
+8

あなたはそれはそれを見つけるために時間を費やしても、価値があると思いますなぜあなたのベンチマークは、それが – dynamic

+0

かなり簡単だろうか? – zerkms

+0

高速であるどんなに、あなたは非常に簡単に非常に多くのかなりの努力なしで複数のマシンで実行PHPを持ってすることはできませんが、検討し、複数のMySQLのボックスを持っています。 –

答えて

2

SQLエンジンを使用したフィルタリングとデータマッサージをWebサーバーと比較して行うことで、ほとんどの場合、より良い結果が得られます。そのような質問を開く前に

+0

私はこれが古いことを知っていますが、なぜですか?あなたはいくつかのリンクを提供できますか? –

+1

まあ、いくつかの検索はソースを提供しますが、主な違いは、SQLエンジンはオブジェクトをインスタンス化する必要がなく、データのスキーマを既に知っていることです。 Webサーバー上でこれを行う場合(PHP、C#などを使用)、これらの利点は失われます。 (現実的に、これはさらに顕著ではないでしょうあなたがこのの多くをやっていた場合を除き、まだ私が見SQL –

+0

におけるこの種の作業を行うための最善の方法ではあるが、1と説明してくれてありがとう: –

1

:このから

select CONCAT(lastname, ', ', firstname) from people; 

より速い/遅い/いいえ違い:

つまりはこれですパフォーマンスの観点から文字列の連結を行います。可能な時間節減は非常に小さいでしょう、おそらく測定可能でさえありません。

関連する問題