日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

php 如何设计索引_Mysql学习浅谈mysql的索引设计原则以及常见索引的区别

發(fā)布時間:2023/12/15 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 如何设计索引_Mysql学习浅谈mysql的索引设计原则以及常见索引的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

《Mysql學(xué)習(xí)淺談mysql的索引設(shè)計原則以及常見索引的區(qū)別》要點:

本文介紹了Mysql學(xué)習(xí)淺談mysql的索引設(shè)計原則以及常見索引的區(qū)別,希望對您有用。如果有疑問,可以聯(lián)系我們。

索引定義:是一個單獨的,存儲在磁盤上的數(shù)據(jù)庫結(jié)構(gòu),其包括著對數(shù)據(jù)表里所有記錄的引用指針.MYSQL必讀

數(shù)據(jù)庫索引的設(shè)計原則:MYSQL必讀

為了使索引的使用效率更高,在創(chuàng)建索引時,必需考慮在哪些字段上創(chuàng)建索引和創(chuàng)建什么類型的索引.

那么索引設(shè)計原則又是怎樣的?MYSQL必讀

1.選擇唯一性索引MYSQL必讀

唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄.

例如,學(xué)生表中學(xué)號是具有唯一性的字段.為該字段建立唯一性索引可以很快的確定某個學(xué)生的信息.

如果使用姓名的話,可能存在同名現(xiàn)象,從而降低查詢速度.MYSQL必讀

2.為經(jīng)常必要排序、分組和聯(lián)合操作的字段建立索引MYSQL必讀

經(jīng)常必要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作會浪費很多時間.

如果為其建立索引,可以有效地避免排序操作.MYSQL必讀

3.為常作為查詢條件的字段建立索引MYSQL必讀

如果某個字段經(jīng)常用來做查詢條件,那么該字段的查詢速度會影響整個表的查詢速度.因此,

為這樣的字段建立索引,可以提高整個表的查詢速度.MYSQL必讀

4.限制索引的數(shù)目MYSQL必讀

索引的數(shù)目不是越多越好.每個索引都必要占用磁盤空間,索引越多,必要的磁盤空間就越大.

修改表時,對索引的重構(gòu)和更新很麻煩.越多的索引,會使更新表變得很浪費時間.MYSQL必讀

5.盡量使用數(shù)據(jù)量少的索引MYSQL必讀

如果索引的值很長,那么查詢的速度會受到影響.例如,對一個CHAR(100)類型的字段進(jìn)行全文

檢索必要的時間肯定要比對CHAR(10)類型的字段必要的時間要多.MYSQL必讀

6.盡量使用前綴來索引MYSQL必讀

如果索引字段的值很長,最好使用值的前綴來索引.例如,TEXT和BLOG類型的字段,進(jìn)行全文檢索

會很浪費時間.如果只檢索字段的前面的若干個字符,這樣可以提高檢索速度.MYSQL必讀

7.刪除不再使用或者很少使用的索引MYSQL必讀

表中的數(shù)據(jù)被大量更新,或者數(shù)據(jù)的使用方式被改變后,原有的一些索引可能不再必要.數(shù)據(jù)庫管理

員應(yīng)當(dāng)定期找出這些索引,將它們刪除,從而減少索引對更新操作的影響.

MYSQL必讀

8.小表不應(yīng)建立索引;包括大量的列并且不需要搜索非空值的時候可以考慮不建索引MYSQL必讀

----------------------------------------------------------MYSQL必讀

mysql索引相關(guān)小常識:MYSQL必讀

一、 經(jīng)常被用來過濾記錄的字段.MYSQL必讀

1. primary key 字段, 系統(tǒng)自動創(chuàng)建主鍵的索引;

2. unique key 字段,系統(tǒng)自動創(chuàng)建對應(yīng)的索引;

3. foreign key 約束所定義的作為外鍵的字段;MYSQL必讀

4. 在查詢中用來連接表的字段;MYSQL必讀

5. 經(jīng)常用來作為排序(order by 的字段)基準(zhǔn)的字段;MYSQL必讀

二、索引會占用磁盤空間,創(chuàng)建不需要的索引只會形成浪費.MYSQL必讀

三、索引的創(chuàng)建必需考慮數(shù)據(jù)的操作方式.MYSQL必讀

1.內(nèi)容很少變動,經(jīng)常被查詢,為它多創(chuàng)建幾個索引o所謂;MYSQL必讀

