国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引

這篇具有很好參考價(jià)值的文章主要介紹了簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔


一、索引的概念

1、簡(jiǎn)介

●索引是一個(gè)排序的列表,在這個(gè)列表中存儲(chǔ)著索引的值和包含這個(gè)值的數(shù)據(jù)所在行的物理地址(類似于C語(yǔ)言的鏈表通過(guò)指針指向數(shù)據(jù)記錄的內(nèi)存地址)。
●使用索引后可以不用掃描全表來(lái)定位某行的數(shù)據(jù),而是先通過(guò)索引表找到該行數(shù)據(jù)對(duì)應(yīng)的物理地址然后訪問(wèn)相應(yīng)的數(shù)據(jù),因此能加快數(shù)據(jù)庫(kù)的查詢速度。
●索引就好比是一本書的目錄,可以根據(jù)目錄中的頁(yè)碼快速找到所需的內(nèi)容。
●索引是表中一列或者若干列值排序的方法。
●建立索引的目的是加快對(duì)表中記錄的查找或排序

2、作用

●設(shè)置了合適的索引之后,數(shù)據(jù)庫(kù)利用各種快速定位技術(shù),能夠大大加快查詢速度,這是創(chuàng)建索引的最主要的原因。
●當(dāng)表很大或查詢涉及到多個(gè)表時(shí),使用索引可以成千上萬(wàn)倍地提高查詢速度。
●可以降低數(shù)據(jù)庫(kù)的IO成本,并且索引還可以降低數(shù)據(jù)庫(kù)的排序成本。
●通過(guò)創(chuàng)建唯一(鍵)性索引,可以保證數(shù)據(jù)表中每一行數(shù)據(jù)的唯一性。
●可以加快表與表之間的連接。
●在使用分組和排序時(shí),可大大減少分組和排序的時(shí)間。

3、索引的副作用:

●索引需要占用額外的磁盤空間。
對(duì)于 MyISAM 引擎而言,索引文件和數(shù)據(jù)文件是分離的,索引文件用于保存數(shù)據(jù)記錄的地址。
而 InnoDB 引擎的表數(shù)據(jù)文件本身就是索引文件。
●在插入和修改數(shù)據(jù)時(shí)要花費(fèi)更多的時(shí)間,因?yàn)樗饕惨S之變動(dòng)。

4、創(chuàng)建索引的原則依據(jù)

索引雖可以提升數(shù)據(jù)庫(kù)查詢的速度,但并不是任何情況下都適合創(chuàng)建索引。因?yàn)樗饕旧頃?huì)消耗系統(tǒng)資源,在有索引的情況下,數(shù)據(jù)庫(kù)會(huì)先進(jìn)行索引查詢,然后定位到具體的數(shù)據(jù)行,如果索引使用不當(dāng),反而會(huì)增加數(shù)據(jù)庫(kù)的負(fù)擔(dān)。
●表的主鍵、外鍵必須有索引。因?yàn)橹麈I具有唯一性,外鍵關(guān)聯(lián)的是子表的主鍵,查詢時(shí)可以快速定位
●記錄數(shù)超過(guò)300行的表應(yīng)該有索引。如果沒(méi)有索引,需要把表遍歷一遍,會(huì)嚴(yán)重影響數(shù)據(jù)庫(kù)的性能。
●經(jīng)常與其他表進(jìn)行連接的表,在連接字段上應(yīng)該建立索引。
●唯一性太差的字段不適合建立索引。
●更新太頻繁地字段不適合創(chuàng)建索引。
●經(jīng)常出現(xiàn)在 where 子句中的字段,特別是大表的字段,應(yīng)該建立索引。
select name,score from ky19 where id=1
●索引應(yīng)該建在選擇性高的字段上。
●索引應(yīng)該建在小字段上,對(duì)于大的文本字段甚至超長(zhǎng)字段,不要建索引。

5、索引的分類

