PHP 開発の難しさは何ですか?
PHP 開発で遭遇する問題:
1. InnoDB の代わりに MyISAM を使用する
MyISAM がデフォルトで使用されます。しかし、非常に単純なデータベースを構築している場合や、単に実験的に行っている場合を除き、ほとんどの場合、これは間違った選択です。 MyISAM は、データの整合性を確保するための本質である外部キー制約をサポートしていません。さらに、MyISAM はデータの追加または更新時にテーブル全体をロックするため、将来の拡張パフォーマンスに大きな問題が発生します。
2. PHP の mysql メソッドを使用する
PHP は最初から MySQL 関数ライブラリを提供しています。多くのプログラムは、mysql_connect、mysql_query、mysql_fetch_assoc などに依存しています。
3. ユーザー入力をフィルタリングしない
次のようにする必要があります: ユーザー入力を決して信頼しないでください。バックエンド PHP を使用して各入力情報を検証およびフィルタリングします。Java は信頼しません。
4. UTF-8 は使用しないでください
UTF-8 は、国際化に関する多くの問題を解決します。 PHP6 ではこの問題をより完全に解決できますが、MySQL の文字セットを UTF-8 に設定することはできます。
5. SQL を使用する必要がある場合は PHP を使用する
MySQL を初めて使用する場合は、問題を解決するときに、まず使い慣れた言語の使用を検討することがあります。これにより、無駄が発生し、パフォーマンスが低下する可能性があります。例: 平均を計算する場合、MySQL ネイティブの AVG() メソッドは使用されず、代わりに PHP がすべての値をループし、それらを累積して平均を計算します。
6. クエリが最適化されていない
PHP パフォーマンスの問題の 99% はデータベースが原因であり、SQL ステートメントが不適切であると、プログラム全体が非常に遅くなる可能性があります。 MySQL の EXPLAIN ステートメント、Query Profiler、およびその他の多くのツールは、不正な SELECT を見つけるのに役立ちます。
7. 間違ったデータ型の使用
MySQL は、数値、文字列、時間などの一連のデータ型を提供します。日付を保存したい場合は、DATE 型または DATETIME 型を使用します。整数または文字列を使用すると、処理がさらに複雑になります。
8. SELECT クエリでは *
を使用します。テーブル内のすべてのフィールドを返すには * を使用しないでください。非常に時間がかかります。必要なデータフィールドのみを取り出す必要があります。すべてのフィールドを削除する必要がある場合は、テーブルを変更する必要がある可能性があります。
9. インデックスの不足またはインデックスの過剰設定
一般に、SELECT ステートメントの WHERE の後に現れるフィールドはすべてインデックスを作成する必要があります。
10. バックアップが行われない
頻繁に起こることではありませんが、データベースの損傷、ハードディスクの障害、サービスのシャットダウンなどにより、データに壊滅的な損傷が発生する可能性があります。したがって、データを自動的にバックアップするか、コピーを保存する必要があります。
PHP 関連の知識の詳細については、PHP 中国語 Web サイト をご覧ください。
以上がPHP開発の難しさは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。