自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

創(chuàng)建索引,六個(gè)小細(xì)節(jié)必須了解

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
索引本身可以起到約束的作用,比如唯一索引、主鍵索引都是可以起到唯一性約束的,因此在我們的數(shù)據(jù)表中,如果某個(gè)字段是唯一性的,就可以直接創(chuàng)建唯一性索引,或者主鍵索引。

[[405488]]

本文轉(zhuǎn)載自微信公眾號(hào)「碼上Java」,作者碼上Java。轉(zhuǎn)載本文請(qǐng)聯(lián)系碼上Java公眾號(hào)。

1. 字段的數(shù)值有唯一性的限制,比如用戶名

索引本身可以起到約束的作用,比如唯一索引、主鍵索引都是可以起到唯一性約束的,因此在我們的數(shù)據(jù)表中,如果某個(gè)字段是唯一性的,就可以直接創(chuàng)建唯一性索引,或者主鍵索引。

2. 頻繁作為 WHERE 查詢條件的字段,尤其在數(shù)據(jù)表大的情況下

在數(shù)據(jù)量大的情況下,某個(gè)字段在 SQL 查詢的 WHERE 條件中經(jīng)常被使用到,那么就需要給這個(gè)字段創(chuàng)建索引了。創(chuàng)建普通索引就可以大幅提升數(shù)據(jù)查詢的效率。

3. 需要經(jīng)常 GROUP BY 和 ORDER BY 的列

索引就是讓數(shù)據(jù)按照某種順序進(jìn)行存儲(chǔ)或檢索,因此當(dāng)我們使用 GROUP BY 對(duì)數(shù)據(jù)進(jìn)行分組查詢,或者使用 ORDER BY 對(duì)數(shù)據(jù)進(jìn)行排序的時(shí)候,就需要對(duì)分組或者排序的字段進(jìn)行索引。

4.UPDATE、DELETE 的 WHERE 條件列,一般也需要?jiǎng)?chuàng)建索引

我們剛才說(shuō)的是數(shù)據(jù)檢索的情況。那么當(dāng)我們對(duì)某條數(shù)據(jù)進(jìn)行 UPDATE 或者 DELETE 操作的時(shí)候,是否也需要對(duì) WHERE 的條件列創(chuàng)建索引呢?

對(duì)數(shù)據(jù)按照某個(gè)條件進(jìn)行查詢后再進(jìn)行 UPDATE 或 DELETE 的操作,如果對(duì) WHERE 字段創(chuàng)建了索引,就能大幅提升效率。原理是因?yàn)槲覀冃枰雀鶕?jù) WHERE 條件列檢索出來(lái)這條記錄,然后再對(duì)它進(jìn)行更新或刪除。如果進(jìn)行更新的時(shí)候,更新的字段是非索引字段,提升的效率會(huì)更明顯,這是因?yàn)榉撬饕侄胃虏恍枰獙?duì)索引進(jìn)行維護(hù)。

不過(guò)在實(shí)際工作中,我們也需要注意平衡,如果索引太多了,在更新數(shù)據(jù)的時(shí)候,如果涉及到索引更新,就會(huì)造成負(fù)擔(dān)。

5.DISTINCT 字段需要?jiǎng)?chuàng)建索引

有時(shí)候我們需要對(duì)某個(gè)字段進(jìn)行去重,使用 DISTINCT,那么對(duì)這個(gè)字段創(chuàng)建索引,也會(huì)提升查詢效率。

6. 做多表 JOIN 連接操作時(shí),創(chuàng)建索引需要注意以下的原則

首先,連接表的數(shù)量盡量不要超過(guò) 3 張,因?yàn)槊吭黾右粡埍砭拖喈?dāng)于增加了一次嵌套的循環(huán),數(shù)量級(jí)增長(zhǎng)會(huì)非常快,嚴(yán)重影響查詢的效率。

其次,對(duì) WHERE 條件創(chuàng)建索引,因?yàn)?WHERE 才是對(duì)數(shù)據(jù)條件的過(guò)濾。如果在數(shù)據(jù)量非常大的情況下,沒(méi)有 WHERE 條件過(guò)濾是非常可怕的。

總結(jié)

最后,對(duì)用于連接的字段創(chuàng)建索引,并且該字段在多張表中的類型必須一致。比如 user_id 在 product_comment 表和 user 表中都為 int(11) 類型,而不能一個(gè)為 int 另一個(gè)為 varchar 類型。

 

責(zé)任編輯:武曉燕 來(lái)源: 碼上Java
相關(guān)推薦

2016-04-18 09:18:28

用戶體驗(yàn)設(shè)計(jì)產(chǎn)品

2023-07-10 15:51:03

項(xiàng)目經(jīng)理軟件性能

2011-06-27 16:08:08

SEO

2014-07-07 09:29:15

Android L用戶體驗(yàn)

2024-04-02 08:05:27

商業(yè)智能報(bào)告

2011-06-28 16:38:10

網(wǎng)站優(yōu)化SEO

2011-06-14 16:46:23

SEO

2023-10-10 18:24:46

PostgreSQL性能RDBMS

2015-07-30 14:43:04

導(dǎo)航欄iOS開(kāi)發(fā)

2009-06-04 10:20:34

Hibernate持久化Java

2023-09-24 13:55:42

Spring應(yīng)用程序

2022-11-30 15:01:11

React技巧代碼

2021-09-09 13:39:39

云計(jì)算私有云工具

2011-08-04 16:04:09

注冊(cè)表

2022-05-17 15:34:08

視覺(jué)效果UI 界面設(shè)計(jì)

2021-11-11 15:13:15

人工智能容器技術(shù)

2023-01-04 10:17:19

LinuxBashshell

2010-07-12 14:08:59

UML序列圖

2010-05-04 08:58:02

.NET

2024-01-07 13:25:32

Go編程代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)