データベースのインデックスは、それを使用するときに注意してください!
我々が始める前に、断り書きをしましょう😉.
始めましょう🚀
データベースインデックスは、データベース内のデータを検索するための組み込みツールです.インデックスはすぐに我々のクエリのレコードを検索します.
理解するために、ユースケースを作ります.例として、
![](https://s1.md5.ltd/image/a67756b69d8a8e6e8ad5e25435e993ae.png)
そのユーザーテーブルには1000行があります.2人は男性、残りは998人である.
我々の男性ユーザーを見つける必要があると言います.
このクエリを実行した後、2人のユーザーの結果があります.
シーンの背後には、データベースエンジンは2行を見つけるために1000行のすべてを検索します.
はい、それは非効率的ですね.しかし、それはどのようにデータベースエンジンが動作します.😵
解決策はデータベースインデックスを使用することです.💡
インデックスを使用すると、データベースエンジンは、選択したインデックスに基づいてテーブルをマップするアルゴリズムを作成します.
したがって、ユーザーテーブル内の
再び我々の質問に戻ってください、そして、我々が
違いは、今すぐデータベースエンジンは2行を検索する2行を検索します.
今のサウンド効率❗
私たちが知っているならば、多分このような考えがあります.
thats右、あなたはすべての検索を簡単にクエリを取得します.
しかし、それを使用しないでください.インデックスが逆さまになってもインデックスもダウンしている.
インデックスを作成すると、シーンデータベースエンジンの背後にデータベースに追加データが書き込まれます.
再び我々のユーザーテーブルに戻ります.計算は以下のようになります.
PostgreSQL
MySQL
This is my current understanding of Database Index.
If there is any mistake that write that lead to misunderstanding, please let me know and I will update this post ASAP.
始めましょう🚀
データベースインデックスとは
データベースインデックスは、データベース内のデータを検索するための組み込みツールです.インデックスはすぐに我々のクエリのレコードを検索します.
問題
理解するために、ユースケースを作ります.例として、
id, full_name & gender
を持つユーザーテーブルがあります![](https://s1.md5.ltd/image/a67756b69d8a8e6e8ad5e25435e993ae.png)
そのユーザーテーブルには1000行があります.2人は男性、残りは998人である.
我々の男性ユーザーを見つける必要があると言います.
このクエリを実行した後、2人のユーザーの結果があります.
シーンの背後には、データベースエンジンは2行を見つけるために1000行のすべてを検索します.
はい、それは非効率的ですね.しかし、それはどのようにデータベースエンジンが動作します.😵
解決策は?
解決策はデータベースインデックスを使用することです.💡
インデックスを使用すると、データベースエンジンは、選択したインデックスに基づいてテーブルをマップするアルゴリズムを作成します.
したがって、ユーザーテーブル内の
SELECT * FROM users WHERE gender = 'male'
列にインデックスを作成します.再び我々の質問に戻ってください、そして、我々が
gender
を実行するならば、我々は結果として再び2人のユーザーを得ます.違いは、今すぐデータベースエンジンは2行を検索する2行を検索します.
今のサウンド効率❗
でも待ちます。
私たちが知っているならば、多分このような考えがあります.
"let's create index for all of our column, so we can get quick result every time we search something 🤔"
thats右、あなたはすべての検索を簡単にクエリを取得します.
しかし、それを使用しないでください.インデックスが逆さまになってもインデックスもダウンしている.
インデックスを作成すると、シーンデータベースエンジンの背後にデータベースに追加データが書き込まれます.
再び我々のユーザーテーブルに戻ります.計算は以下のようになります.
2 index (1 for ID, 1 for gender) * 1000 rows = 2000
# PK is always get index
我々が我々のコラムの全てにインデックスを置くならば4 index (ID, gender, full_name, created_at) * 1000 rows = 4000
# Thats only 4 columns.
# The more column we create, the more usage it will take when CREATE, UPDATE, DELETE, etc.
結論は:賢明にそれを使用してください.😇インデックス作成方法
CREATE TABLE "customers" (
"id" SERIAL PRIMARY KEY,
"gender" varchar,
"full_name" varchar,
"created_at" timestamp
);
CREATE INDEX ON "customers" ("gender");
CREATE TABLE `customers` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`gender` varchar(255),
`full_name` varchar(255),
`created_at` timestamp
);
CREATE INDEX `customers_index_0` ON `customers` (`gender`);
Reference
この問題について(データベースのインデックスは、それを使用するときに注意してください!), 我々は、より多くの情報をここで見つけました https://dev.to/frasnym/database-indexes-please-be-careful-when-using-it-2j28テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol