索引( index )

索引在龐大的數據庫上最能體現出作用,所謂索引就是根據需求將指定的列提取出來做索引表,可以顯著提高在查找數據方面的速度。

在索引的前提下還可以指定索引值是否唯一,索引值是單列或是多列索引。

?

根據索引類型,索引分為:

  普通索引:

name,只能幫助查找
唯一索引:
name,只能幫助查找,內容不允許重復,可以為null,但也限制唯一。
主鍵索引:
name,只能幫助查找,內容不允許重復,不允許null,一張表只能有一個主鍵,但也可以通過unique進行組合
組合索引:
多列共同組成索引,可以有如下模式,1 是不約束的就是說不唯一,2是唯一的
普通多列索引(name,email)
聯合唯一索引(name,email)
根據索引方式又分為: 
覆蓋索引
當查詢的數據是從索引表里面查找的,則是覆蓋索引
索引合并
將兩個單獨的索引放到一起,就是索引合并。
默認的查找方式是全表掃描。
在創建表時創建索引:
create table person(id int not null primary key auto_increment,name char(10) not null,age int not null,address varchar(100) not null,index index_name(name));
普通索引:
create index index_name on person(pname);

?

刪除索引:

drop index_name on tableName;

?查看索引:

show index from tableName;

?

唯一索引:

  建表時創建唯一索引:

create table person(id int not null primary key auto_increment,name char(10) not null,age int not null,address varchar(100) not null,unique index_name(name));

  創建唯一索引:

creae unique index index_name on tableName(ColumnName);

?  刪除唯一索引:

?drop unique index index_name on tabeName;?

?

?

主鍵索引:

  創建表時創建索引:

create table in1(nid int not null auto_increment primary key,name varchar(32) not null,email varchar(64) not null,extra text,index ix_name (name)
)ORcreate table in1(nid int not null auto_increment,name varchar(32) not null,email varchar(64) not null,extra text,primary key(ni1),index ix_name (name)
)創建表 + 創建主鍵

?

  創建索引:

  ?alter table tableName primary key(ColumnName);?

  

  刪除索引:

  

方式一:
alter table tableName drop primary key;方式二:
alter table tableName modify ColumnName int,drop primary key;

?

組合索引:

設有如下表:

create table tb1(id int not null primary key auto_incremet,name char(10) not null,age int(2) not null,other text)engine=innoDB default charset=utf8;

創建組合索引:

?create index index_name on tableName(columnName1,columnName2);?

如上創建組合索引之后,查詢:

  • name and email ?-- 使用索引
  • name ? ? ? ? ? ? ? ? -- 使用索引
  • email ? ? ? ? ? ? ? ? -- 不使用索引

注意:對于同時搜索n個條件時,組合索引的性能好于多個單一索引合并。

?

other:

explain? 關鍵字可以查看查詢語句是通過何種方式查找數據。
explain select * from person where xx=xx;
如果type列示 all則表示全表掃描
如果是ref 則是通過索引查找的
all 表示 全表掃描
ref 表示 普通索引查找
const 唯一索引查找 /? 主鍵索引也是const
組合索引 表示
在全表掃描模式下,如果想達到索引效果,可以用limit 1; 如果只要求一條數據的話。limit 1 表示取得一條數據后就返回。
在 like 模式下, 如果 "%xx" 模式一般不走索引模式,因為前綴為% 表示一切皆有可能, 如果要走索引模式 必須為: “xx%”
reverse(列名) 也一樣不走模式。除非是值 reverse(value)
對于比較運算符 來說 一般除了大于 和 不等于 不走索引外,其余的一般都走索引。
對于 or 運算符 ,只有 當or 兩邊的索引都是索引才走索引,否則不走。

?

轉載于:https://www.cnblogs.com/dontgiveup/p/9380229.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249861.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249861.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249861.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

dependencies 和 devDependencies 區別

當我們項目需要下載一個模塊的時候,我們安裝npm包(在項目目錄下面npm install module_name)的時候,很多時候我們會在后面加上–save-dev 或 –save。這兩個參數代表什么呢? 初識 相信很多人都會回答: np…

CentOS下防御或減輕DDoS攻擊方法(轉)

查看攻擊IP 首先使用以下代碼,找出攻擊者IP netstat -ntu | awk {print $5} | cut -d: -f1 | sort | uniq -c | sort -n 將會得出類似如下的結果: 1 114.226.9.132 1 174.129.237.157 1 58.60.118.142 1 Address 1 servers) 2 118.26.131.78 3 123.125.1…

iTerm2 快捷鍵

Ctrl a:將光標移動到命令行首 Ctrl e:將光標移動到命令行尾 Ctrl w:刪除光標前的一個單詞 Ctrl u:刪除所有內容 Ctrl y:粘貼上次刪除的內容 Ctrl r:搜索歷史命令刪除光標之前的單詞:ctrl …

vscode - 添加背景圖片

首先,CtrlShiftP安裝backround , 而后重啟vscode會有默認的背景圖片 修改背景圖,可自定義三張 具體請看gif圖 最開始時,發現png根本不是全透明,用ps處理了一下(下列所有操作均字母組合) 1.1 Ctr…

架構設計雜談004——架構師

什么是架構設師 架構師是:負責系統架構設計的人、團隊或組織 架構師主要干什么 ●架構師是技術領導,領導并負責架構設計,負責做決策 ●架構師可以是團隊或組織,這個時候通常會有首席架構師 ●架構師必須掌握足夠的技術知識 ●架構…

