91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql數據庫中怎么創建索引

發布時間:2021-03-24 10:57:21 來源:億速云 閱讀:394 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹mysql數據庫中怎么創建索引,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

案例:創建數據庫index_test,按照下表的結構在index_test數據庫中創建兩個數據表test_table1和test_table2,并按照操作過程完成對數據表的基本操作。

(1)登錄MySQL數據庫
(2)創建數據庫index_test
(3)創建表test_table1
(4)創建表test_table2,存儲引擎為MyISAM
(5)使用alter table 語句在表test_table2的birth字段上建立名稱為ComDateIdx的普通索引
(6)使用alter table語句在表test_table2的id字段上添加名稱為UniqIdx2的唯一索引,并以降序排列
(7)使用create index 在firstname、middlename和lastname三個字段上建立名稱為MultiColidx2的組合索引
(8)使用create index在title字段上建立名稱為FTidx的全文索引
(9)使用alter table語句刪除表test_table1中名稱為Uniqidx的唯一索引
(10)使用drop index語句刪除表test_table2中名稱為MultiColidx2的組合索引
幾個注意點


(1)登錄MySQL數據庫
C:\Users\Hudie>mysql -h localhost -u root -p
Enter password: *******
(2)創建數據庫index_test
mysql> create database index_test;Query OK, 1 row affected (0.06 sec)mysql> use index_test;Database changed
(3)創建表test_table1
mysql> create table test_table1    -> (
    -> id int not null primary key auto_increment,
    -> name char(100) not null,
    -> address char(100) not null,
    -> description char(100) not null,
    -> unique index uniqidx(id),
    -> index MultiColidx(name(20),address(30) ),
    -> index Comidx(description(30))
    -> );Query OK, 0 rows affected (0.11 sec)mysql> show create table test_table1 \G*************************** 1. row ***************************
       Table: test_table1Create Table: CREATE TABLE `test_table1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(100) NOT NULL,
  `address` char(100) NOT NULL,
  `description` char(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniqidx` (`id`),
  KEY `MultiColidx` (`name`(20),`address`(30)),
  KEY `Comidx` (`description`(30))) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.06 sec)

可以看到在test_table表中成功創建了3個索引,分別是在id字段上名稱為uniqidx的唯一索引;在name和address字段上的組合索引;在description字段上長度為30的普通索引。

(4)創建表test_table2,存儲引擎為MyISAM
mysql> create table test_table2    -> (
    -> id int not null primary key auto_increment,
    -> firstname char(100) not null,
    -> middlename char(100) not null,
    -> lastname char(100) not null,
    -> birth date not null,
    -> title char(100) null
    -> )ENGINE=MyISAM;Query OK, 0 rows affected (0.07 sec)
(5)使用alter table 語句在表test_table2的birth字段上建立名稱為ComDateIdx的普通索引
mysql> alter table test_table2 add index ComDateidx(birth);Query OK, 0 rows affected (0.13 sec)Records: 0  Duplicates: 0  Warnings: 0
(6)使用alter table語句在表test_table2的id字段上添加名稱為Uniqidx2的唯一索引
mysql> alter table test_table2 add unique index Uniqidx(id);Query OK, 0 rows affected (0.11 sec)Records: 0  Duplicates: 0  Warnings: 0
(7)使用create index 在firstname和middlename兩個字段上建立名稱為 MultiColidx2的組合索引
mysql>  create index MultiColidx2 on test_table2(firstname,middlename);Query OK, 0 rows affected (0.12 sec)Records: 0  Duplicates: 0  Warnings: 0
(8)使用create index在title字段上建立名稱為FTidx的全文索引
mysql> create fulltext index ftidx on test_table2(title);Query OK, 0 rows affected (0.13 sec)Records: 0  Duplicates: 0  Warnings: 0
(9)使用alter table語句刪除表test_table1中名稱為Uniqidx的唯一索引
mysql> alter table test_table1 drop index uniqidx;Query OK, 0 rows affected (0.09 sec)Records: 0  Duplicates: 0  Warnings: 0
(10)使用drop index語句刪除表test_table2中名稱為MultiColidx2的組合索引
mysql> drop index MultiColidx2 on test_table2;Query OK, 0 rows affected (0.12 sec)Records: 0  Duplicates: 0  Warnings: 0
幾個注意點:

1.索引對數據庫的性能如此重要,如何使用它?

  • 如果索引列較少,則需要的磁盤空間和維護開銷都較少。

  • 如果在一個大表上創建了多種組合索引,索引文件也會膨脹很快。另外索引較多,可覆蓋更多的查詢。

  • 嘗試添加、刪除、修改索引,不影響數據庫架構或應用程序設計。

2.盡量使用短索引

  • 對字符串類型的字段進行索引,如果可能應該指定一個前綴長度。例如,有一個char(255)的列,如果在前 10或30個字符內多數值是唯一的,就不需要對整個列進行索引。

  • 短索引不僅可以提高查詢速度,也能節省磁盤空間、減少I/O操作。

以上是“mysql數據庫中怎么創建索引”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲周县| 湖州市| 台江县| 浦江县| 连云港市| 辽源市| 二连浩特市| 武乡县| 读书| 来宾市| 龙川县| 金华市| 留坝县| 辰溪县| 云南省| 克东县| 游戏| 盐山县| 浦北县| 三都| 尚志市| 项城市| 宜宾县| 尖扎县| 东丰县| 邯郸县| 收藏| 潞西市| 天祝| 荔浦县| 东方市| 富川| 荣昌县| 武穴市| 武鸣县| 濮阳县| 嘉荫县| 齐齐哈尔市| 杭锦后旗| 黑山县| 越西县|