mysql query query exclumization:a deep dive
mySQLクエリを実行すると、クエリオプティマイザーは実行計画を作成します。 この計画を検査するには、EXPLAIN
コマンドを使用します。 EXPLAIN
は、遅いクエリを理解して最適化するために非常に貴重ですが、多くの開発者はそれを十分に活用していません。この記事では、EXPLAIN
の出力とスキーマとクエリの最適化への適用について説明します。
キーテイクアウト:
- クエリ実行計画を分析し、非効率性を特定し、パフォーマンスを向上させるためのレバレッジ
-
クエリ処理を理解し、改善の領域を特定して、
EXPLAIN
decipher の出力列(例: - 、
EXPLAIN
、type
、possible_keys
、key
、rows
)。Extra
または - 句の列に基づいてテーブルにインデックスを戦略的に追加して、行スキャンを大幅に削減し、速度を高め、負荷時間を最小化します。
特に複雑な最適化タスクの場合、クエリ変換と実行に関する詳細な洞察については、
JOIN
およびWHERE
を使用してください。は、特に進化するデータを使用した動的アプリケーションで、最適なデータベースパフォーマンスを維持するために、 を使用してSQLクエリを定期的にレビューおよび最適化します。
-
EXPLAIN EXTENDED
SHOW WARNINGS
の出力 -
EXPLAIN
を理解しています
で接頭するだけです。基本的な例を分析してみましょう:
EXPLAIN
サンプル出力は次のようになる場合があります:
SELECT
この一見簡潔な出力には情報が豊富です。 重要な列は次のとおりです
-
id
:クエリ内の各SELECT
のシーケンシャル識別子(ネストされたサブ征服に関連)。 - :クエリのタイプ(シンプル、プライマリ、派生、サブクエリなど)。
select_type
サブクエリのない簡単なクエリを示しますSELECT
SIMPLE
:行で参照されています。UNION
- :MySQLがテーブルにどのように参加するか。 クエリの書き換えのために欠落しているインデックスまたは領域を識別するために重要です。 値の範囲は、非常に効率的な(
table
、 、 - )から非効率的(
type
、完全なテーブルスキャンを示します)。system
const
:mysqlが潜在的に使用できるキー。eq_ref
関連するインデックスがないことを提案しますALL
:実際のインデックスが使用されます。 オプティマイザーの選択により - とは異なる場合があります
possible_keys
NULL
:選択されたインデックスの長さ。 -
key
:possible_keys
列のインデックスと比較した列または定数。 - :調べた行の数。 高い価値は、特に
key_len
とサブ征服を使用して、潜在的な最適化のニーズを示しています。 - :追加情報(たとえば、「一時的な」、「Filesortを使用する」)。 詳細な解釈については、MySQLドキュメントを参照してください
ref
key
詳細を提供します。 その後 - を使用して、オプティマイザーによって実行されたクエリ変換を表示します:
rows
JOIN
-
Extra
パフォーマンスの低いクエリの最適化を説明しましょう。 インデックスがないeコマースデータベース(githubで利用可能)を検討してください。書かれていないクエリは、次のようになるかもしれません: の、および非常に高い 条項で使用される列に)パフォーマンスを劇的に改善します。インデックスを追加した後に 別の例には、2つのテーブルのA 概要EXPLAIN EXTENDED
SHOW WARNINGS
EXPLAIN SELECT * FROM categoriesG;
およびEXPLAIN
値を明らかにし、各テーブルの完全なテーブルスキャンを示します。これは非常に非効率的です。
<code>********************** 1. row **********************
id: 1
select_type: SIMPLE
table: categories
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 4
Extra:
1 row in set (0.00 sec)</code>
値が大幅に低くなり、より効率的な結合タイプ( "const、" eq_ref ")が表示されます。
EXPLAIN
が含まれます。
NULL
適切なインデックスがない場合、possible_keys
には完全なテーブルスキャンが表示されます。 インデックスを追加して、key
サブQueries内にrows
条件を戦略的に配置すると、スキャンされた行の数を大幅に減らすことができます。
JOIN
EXPLAIN
EXPLAIN
MySQLクエリの最適化の味方です。 その出力を分析することにより、パフォーマンスのボトルネックを識別して対処し、より効率的でより速いクエリにつながることができます。 単にインデックスを追加するだけで十分ではないことを忘れないでください。クエリ構造も重要な役割を果たします。 特に動的なアプリケーションでは、EXPLAIN
の定期的な使用は、データベースの健康を維持するための鍵です。
以上が説明を使用して、より良いmysqlクエリを書きますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

絶対セッションのタイムアウトはセッションの作成時に開始され、アイドルセッションタイムアウトはユーザーの操作なしに開始されます。絶対セッションタイムアウトは、金融アプリケーションなど、セッションライフサイクルの厳格な制御が必要なシナリオに適しています。アイドルセッションタイムアウトは、ソーシャルメディアなど、ユーザーが長い間セッションをアクティブに保つことを望んでいるアプリケーションに適しています。

サーバーセッションの障害は、手順に従って解決できます。1。セッションが正しく設定されていることを確認するために、サーバーの構成を確認します。 2.クライアントCookieを確認し、ブラウザがそれをサポートしていることを確認し、正しく送信します。 3. Redisなどのセッションストレージサービスを確認して、それらが正常に動作していることを確認します。 4.アプリケーションコードを確認して、正しいセッションロジックを確認します。これらの手順を通じて、会話の問題を効果的に診断および修復し、ユーザーエクスペリエンスを改善することができます。

session_start()iscrucialinphpformangingusersions.1)itInitiateSanewsessionifnoneExists、2)resumesanexistingsession、および3)SetSessionCookieforcontinuityAcrossRequests、ApplicationslicationSliviseSlikeUserauthicationAnticatent。

HTTPonlyフラグを設定することは、XSS攻撃を効果的に防止し、ユーザーセッション情報を保護することができるため、セッションCookieにとって重要です。具体的には、1)HTTPONLYフラグは、JavaScriptがCookieにアクセスするのを防ぎます。2)Flagは、PHPとFlaskのSetCookiesとMake_Responseを介して設定できます。

phpsessionssolvetheprobrof of maintainsea crossmultiplehttprequestsbyStoringdataontaonsociatingitiTauniquesessionid.1)それらは、通常はヨーロッパの側面、および一般的には、測定されている

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版
便利なJavaScript開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