學習JS基本數據類型與對象的valueOf方法

https://blog.csdn.net/licheng11403080324/article/details/60128090 https://yq.aliyun.com/articles/399499 轉載于:https://www.cnblogs.com/smzd/p/9548530.html

security和oauth2.0的整合

security和oauth2.0的整合 之前已經介紹過security的相關的介紹,現在所需要做的就是security和oauth2.0的整合,在原有的基礎上我們加上一些相關的代碼;代碼實現如下: pom.xml: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http:…

關于Vue.use()詳解

問題 相信很多人在用Vue使用別人的組件時&#xff0c;會用到 Vue.use() 。例如&#xff1a;Vue.use(VueRouter)、Vue.use(MintUI)。但是用 axios時&#xff0c;就不需要用 Vue.use(axios)&#xff0c;就能直接使用。那這是為什么吶&#xff1f; 答案 因為 axios 沒有 install。…

百度TTS的來由

#### https://home-assistant.io/components/tts.baidu/#### https://github.com/charleyzhu/HomeAssistant_Components#### 當前使用自定義組件 https://bbs.hassbian.com/thread-1152-1-1.html#### 2018-3-15添加百度云語音識別 - platform: baidu language: zh app_i…

eslint 禁用命令

/* eslint-disable */ ESLint 在校驗的時候就會跳過后面的代碼還可以在注釋后加入詳細規則&#xff0c;這樣就能避開指定的校驗規則了/* eslint-disable no-new */常用&#xff1a; rules: {"comma-dangle": ["error", "never"], //是否允許對象…

分布式工具的一次小升級?

前言 之前在做 秒殺架構實踐 時有提到對 distributed-redis-tool 的一次小升級&#xff0c;但是沒有細說。 其實主要原因是&#xff1a; 秒殺時我做壓測&#xff1a;由于集成了這個限流組件&#xff0c;并發又比較大&#xff0c;所以導致連接、斷開 Redis 非常頻繁。 最終導致獲…

淺談vue $mount()

Vue 的$mount()為手動掛載&#xff0c;在項目中可用于延時掛載&#xff08;例如在掛載之前要進行一些其他操作、判斷等&#xff09;&#xff0c;之后要手動掛載上。new Vue時&#xff0c;el和$mount并沒有本質上的不同。 具體見代碼&#xff1a; 順便附上vue渲染機制流程圖&a…

小三角

{border-color: transparent;border-right-color: #e5e5e5;border-width: 7px;margin-top: -7px;right: 100%;top: 20px;border: solid transparent;content: " ";height: 0;width: 0;position: absolute;pointer-events: none; }轉載于:https://www.cnblogs.com/smz…

Laravel日志查看器 -- log-viewer擴展

1.修改laravel配置文件. config\app.php log>daily 2.在項目目錄中composer命令安裝擴展&#xff1a;composer require arcanedev/log-viewer 3.安裝成功后&#xff0c;需要在config\app.php 的providers陣列中注冊服務 Arcanedev\LogViewer\LogViewerServiceProvider::clas…

論一個程序員的自我修養-從一張圖片說起

故事起源 本來今天想寫.NET Core實戰之CMS系統第十五篇文章的。哈&#xff0c;奈何今天在新生命人脈群里面看到石頭哥分享的一張圖片&#xff0c;然后大家就議論了起來&#xff0c;不過我看的很懵逼&#xff0c;這圖什么意思啊&#xff1f;當一個朋友講述了這個圖片背后的故事的…

vue實例屬性之el,template,render

一、el&#xff0c;template&#xff0c;render屬性優先性 當Vue選項對象中有render渲染函數時&#xff0c;Vue構造函數將直接使用渲染函數渲染DOM樹&#xff0c;當選項對象中沒有render渲染函數時&#xff0c;Vue構造函數首先通過將template模板編譯生成渲染函數&#xff0c;然…

mysql8的坑

plugin caching_sha2_password could not be loaded 我在mac上用Sequel Pro連數據庫的時候&#xff0c;會報出以上錯誤&#xff0c;這是應為8.0.11把身份認證插件改成了 caching_sha2_password &#xff0c;而客戶端沒法使用此插件。 這是我們只要用命令行進去mysql&#xff0c…

c/c++ 繼承與多態 文本查詢的小例子(非智能指針版本)

問題&#xff1a;在上一篇繼承與多態 文本查詢的小例子&#xff08;智能指針版本&#xff09;在Query類里使用的是智能指針&#xff0c;只把智能指針換成普通的指針&#xff0c;并不添加拷貝構造方法&#xff0c;會發生什么呢&#xff1f; 執行時&#xff0c;代碼崩掉。 分析下…

day19_生成器

20180730 初次上傳 20180731 更新&#xff0c;4、列表生成式&#xff0c;以及部分注釋 #!/usr/bin/env python # -*- coding:utf-8 -*-# ********************day19_生成器 ******************* # ********************day19_生成器 ******************* # *******************…

HTML渲染過程詳解

由于本人對http協議以及dns對url的解析問題并不了解&#xff0c;所以這里之探討url請求加載到瀏覽器端時&#xff0c;瀏覽器對html的解析到呈現過程&#xff0c;后來經過幾位道友分享&#xff0c;整理了一下url解析的過程&#xff0c;如下&#xff1a; 用戶輸入url地址&#x…