MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

int型の列のMySQLインデックス?


テーブルに大量のレコードがある場合は常に、int型の列にインデックスを追加することで、クエリをより高速に実行できます。

テーブルのレコード数が少ない場合は、int型の列にインデックスを使用することはお勧めできません。

概念を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table indexOnIntColumnDemo
   -> (
   -> UserId int,
   -> UserName varchar(20),
   -> UserAge int,
   -> INDEX(UserId)
   -> );
Query OK, 0 rows affected (0.85 sec)

次に、テーブルの説明を確認します-

mysql> desc indexOnIntColumnDemo;

これが出力です-

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| UserId   | int(11)     | YES  | MUL | NULL    |       |
| UserName | varchar(20) | YES  |     | NULL    |       |
| UserAge  | int(11)     | YES  |     | NULL    |      |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.04 sec)

これで、insertコマンドを使用してテーブルにいくつかのレコードを挿入できます。クエリは次のとおりです-

mysql> insert into indexOnIntColumnDemo values(1001,'John',23);
Query OK, 1 row affected (0.22 sec)
mysql> insert into indexOnIntColumnDemo values(1002,'Sam',25);
Query OK, 1 row affected (0.14 sec)
mysql> insert into indexOnIntColumnDemo values(1003,'Carol',22);
Query OK, 1 row affected (0.24 sec)
mysql> insert into indexOnIntColumnDemo values(1004,'Mike',26);
Query OK, 1 row affected (0.14 sec)

これで、selectステートメントを使用してテーブルのすべてのレコードを表示できます。クエリは次のとおりです-

mysql> select *from indexOnIntColumnDemo;

以下は出力です-

+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
| 1001   | John     |      23 |
| 1002   | Sam      |      25 |
| 1003   | Carol    |      22 |
| 1004   | Mike     |      26 |
+--------+----------+---------+
4 rows in set (0.00 sec)

より高速に実行するには、int型のインデックス列の条件を使用します

mysql> select *from indexOnIntColumnDemo where UserId=1004;

出力は次のとおりです

+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
| 1004  | Mike      | 26      |
+--------+----------+---------+
1 row in set (0.00 sec)

  1. BLOB型で宣言された列の長さをフェッチするMySQLクエリ

    これには、MySQLのLENGTH()関数を使用します。まず、テーブルを作成しましょう。列のタイプをBLOB-として宣言しました mysql> create table DemoTable (    Title blob ); Query OK, 0 rows affected (0.57 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('This is a MySQL tutorial'); Query OK, 1 row affected

  2. 列の値を置き換えるMySQLクエリ

    まずテーブルを作成しましょう- mysql> create table DemoTable (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    Score int ); Query OK, 0 rows affected (0.45 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable(Score) values(56); Query OK, 1 row affected (0.24 sec)