亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜尋
前言 MySQL的使用 MySQL多表同時(shí)刪除方案 MySQL跨表、多表更新SQL語(yǔ)句總結(jié) MySQL存儲(chǔ)引擎 安裝 常規(guī)方式編譯安裝MySQL 采用cmake方式編譯安裝MySQL 使用rpm包安裝MySQL 使用yum方式安裝MySQL 采用二進(jìn)制方式免編譯安裝MySQL 多實(shí)例的安裝 什么是多實(shí)例 多實(shí)例的作用、問(wèn)題以及應(yīng)用場(chǎng)景 多實(shí)例安裝01【推薦】 多實(shí)例官方安裝方案02 啟動(dòng)、用戶和權(quán)限管理 單實(shí)例MySQL的啟動(dòng)和關(guān)閉的方法 設(shè)置及修改MySQL root用戶密碼 找回丟失的MySQL root用戶密碼 創(chuàng)建MySQL用戶及用戶權(quán)限管理 基礎(chǔ)命令的操作 MySQL庫(kù)和表相關(guān)操作 MySQL中的索引操作 MySQL常用命令 MySQL的錯(cuò)誤代碼 MySQL復(fù)習(xí)秘籍 備份與恢復(fù) 備份 恢復(fù) mysqlbinlog命令 服務(wù)日志 主從復(fù)制 主從復(fù)制部署配置問(wèn)題匯總 主從復(fù)制讀寫(xiě)分離 災(zāi)難恢復(fù) 配置phpmyadmin連接多實(shí)例MySQL MySQL語(yǔ)句大全 用戶創(chuàng)建、權(quán)限、刪除 數(shù)據(jù)庫(kù)與表顯示、創(chuàng)建、刪除 Mysql表復(fù)制及備份還原 數(shù)據(jù)庫(kù)表中數(shù)據(jù)操作 修改表中的指定一條數(shù)據(jù) 查詢表 日志 批量修改Mysql表引擎為InnoDB的方法 數(shù)據(jù)庫(kù)抽象層 PDO PDO對(duì)象常用方法 PDO 事務(wù)處理 PDO 與 MySQLi 二者效率簡(jiǎn)單比較 大小寫(xiě)敏感性 lower_case_table_names CentOS7安裝MySQL5.7密碼查看與修改
文字

為表的字段創(chuàng)建和刪除索引

無(wú)論建立主鍵索引還是普通索引,都要在表的對(duì)應(yīng)列上創(chuàng)建,可以對(duì)單列創(chuàng)建索引,也可以對(duì)多列創(chuàng)建索引。

創(chuàng)建和刪除主鍵索引

查詢數(shù)據(jù)庫(kù),按主鍵查詢速度最快的,每個(gè)表只能有一個(gè)主鍵列,但是可以有多個(gè)普通索引列。主鍵列要求列的所有內(nèi)容必須唯一,而索引列不要求內(nèi)容必須唯一。

  1. 在建表的時(shí)候指定(如上述典型建表語(yǔ)句)

  2. 建表后通過(guò)alter命令增加、刪除主鍵索引

mysql> alter table app_member change uid uid int primary key auto_increment not null ;
mysql> alter table app_member drop primary key;
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

普通索引的建立

  1. 在建表時(shí)可以指定建立普通索引

  2. 使用alter命令新增或者刪除普通索引

mysql> alter table app_member add key qq(qq);
mysql> alter table app_member drop key qq;
# 或者使用drop方式刪除索引
mysql> drop index nickname on app_member;

使用create對(duì)字段的前N個(gè)字符創(chuàng)建普通索引

當(dāng)遇到表中比較大的列時(shí),列內(nèi)容的前n個(gè)字符在所有內(nèi)容中已經(jīng)接近唯一時(shí),這時(shí)可以對(duì)列的前n個(gè)字符建立索引,而無(wú)須對(duì)整個(gè)列建立索引,這樣可以節(jié)省創(chuàng)建所以占用的系統(tǒng)空間,以及降低讀取和更新維護(hù)索引消耗的系統(tǒng)資源

mysql> create index qq on app_member(qq(6));
mysql> show index from app_member\G # 更加詳細(xì)的查看表的索引

為表的多個(gè)字段創(chuàng)建聯(lián)合索引

mysql> create index reg_ip_time on app_member(reg_ip,reg_time);

創(chuàng)建唯一索引

mysql> create unique index nickname on app_member(`nickname`);
mysql> drop index nickname on app_member;
#使用alter新增唯一索引方式操作
mysql> alter table app_member add unique key nickname(`nickname`);
#使用alter方式刪除索引操作
mysql> alter table app_member drop key nickname;

索引列的創(chuàng)建生效條件

既然所以可以加快查詢速度,那么給所有的列建立索引?

因?yàn)樗饕坏加孟到y(tǒng)空間,更新數(shù)據(jù)庫(kù)時(shí)還需要維護(hù)索引數(shù)據(jù),因此,索引是一把雙刃劍,并不是越多越好。
例如:數(shù)十到數(shù)百行的小表上無(wú)需建立索引,更新頻繁,讀取較少的表要少建立索引。

需要在那些列創(chuàng)建索引呢?

索引一定要?jiǎng)?chuàng)建在where后的條件列上,而不是select后的選擇數(shù)據(jù)列上。
另外我們要盡量選擇唯一值多大表上建立索引


小結(jié)

創(chuàng)建主鍵索引
alter table app_member change uid uid int primary key;

刪除主鍵索引
alter table app_member drop primary key;

創(chuàng)建普通索引
alter table app_member add index qq(qq(6));

根據(jù)列的前n個(gè)字符創(chuàng)建索引
create index qq on app_member(qq);

根據(jù)多個(gè)列創(chuàng)建聯(lián)合索引
create index reg_time_ip on app_member(reg_time,reg_ip);

根據(jù)多個(gè)列的前n個(gè)字符創(chuàng)建聯(lián)合索引
create index reg_time_ip on app_member(reg_time(8),reg_ip(8));

刪除普通索引
alter table app_member drop index nickname;


上一篇: 下一篇: