<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      MySQL數據庫干貨_20——MySQL中的索引【附有詳細代碼】

      MySQL中的索引

      索引介紹

      索引是對數據庫表中的一列或多列值進行排序的一種結構,使用索引可以快速訪問數據庫表中的特定信息。索引是一種特殊的文件,它們包含著對數據表里所有記錄的位置信息。更通俗的說,數據庫索引好比是一本書前面的目錄,能加快數據庫的查詢速度。MySQL 索引的建立對于MySQL 的高效運行是很重要的,索引可以大大提高 MySQL 的檢索速度。

      索引的作用

      索引相當于圖書上的目錄,可以根據目錄上的頁碼快速找到所需的內容,提高性能(查詢速度)。

      索引優點:

      1. 通過創建唯一性索引,可以保證數據庫表中的每一行數據的唯一性;
      2. 可以加快數據的檢索速度;
      3. 可以加速表與表之間的連接;
      4. 在使用分組和排序進行檢索的時候,可以減少查詢中分組和排序的時間;

      索引缺點

      1. 創建索引和維護索引要耗費時間,這種時間隨著數據量的增加而增加;
      2. 索引需要占用物理空間,數據量越大,占用空間越大;
      3. 會降低表的增刪改的效率,因為每次增刪改索引都需要進行動態維護;

      什么時候需要創建索引

      1. 頻繁作為查詢條件的字段應該創建索引;
      2. 查詢中排序的字段創建索引將大大提高排序的速度(索引就是排序加快速查找);
      3. 查詢中統計或者分組的字段;

      什么時候不需要創建索引

      1. 頻繁更新的字段不適合創建索引,因為每次更新不單單是更新記錄,還會更新索引,保存索引文件;
      2. where條件里用不到的字段,不創建索引;
      3. 表記錄太少,不需要創建索引;
      4. 經常增刪改的表;
      5. 數據重復且分布平均的字段,因此為經常查詢的和經常排序的字段建立索引。注意某些數據包含大量重復數據,因此他建立索引就沒有太大的效果,例如性別字段,只有男女,不適合建立索引;

      MySQL中的索引類型

      • 普通索引:

        最基本的索引,它沒有任何限制。

      • 唯一索引:

        索引列的值必須唯一,但允許有空值,如果是組合索引,則列值的組合必須唯一。

      • 主鍵索引:

        特殊的索引,唯一的標識一條記錄,不能為空,一般用primary key來約束。

      • 聯合索引:

        在多個字段上建立索引,能夠加速查詢到速度。

      普通索引

      是最基本的索引,它沒有任何限制。在創建索引時,可以指定索引長度。length 為可選參數,表示索引的長度,只有字符串類型的字段才能指定索引長度,如果是 BLOB 和 TEXT 類型,必須指定 length。

      創建索引時需要注意:


      如果指定單列索引長度,length 必須小于這個字段所允許的最大字符個數。

      查詢索引
      SHOW INDEX FROM tableName;
      
      直接創建索引
      CREATE INDEX indexName ON table(columnName(length));
      

      示例:

      為 emp3 表中的 name 創建一個索引,索引名為 emp3_name_index;

      create index emp3_name_index ON emp3(name);
      
      修改表添加索引
      ALTER TABLE tablename ADD INDEX index_name (columnName(length));
      

      示例:

      修改 emp3 表,為 addrees 列添加索引,索引名為 emp3_address_index;

      alter table emp3 add index emp3_address_index(address);
      
      創建表時指定索引列
      CREATE TABLE table (
      COLUMNName TYPE ,
      PRIMARY KEY (id),
      INDEX index_name (column(length))
      );
      

      示例:

      創建 emp4 表,包含 emp_id,name,address 列, 同時為 name 列創建索引 ,索引名為 emp4_name_index。

      create table  emp4(emp_id int primary key auto_increment,name varchar(30),address varchar(50),index emp4_name_index(name));
      
      刪除索引
      DROP INDEX indexname ON tablename;
      

      示例:

      刪除 mep3 表中索引名為 emp3_address_index 的索引。

      drop index emp3_address_index on emp3;
      

      唯一索引

      唯一索引與普通索引類似,不同的就是: 索引列的值必須唯一,但允許有空值。

      創建唯一索引
      CREATE UNIQUE INDEX indexName ON table(column(length));
      

      示例:

      為 emp 表中的 name 創建一個唯一索引,索引名為 emp_name_index。

      create unique index emp_name_index on emp(name);
      
      修改表添加唯一索引
      ALTER TABLE table_name ADD UNIQUE indexName (column(length));
      

      示例:

      修改 emp 表,為 salary 列添加唯一索引,索引名為 emp_salary_index。

      alter table emp add unique emp_salary_index(salary);
      
      創建表時指定唯一索引
      CREATE TABLE `table` (
      COLUMN TYPE ,
      PRIMARY KEY (`id`),
      UNIQUE index_name (column(length))
      );
      

      示例:

      創建 emp5 表,包含 emp_id,name,address 列,同時為 name 列創建唯一索引。索引名為 emp5_name_index。

      create table emp5(emp_id int primary key ,name varchar(30),address varchar(30),unique emp5_name_index(name));
      

      主鍵索引

      主鍵索引是一種特殊的唯一索引,一個表只能有一個主鍵,不允許有空值。一般是在建表的時候同時創建主鍵索引。

      修改表添加主鍵索引
      ALTER TABLE  表名 ADD PRIMARY KEY(列名);
      

      示例:

      修改 emp 表為 employee_id 添加主鍵索引。

      alter table emp add primary key(employee_id);
      
      創建表時指定主鍵索引
      CREATE TABLE `table` (
      COLUMN TYPE ,
      PRIMARY KEY(column)
      );
      

      示例:

      創建 emp6 表,包含 emp_id,name,address 列,同時為 emp_id 列創建主鍵索引。

      create table emp6(employee_id int primary key auto_increment,name varchar(20),address varchar(50));
      

      組合索引

      組合索引是指使用多個字段創建的索引,只有在查詢條件中使用了創建索引時的第一個字段,索引才會被使用(最左前綴原則)。

      最左前綴原則

      就是最左優先。

      如: 我們使用表中的 name ,address ,salary 創建組合索引,那么想要組合索引生效, 我們只能使用如下組合:

      name/address/salary

      name/address

      name/

      如果使用 addrees/salary 或者是 salary 則索引不會生效。

      添加組合索引
      ALTER TABLE tablename ADD INDEX index_name (column(length),column(length));
      

      示例:

      修改 emp6 表,為 name ,address 列創建組合索引。

      alter table emp6 add index emp6_index_n_a(name,address);
      
      創建表時創建組合索引
      CREATE TABLE `table` (
      COLUMN TYPE ,
      INDEX index_name (column(length),column(length))
      );
      

      示例:

      創建 emp7 表,包含 emp_id,name,address 列,同時為 name,address 列創建組合索引。

      create table emp7(emp_id int primary key auto_increment ,name varchar(20),address varchar(30),index emp7_index_n_a(name,address));
      
      posted @ 2023-11-03 16:25  Gjq-  閱讀(57)  評論(0)    收藏  舉報  來源
      主站蜘蛛池模板: 中文字幕自拍偷拍福利视频| 精品久久久久中文字幕日本| 国产欧美日韩亚洲一区二区三区 | 亚洲乱码一二三四区国产| 一区二区亚洲人妻av| 白嫩少妇激情无码| 刚察县| 狠狠躁夜夜躁人人爽天天5| 一本高清码二区三区不卡| 日韩无套无码精品| 宁津县| 欧美人与动交视频在线观看| 国产高清在线不卡一区| 国产精品人成视频免费国产| 99久久国产综合精品成人影院| 午夜大尺度福利视频一区| 婷婷综合久久狠狠色成人网| 亚洲精品日韩精品久久| 吉川爱美一区二区三区视频| 国产精品第一区亚洲精品| 国产成人精品无人区一区| 亚洲精品一区国产精品| 色综合色综合色综合频道| 久久久久国产一级毛片高清版A| 亚洲天堂av日韩精品| 老鸭窝在线视频| 无码伊人久久大杳蕉中文无码| 不卡乱辈伦在线看中文字幕| 人妻系列无码专区无码中出| 最新中文乱码字字幕在线| 最近免费中文字幕大全免费版视频| 亚洲欧美牲交| 精品免费看国产一区二区| 婷婷国产成人精品视频| 国产精品无码专区| 国产日韩综合av在线| 无码尹人久久相蕉无码| 欧美性猛交xxxx免费看| 国产精品久久露脸蜜臀| 国产高清精品在线91| 乱色欧美激惰|