2.經(jīng)常性,例行性變動的表而言,則需要謹(jǐn)慎地創(chuàng)建確實需要的索引;MYSQL必讀

四、primary key 和 unique key的區(qū)別MYSQL必讀

1. 作為Primary Key的域/域組不能為null.而Unique Key可以.MYSQL必讀

2. 在一個表中只能有一個Primary Key,而多個Unique Key可以同時存在.MYSQL必讀

更大的區(qū)別在邏輯設(shè)計上, Primary Key一般在邏輯設(shè)計中用作記錄標(biāo)識,這也是設(shè)置

Primary Key的原來用意, 而Unique Key只是為了保證域/域組的唯一性.MYSQL必讀

五、復(fù)合索引和單一索引MYSQL必讀

復(fù)合索引是指多字段聯(lián)合索引,查詢時經(jīng)常必要這幾個字段組合一起為條件再查詢MYSQL必讀

唯一索引主要是用主鍵ID索引,存儲結(jié)構(gòu)順序與物理結(jié)構(gòu)一致MYSQL必讀

如:create? index? idx? on? tbl(a,b)?MYSQL必讀

先按a排序, a相同的按b排序,所以當(dāng)你查a或ab的時候,MYSQL必讀

能夠利用到這個索引.但當(dāng)你只查b的時候,索引對你的贊助不大.可能可以跳躍查找.MYSQL必讀

---------------------------------------------

MYSQL必讀

添加和刪除索引的情況:MYSQL必讀

1、表的主鍵、外鍵必需有索引;MYSQL必讀

2、數(shù)據(jù)量超過300w的表應(yīng)該有索引;MYSQL必讀

3、經(jīng)常與其他表進(jìn)行連接的表,在連接字段上應(yīng)該建立索引;MYSQL必讀

4、經(jīng)常出現(xiàn)在Where子句中的字段,特別是大表的字段,應(yīng)該建立索引;MYSQL必讀

5、索引應(yīng)該建在選擇性高的字段上;MYSQL必讀

6、索引應(yīng)該建在小字段上,對于大的文本字段甚至超長字段,不要建索引;MYSQL必讀

7、復(fù)合索引的建立必要進(jìn)行仔細(xì)分析;盡量考慮用單字段索引代替:MYSQL必讀

A、正確選擇復(fù)合索引中的主列字段,一般是選擇性較好的字段;MYSQL必讀

B、復(fù)合索引的幾個字段是否經(jīng)常同時以AND方式出現(xiàn)在Where子句中?單字段查詢是否極少甚至沒有?如果是,則可以建立復(fù)合索引;否則考慮單字段索引;MYSQL必讀

C、如果復(fù)合索引中包括的字段經(jīng)常單獨出現(xiàn)在Where子句中,則分解為多個單字段索引;MYSQL必讀

D、如果復(fù)合索引所包括的字段超過3個,那么仔細(xì)考慮其必要性,考慮減少復(fù)合的字段;MYSQL必讀

E、如果既有單字段索引,又有這幾個字段上的復(fù)合索引,一般可以刪除復(fù)合索引;MYSQL必讀

8、頻繁進(jìn)行數(shù)據(jù)操作的表,不要建立太多的索引;MYSQL必讀

9、刪除無用的索引,避免對執(zhí)行計劃造成負(fù)面影響;MYSQL必讀

以上是一些普遍的建立索引時的判斷依據(jù).一言以蔽之,索引的建立必需慎重,對每個索引的必要性都應(yīng)該經(jīng)過仔細(xì)分析,要有建立的依據(jù).因為太多的索引與不充分、不正確的索引對性能都毫無益處:在表上建立的每個索引都會增加存儲開銷,索引對于插入、刪除、更新操作也會增加處理上的開銷.另外,過多的復(fù)合索引,在有單字段索引的情況下,一般都是沒有存在價值的;相反,還會降低數(shù)據(jù)增加刪除時的性能,特別是對頻繁更新的表來說,負(fù)面影響更大MYSQL必讀

以上這篇淺談mysql的索引設(shè)計原則以及常見索引的區(qū)別便是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持維易PHP.MYSQL必讀

維易PHP培訓(xùn)學(xué)院每天發(fā)布《Mysql學(xué)習(xí)淺談mysql的索引設(shè)計原則以及常見索引的區(qū)別》等實戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。

總結(jié)

以上是生活随笔為你收集整理的php 如何设计索引_Mysql学习浅谈mysql的索引设计原则以及常见索引的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。