普通索引:最基本的索引類型。
唯一索引:索引列每個(gè)值都唯一(允許有空值),且添加唯一鍵時(shí)會(huì)自動(dòng)創(chuàng)建唯一索引。
主鍵索引:就是主鍵 ,一個(gè)表只能有一個(gè)主鍵,主鍵字段的值不允許為NULL,也不允許重復(fù)。
組合索引:由多列組合的索引,可以做普通組合索引,唯一組合索引(多列組合的值不能重復(fù),其中某個(gè)單列是可以重復(fù)的)。且需要滿足最左原則,即使用 SELECT 語(yǔ)句查詢時(shí) WHERE 條件使用的字段順序必須和組合索引中的排序一致,否則索引將不會(huì)生效。
全文索引:適合在進(jìn)行模糊查詢的時(shí)候使用,可用于在一篇文章中檢索文本信息。Mysql15.6 版本以前 FULLTEXT 索引僅可用于 MyISAM 引擎,在5.6版本之后 innoDB 引擎也支持FULLTEXT 索引。全文索引可以在CHAR、VARCHAR 或者 TEXT 類型的列上創(chuàng)建。

二、索引的增刪改查

1.創(chuàng)建索引

(1)創(chuàng)建普通索引

直接創(chuàng)建

CREATE INDEX 索引名 ON 表名 (字段名(數(shù)據(jù)類型長(zhǎng)度));

簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
修改表結(jié)構(gòu)
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
創(chuàng)建時(shí)指定索引

