data-id="1190000005008401" data-license="cc">
1. 頻繁に使用されるフィールド (たとえば、これらのフィールドは並べ替えや検索によく使用されます) には、これらのフィールドをインデックスに設定することをお勧めします。
2. フィールド型には可能な限り int 型または tinyint 型を使用します。また、フィールドには可能な限り NOT NULL を使用してください。
3. もちろん、一部のフィールドではテキスト、varchar、その他の文字タイプが使用されることは避けられません。テキスト フィールドを別のテーブルに分離する (主キーに関連付ける) ことが最善です。
4. フィールドのタイプと長さは次のとおりです。これは開発者の最適化スキルの非常に重要な側面です。テーブル データにある程度の量がある場合は、PROCEDURE ANALYSE() コマンドを使用してフィールド最適化の提案を取得することもできます。 (phpmyadmin では、テーブルを表示しているときに [テーブル構造の提案] をクリックすると、これらの提案が表示されます) これにより、テーブルのフィールド構造をより完璧にすることができます。
5. を選択します。常に 番号を使用する必要はありません。同様に、データが 1 行しかない場合は LIMIT 1 を使用するようにしてください。 6. rand() による order を安易に使用しないでください。mysql で障害が発生する可能性があります。 !
7. 各テーブルには ID プライマリ キー (できれば INT タイプ) を設定し、自動的に増加する AUTO_INCREMENT フラグを設定する必要があります。これは実際にテーブル構造を設計するときに最初に行うべきことです。 !
8. 大きな DELETE または INSERT ステートメントを分割します。これら 2 つの操作はテーブルをロックするため、テーブルがロックされると、他の操作を行うことはできません。私の場合、場合によっては、for ループを使用してこれらの操作を 1 つずつ実行する方がよい場合があります。
9. プログラムが事故を起こさないことが本当に確信できない限り、永久リンク mysql_pconnect() を使用しないでください。mysql が停止する可能性もあります。
10. 自分の賢さを示すために複雑な mysql ステートメントを決して使用しないでください。私の知る限り、一度に 3 つまたは 4 つのテーブルを関連付けるステートメントを見ると、人々は非常に信頼できないと感じます。
11. where 句では != または <> 演算子を使用しないようにしてください。そうしないと、エンジンはインデックスの使用を放棄し、テーブル全体のスキャンを実行します。
12. where 句でフィールドの null 値を判断しないようにしてください。そうしないと、エンジンがインデックスの使用を放棄し、テーブル全体のスキャンを実行します。
13. where 句で条件を接続するために または を使用しないようにしてください。そうでない場合、エンジンはインデックスの使用を断念し、次のようなフル テーブル スキャンを実行します。
<code>select id from t where num=10 or num=20 可以这样查询: select id from t where num=10 union all select id from t where num=20 </code>
15。使用する場合は注意してください。そうしないと、テーブル全体のスキャンが発生します。between を使用するようにしてください
16。これにより、エンジンがインデックスの使用を断念して実行することになります。フルテーブルスキャン。例:
<code>select id from t where num/2=100 应改为: select id from t where num=100*2 </code>
" の代わりに、未使用のフィールドを返さないでください
20. まず、可変長フィールドの記憶域が小さいため、できるだけ char/nchar の代わりに varchar/nvarchar を使用してください。次に、クエリの場合、比較的小さなフィールド内の検索効率が明らかに高くなります。
21. 数値フィールドを使用するようにしてください。フィールドに数値情報のみが含まれる場合は、クエリと接続のパフォーマンスが低下し、ストレージのオーバーヘッドが増加するように設計しないでください。これは、エンジンがクエリと接続を処理するときに文字列内の各文字を 1 つずつ比較し、数値型の場合は 1 回の比較だけで十分であるためです。
アイテムをリストする
上記は、Mysql と SQL ステートメントの内容を含む、mysql ステートメントの最適化に関する提案を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。