2012-02-07 9 views
0

MySQLには関数もあります。例えば、DAY()ASCII()DATEDIFF()など、多くの機能。したがって、これらの関数を使用して複雑なクエリを作成することは可能です。また、データを使用したすべてのコンピューティング/操作は、MySQLの機能によってMySQLで引き続き行われます。 MySQLですでに用意されているPHPでのクエリの結果を、可能な限り洗練されたものとして得ることができます。DBでデータを操作する方が良い方法はありますか?

しかし、PHP関数を使用してDBからデータを計算/操作することもできます。できるだけ単純なSQLクエリを使用してDBからデータを取得し、配列に取得し、その配列を変数にフェッチし、PHP関数を使用して、必要な操作を行うためにデータで必要な操作を開始します。

私の質問はどのようにDBで作業する方が良いですか?できるだけすぐに使用できるデータを得るために可能な限りMySQLのサーバー強度を最大限に使うべきですか、またはDBの生データを操作するために、より多くのPHP関数を使用すべきですか?

答えて

1

MySQL(または他の非分散データベース)を使用する場合は、コードでこれを行うことを検討することもできます。これにより、データベースサーバの負荷が軽減されますが、最近はウェブサーバのスケーラビリティが完全に向上しています。あなたは1台のMySQLサーバしか持っておらず、Xウェブサーバまで拡大することができます。

データベースのネイティブ関数をラップするヘルパークラスを作成することをお勧めします。

パフォーマンス上の問題が残っている場合は、自分で作成する代わりに使用可能な機能を使用する方がよいでしょう。

+2

Ehrm。 Webサーバーの規模を拡大することはできますが、データベースサーバーを拡張することはできません。データベースは完璧にスケーラブルであり、データベース内で計算を行うことは、すべてのデータを取得した後で行うよりもパフォーマンスが優れています。 –

+0

MySQLは分散データベースではありません。複数のスレーブで読むことはできますが、1つのサーバーで無限の挿入/更新/削除を実行することはできません。そのため、これらの操作をWebサーバーで実行することには利点があります。 – RobinUS2

+0

しかし、データベース内の関数は、すべてのデータをPHPに引き渡してそこから計算するよりはるかに優れています。 100000行のMySQL関数SUMに適用されたときの答えの意味について考えてみてください。データ転送だけでも、データベースで計算するよりも時間がかかります。 –

3

どちらの場合もデータベースに対して同じステートメントを実行すると仮定すると、は常にがMySQLで直接ステートメントを実行する方が高速です(関数、ストアドプロシージャなど)。 PHPのMySQL拡張。

-2

look ta私の質問Text proccessing via Mysql Query。 それは、各データを1行としてデータベースに単純なデータを格納することをお勧めします。その後、PHPに取得し、それらを処理します。

+0

そうではありません。答えは、PHPに検索をさせないと言います。 –

+0

私の質問をチェックし、他の人がデータベースにデータを格納し、PHPのテーマを処理する最善の方法を教えてください – bizzr3

+0

私はそれが良いと思います: - ? – bizzr3

関連する問題