CREATE TABLE 表名 (字段1 數(shù)據(jù)類型,字段2 數(shù)據(jù)類型,... ,INDEX 索引名 (字段名(數(shù)據(jù)類型長(zhǎng)度));

簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle

(2)創(chuàng)建唯一索引

直接創(chuàng)建

CREATE UNIQUE INDEX 索引名 ON 表名 (字段名(數(shù)據(jù)類型長(zhǎng)度));

簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
修改表結(jié)構(gòu)
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
創(chuàng)建唯一鍵自動(dòng)生成
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle

(3)創(chuàng)建主鍵索引

修改表結(jié)構(gòu)
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
創(chuàng)建表時(shí)指定主鍵
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle

(4)創(chuàng)建(唯一)組合索引

直接創(chuàng)建索引
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
修改表結(jié)構(gòu)
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle

(5)創(chuàng)建和使用全文索引查詢

直接創(chuàng)建索引
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
修改表結(jié)構(gòu)
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
創(chuàng)建表時(shí)指定全文索引
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
使用全文索引查詢
簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle

2.刪除索引

DROP INDEX 索引名 ON 表名;

簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle

ALTER TABLE 表名 DROP INDEX 索引名;

簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle

3.查看索引

SHOW INDEX FROM 表名;         或        SHOW KEYS FROM 表名;

簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引,數(shù)據(jù)庫(kù),mysql,oracle
各字段的含義:

Table 表的名稱
Non_unique 如果索引內(nèi)容唯一,則為 0;如果可以不唯一,則為 1。
Key_name 索引的名稱。
Seq_in_index 索引中的列序號(hào),從 1 開(kāi)始。 limit 2,3
Column_name 列名稱。
Collation 列以什么方式存儲(chǔ)在索引中。在 MySQL 中,有值‘A’(升序)或 NULL(無(wú)分類)。
Cardinality 索引中唯一值數(shù)目的估計(jì)值。
Sub_part 如果列只是被部分地編入索引,則為被編入索引的字符的數(shù)目(zhangsan)。如果整列被編入索引,則為 NULL。
Packed 指示關(guān)鍵字如何被壓縮。如果沒(méi)有被壓縮,則為 NULL。
Null 如果列含有 NULL,則含有 YES。如果沒(méi)有,則該列含有 NO。
Index_type 用過(guò)的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
Comment 備注。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-572138.html

到了這里,關(guān)于簡(jiǎn)單認(rèn)識(shí)MySQL數(shù)據(jù)庫(kù)索引的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MySQL數(shù)據(jù)庫(kù)索引機(jī)制

    MySQL數(shù)據(jù)庫(kù)索引機(jī)制

    MySQL是一款有客戶端和服務(wù)端的網(wǎng)絡(luò)應(yīng)用,mysql是它的客戶端,mysqld是它的服務(wù)端。服務(wù)端本質(zhì)就是一個(gè)進(jìn)程,它存在于內(nèi)存當(dāng)中。而我們存儲(chǔ)在MySQL中的數(shù)據(jù)是保存在磁盤上的,當(dāng)我們對(duì)MySQL中數(shù)據(jù)進(jìn)行增刪查改操作時(shí),不可能是直接在磁盤上進(jìn)行操作,而是將對(duì)應(yīng)的數(shù)據(jù)加

    2024年02月12日
    瀏覽(100)
  • MySQL數(shù)據(jù)庫(kù)唯一索引

    MySQL數(shù)據(jù)庫(kù)唯一索引

    創(chuàng)建索引是指在某個(gè)表的一列或多列上建立一個(gè)索引,以便提高對(duì)表的訪問(wèn)速度。創(chuàng)建索引有3種方式,分別是1.創(chuàng)建表的時(shí)候創(chuàng)建索引、2.在已經(jīng)存在的表上創(chuàng)建索引和使用3.ALTER TABLE語(yǔ)句來(lái)創(chuàng)建索引。 本文福利, 莬 費(fèi)領(lǐng)取Qt開(kāi)發(fā)學(xué)習(xí)資料包、技術(shù)視頻,內(nèi)容包括(C++語(yǔ)言基

    2024年02月08日
    瀏覽(96)
  • MySQL數(shù)據(jù)庫(kù)索引的數(shù)據(jù)結(jié)構(gòu)

    數(shù)據(jù)庫(kù)索引的功能就是讓查找更加的高效,所以索引的數(shù)據(jù)結(jié)構(gòu)應(yīng)該是能夠加速查找的數(shù)據(jù)結(jié)構(gòu)。 MySQL的innoDB存儲(chǔ)引擎的索引的數(shù)據(jù)結(jié)構(gòu)就是多叉搜索樹(shù)中的b+樹(shù),這可以說(shuō)是為索引量身定做的一個(gè)數(shù)據(jù)結(jié)構(gòu)。 首先,索引可以通過(guò)主鍵,unique修飾創(chuàng)建,也可以直接使用sql語(yǔ)句

    2024年02月10日
    瀏覽(31)
  • MySQL數(shù)據(jù)庫(kù)之JDBC編程(從認(rèn)識(shí)到操作)

    MySQL數(shù)據(jù)庫(kù)之JDBC編程(從認(rèn)識(shí)到操作)

    目錄 前言 一.JDBC的認(rèn)識(shí) 1.1JDBC的來(lái)源 1.2JDBC的概念 二.JDBC的導(dǎo)包? 三.JDBC的四步操作 三.JDBC常用的類和方法 ?3.1常用類 3.2常見(jiàn)方法 ??個(gè)人主頁(yè):tq02的博客_CSDN博客-C語(yǔ)言,Java,Java數(shù)據(jù)結(jié)構(gòu)領(lǐng)域博主 ?? 本文由 tq02 原創(chuàng),首發(fā)于 CSDN?? ???本章講解內(nèi)容: JDBC的詳細(xì)講解 ??學(xué)習(xí)

    2024年02月15日
    瀏覽(94)
  • 【MySql系列】深入解析數(shù)據(jù)庫(kù)索引

    【MySql系列】深入解析數(shù)據(jù)庫(kù)索引

    MySQL索引是數(shù)據(jù)庫(kù)中一個(gè)關(guān)鍵的概念,它可以極大地提高查詢性能,加快數(shù)據(jù)檢索速度。但是,要充分發(fā)揮索引的作用,需要深入理解它們的工作原理和使用方式。 在本文中,我們將深入解析MySQL索引,探討它們的重要性、類型、創(chuàng)建、維護(hù)以及最佳實(shí)踐。 在數(shù)據(jù)庫(kù)中,索引

    2024年02月08日
    瀏覽(30)
  • 【MySQL數(shù)據(jù)庫(kù) | 第十七篇】索引以及索引結(jié)構(gòu)介紹

    【MySQL數(shù)據(jù)庫(kù) | 第十七篇】索引以及索引結(jié)構(gòu)介紹

    目錄 前言: 索引簡(jiǎn)介:? 索引結(jié)構(gòu): ? ? ? ? ??二叉樹(shù)索引結(jié)構(gòu) ? ? ? ??Tree(普通二叉樹(shù)) ? ? ? ??B-Tree(多路平衡查找樹(shù)) ? ? ? ??B+Tree ? ? ? ???哈希索引數(shù)據(jù)結(jié)構(gòu) 總結(jié): 在實(shí)際生活中,我們對(duì)SQL語(yǔ)句進(jìn)行優(yōu)化實(shí)際上有很大一部分都是對(duì)索引進(jìn)行優(yōu)化,因此對(duì)索引

    2024年02月09日
    瀏覽(40)
  • DBeaver連接mysql、oracle數(shù)據(jù)庫(kù)

    DBeaver連接mysql、oracle數(shù)據(jù)庫(kù)

    1) 下載DBeaver?https://dbeaver.io/download/,并安裝 2) 新建數(shù)據(jù)庫(kù)連接 ?? 3)選擇mysql驅(qū)動(dòng)程序 ?4)填寫連接設(shè)置內(nèi)容 5)點(diǎn)擊 “編輯驅(qū)動(dòng)設(shè)置”,并填寫相關(guān)信息 ?6)選擇本地自己下載的驅(qū)動(dòng)庫(kù)jar包 (也可以點(diǎn)擊下載驅(qū)動(dòng)) ?7)完成后,點(diǎn)擊測(cè)試連接,可以查看是否連接成功

    2024年02月05日
    瀏覽(38)
  • 查詢數(shù)據(jù)庫(kù)空間(mysql和oracle)

    1.查看數(shù)據(jù)庫(kù)表空間文件: 2.查看所有表空間的總?cè)萘浚?3.查看數(shù)據(jù)庫(kù)表空間使用率 4.1.查看表空間總大小、使用率、剩余空間 4.2.查看表空間使用率(包含temp臨時(shí)表空間) 5.查看具體表的占用空間大小 1.更改表空間的dbf數(shù)據(jù)文件分配空間大小 2. 為表空間新增一個(gè)數(shù)據(jù)文件(表空間

    2024年02月05日
    瀏覽(42)
  • 數(shù)據(jù)庫(kù)去重(MYSQL和ORACLE)

    一、數(shù)據(jù)庫(kù)中的去重操作(刪除數(shù)據(jù)庫(kù)中重復(fù)記錄的SQL語(yǔ)句)主要有三種方法 (1)、rowid方法 (2)、group by 方法 (3)、distinct方法 1、用rowid方法 根據(jù)Oracle帶的rowid屬性,可以進(jìn)行判斷是否存在重復(fù)語(yǔ)句; (1)、查出表1和表2中name相同的數(shù)據(jù) Select * from table1 a Where rowid !=

    2024年02月09日
    瀏覽(28)
  • MySQL數(shù)據(jù)庫(kù)索引的種類、創(chuàng)建、刪除

    MySQL數(shù)據(jù)庫(kù)索引的種類、創(chuàng)建、刪除

    目錄 一:MySQL 索引 1、MySQL 索引介紹 2、?索引的作用 ?3、索引的副作用 4、?創(chuàng)建索引的原則依據(jù) ?二、索引的分類和創(chuàng)建 1、?普通索引 (1)?直接創(chuàng)建索引 (2)?修改表方式創(chuàng)建 (3)?創(chuàng)建表的時(shí)候指定索引 2、?唯一索引 (1)?直接創(chuàng)建唯一索引 (2)?修改表方式創(chuàng)建

    2024年02月09日
    瀏覽(1049)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包