• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Mysql中使用索引提高查詢速度

      2014-04-29 00:44:03魏再超
      中國(guó)電子商情 2014年12期
      關(guān)鍵詞:主鍵磁盤字段

      魏再超

      引言:在web開發(fā)中,頁(yè)面模板,業(yè)務(wù)邏輯(包括緩存、連接池)和數(shù)據(jù)庫(kù)這三個(gè)部分,數(shù)據(jù)庫(kù)在其中負(fù)責(zé)執(zhí)行SQL查詢并返回查詢結(jié)果,是影響網(wǎng)站速度最重要的性能瓶頸。本文主要針對(duì)MySql數(shù)據(jù)庫(kù),通過(guò)使用索引來(lái)提升查詢速度。

      索引用于快速找出在某個(gè)列中有一特定值的行。不使用索引,MySQL將進(jìn)行全表掃描,從第一條記錄開始然后讀完整個(gè)表直到找出相關(guān)的行。

      一、mysql索引類型

      常用的索引類型有

      (1)主鍵索引

      它是一種特殊的唯一索引,不允許有空值。一般是在建表的時(shí)候同時(shí)創(chuàng)建主鍵索引。

      (2)普通索引

      這是最基本的索引,它沒(méi)有任何限制。

      (3)唯一索引

      它與前面的普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。

      (4)全文索引

      MySQL支持全文索引和搜索功能。MySQL中的全文索引類型為FULLTEXT的索引。FULLTEXT 索引僅可用于 MyISAM表;

      二、在什么情況下使用索引

      為搜索字段建索引,如果在你的表中,某個(gè)字段你經(jīng)常用來(lái)做搜索,那么,請(qǐng)為其建立索引吧。一般來(lái)說(shuō),在WHERE和JOIN中出現(xiàn)的列需要建立索引以提高查詢速度。

      三、最常用的存儲(chǔ)引擎:

      (1)Myisam存儲(chǔ)引擎:每個(gè)Myisam在磁盤上存儲(chǔ)成三個(gè)文件。文件名都和表名相同,擴(kuò)展名分別為.frm(存儲(chǔ)表定義)、.MYD(存儲(chǔ)數(shù)據(jù))、.MYI(存儲(chǔ)索引)。數(shù)據(jù)文 件和索引文件可以放置在不同目錄,平均分布io,獲得更快的速度。對(duì)存儲(chǔ)大小沒(méi)有限制,MySQL數(shù)據(jù)庫(kù)的最大有效表尺寸通常是由操作系統(tǒng)對(duì)文件大小的限制決定的。

      (2)InnoDB存儲(chǔ)引擎:具有提交、回滾、奔潰恢復(fù)能力的事務(wù)安全。與Myisam相比,InnoDB的寫效率差一些并且會(huì)占用更多的磁盤空間以保留數(shù)據(jù)和索引。

      (3)如何選擇合適的引擎

      下面是常用存儲(chǔ)引擎適用的環(huán)境:

      Myisam:它是在Web、數(shù)據(jù)倉(cāng)儲(chǔ)和其他應(yīng)用環(huán)境下最常使用的存儲(chǔ)引擎;

      InnoDB:用于事務(wù)處理應(yīng)用程序,具有更多特性,包括ACID事務(wù)特性。

      四、設(shè)計(jì)MySql索引的時(shí)候有以下幾點(diǎn)注意:

      (1)、對(duì)于查詢占主要的應(yīng)用來(lái)說(shuō),索引顯得尤為重要。很多時(shí)候性能問(wèn)題很簡(jiǎn)單的就是因?yàn)槲覀兺颂砑铀饕斐傻模蛘哒f(shuō)沒(méi)有添加更為有效的索引導(dǎo)致。如果不加索引的話,那么查找任何哪怕只是一條特定的數(shù)據(jù)都會(huì)進(jìn)行一次全表掃描,如果一張表的數(shù)據(jù)量很大而符合條件的結(jié)果又很少,那么不加索引會(huì)引起致命的性能下降。但是也不是什么情況都非得建索引不可,如:表記錄太少,經(jīng)常插入、刪除、修改的表,某個(gè)字段只會(huì)出現(xiàn)重復(fù)的幾個(gè)值,建索引不僅沒(méi)什么優(yōu)勢(shì),還會(huì)影響到更新速度,這被稱為過(guò)度索引。其次,在對(duì)建立索引的時(shí)候要對(duì)表進(jìn)行加鎖,因此應(yīng)當(dāng)注意操作在業(yè)務(wù)空閑的時(shí)候進(jìn)行。

      (2)、還應(yīng)當(dāng)考慮表空間和磁盤空間是否足夠。我們知道索引也是一種數(shù)據(jù),在建立索引的時(shí)候勢(shì)必也會(huì)占用大量表空間。因此在對(duì)一大表建立索引的時(shí)候首先應(yīng)當(dāng)考慮的是空間容量問(wèn)題。

      (3)、性能調(diào)整方面:首當(dāng)其沖的考慮因素便是磁盤I/O。物理上,應(yīng)當(dāng)盡量把索引與數(shù)據(jù)分散到不同的磁盤上(不考慮陣列的情況)。邏輯上,數(shù)據(jù)表空間與索引表空間分開。這是在建索引時(shí)應(yīng)當(dāng)遵守的基本準(zhǔn)則。

      參考文獻(xiàn)

      [1] http://blog.sina.com.cn/s/blog_40e5b6370100f0vy.html.

      [2]高性能MySQL(第3版).電子工業(yè)出版社.Baron Schwartz等著;寧海元等譯.

      [3]MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎(第2版).機(jī)械工業(yè)出版社. 姜承堯 著.

      (作者單位:保山學(xué)院信息學(xué)院)

      猜你喜歡
      主鍵磁盤字段
      基于Go 實(shí)現(xiàn)的分布式主鍵系統(tǒng)研究
      圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
      基于外鍵的E-R圖繪制方法研究
      解決Windows磁盤簽名沖突
      電腦愛好者(2019年2期)2019-10-30 03:45:31
      修改磁盤屬性
      磁盤組群組及iSCSI Target設(shè)置
      創(chuàng)建VSAN群集
      CNMARC304字段和314字段責(zé)任附注方式解析
      無(wú)正題名文獻(xiàn)著錄方法評(píng)述
      關(guān)于CNMARC的3--字段改革的必要性與可行性研究
      宁德市| 延庆县| 宝鸡市| 长泰县| 上饶县| 苍南县| 开化县| 大同县| 秦皇岛市| 汝阳县| 乌什县| 涟水县| 游戏| 康平县| 太康县| 东至县| 承德市| 丁青县| 罗甸县| 漳浦县| 财经| 华池县| 威宁| 英德市| 南通市| 漠河县| 珠海市| 紫阳县| 化州市| 宿迁市| SHOW| 涞源县| 慈溪市| 中卫市| 建瓯市| 丘北县| 济阳县| 永泰县| 梅州市| 双柏县| 云南省|