偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

[[405488]]

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

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

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

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

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

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

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

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

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

對數(shù)據(jù)按照某個條件進(jìn)行查詢后再進(jìn)行 UPDATE 或 DELETE 的操作,如果對 WHERE 字段創(chuàng)建了索引,就能大幅提升效率。原理是因為我們需要先根據(jù) WHERE 條件列檢索出來這條記錄,然后再對它進(jìn)行更新或刪除。如果進(jìn)行更新的時候,更新的字段是非索引字段,提升的效率會更明顯,這是因為非索引字段更新不需要對索引進(jìn)行維護(hù)。

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

5.DISTINCT 字段需要創(chuàng)建索引

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

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

首先,連接表的數(shù)量盡量不要超過 3 張,因為每增加一張表就相當(dāng)于增加了一次嵌套的循環(huán),數(shù)量級增長會非???,嚴(yán)重影響查詢的效率。

其次,對 WHERE 條件創(chuàng)建索引,因為 WHERE 才是對數(shù)據(jù)條件的過濾。如果在數(shù)據(jù)量非常大的情況下,沒有 WHERE 條件過濾是非常可怕的。

總結(jié)

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

 

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

2016-04-18 09:18:28

用戶體驗設(shè)計產(chǎn)品

2023-07-10 15:51:03

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

2011-06-27 16:08:08

SEO

2014-07-07 09:29:15

Android L用戶體驗

2011-06-14 16:46:23

SEO

2024-04-02 08:05:27

商業(yè)智能報告

2011-06-28 16:38:10

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

2015-07-30 14:43:04

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

2023-10-10 18:24:46

PostgreSQL性能RDBMS

2009-06-04 10:20:34

Hibernate持久化Java

2025-06-04 01:00:00

網(wǎng)絡(luò)安全安全專家AI

2021-09-09 13:39:39

云計算私有云工具

2023-09-24 13:55:42

Spring應(yīng)用程序

2022-11-30 15:01:11

React技巧代碼

2023-01-04 10:17:19

LinuxBashshell

2021-11-11 15:13:15

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

2022-05-17 15:34:08

視覺效果UI 界面設(shè)計

2011-08-04 16:04:09

注冊表

2023-05-16 16:03:10

2010-05-04 08:58:02

.NET
點贊
收藏

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