精品免费在线观看-精品欧美-精品欧美成人bd高清在线观看-精品欧美高清不卡在线-精品欧美日韩一区二区

17站長網(wǎng)

17站長網(wǎng) 首頁 數(shù)據(jù)庫 Mysql 查看內(nèi)容

mysql索引與存儲(chǔ)引擎

2023-3-16 15:37| 查看: 1792 |來源: 互聯(lián)網(wǎng)

本篇博客講的是MySQL的索引的功能和使用 , 以及存儲(chǔ)引擎的基本簡(jiǎn)介一. mysql索引 索引的簡(jiǎn)介和作用 索引在MySQL中叫做鍵 , 是存儲(chǔ)引擎用于快速找到記錄的一 ...

本篇博客講的是MySQL的索引的功能和使用 , 以及存儲(chǔ)引擎的基本簡(jiǎn)介

 一. mysql索引

       索引的簡(jiǎn)介和作用

      索引在MySQL中叫做"鍵" , 是存儲(chǔ)引擎用于快速找到記錄的一種數(shù)據(jù)結(jié)構(gòu) . 索引對(duì)良好的性能非常關(guān)鍵 , 尤其是當(dāng)表中的數(shù)據(jù)量越來越大時(shí) , 索引對(duì)于性能的影響愈來愈發(fā)重要 .

      作用 : 通過一定的算法將數(shù)據(jù)庫中的記錄按一定的規(guī)律進(jìn)行分組 , 這樣查信息時(shí)可以縮小數(shù)據(jù)的搜索范圍 , 從而提高溜了查詢效率

      用生活實(shí)例來說 , 索引就好像書的目錄 , 清單上的列表 ; 好比人去吃火鍋 , 當(dāng)菜單拿到客戶手上 , 客戶可以根據(jù)菜單上的分類(海鮮 , 蔬菜類 , 肉類 , 飲料類等) , 根據(jù)自己的口味能第一時(shí)間找到自己想吃的菜 .

索引的分類

索引可分為 : 普通索引 , 唯一索引 , 全文索引 , 單列索引 , 多列索引 , 空間索引

語法格式:

CREATE TABLE 表名 (

       字段名1  數(shù)據(jù)類型 [完整性約束條件…],

       字段名2  數(shù)據(jù)類型 [完整性約束條件…],

       [UNIQUE | FULLTEXT | SPATIAL ]   INDEX | KEY

[索引名]  (字段名[(長度)]  [ASC |DESC])

示例 :

創(chuàng)建一個(gè)INDEX普通索引

CREATE TABLE dept(

     dept_id INT,

     dept_name VARCHAR(30) ,

     comment VARCHAR(50),

     index  (dept_name)              # 將表中的dept_name字段指定為普通索引字段

);

創(chuàng)建一個(gè)UNIQUE唯一索引:

CREATE TABLE dept2 (

     dept_id INT,

     dept_name VARCHAR(30) ,

     comment VARCHAR(50),

     UNIQUE INDEX  (dept_name)

);

相比普通索引來說 , 比上面的索引選項(xiàng)多了一個(gè)unique選項(xiàng)

創(chuàng)建一個(gè)全文索引;

CREATE TABLE dept3 (

     dept_id INT,

     dept_name VARCHAR(30) ,

     comment VARCHAR(50),

     log text,

FULLTEXT INDEX  (log)

)engine=myisam;

注: 只有MYISAM存儲(chǔ)引擎支持全文索引,innodb存儲(chǔ)引擎不支持全文索引

創(chuàng)建多列索引

CREATE TABLE dept13 (

     dept_id INT,

     dept_name VARCHAR(30) ,

     comment VARCHAR(50),

INDEX  (dept_name, comment)

);

相比普通索引來說 , 就是將多個(gè)字段設(shè)置為索引

對(duì)已存在的表創(chuàng)建索引

語法一:

CREATE  [UNIQUE | FULLTEXT | SPATIAL ]  INDEX  索引名  ON 表名 (字段名[(長度)]  [ASC |DESC]) ;

創(chuàng)建普通索引示例:此方法要指定索引名稱

CREATE INDEX index_dept_name ON dept6  (dept_name);

創(chuàng)建唯一索引示例:

CREATE UNIQUE INDEX index_dept_name ON dept6 (dept_name);

創(chuàng)建全文索引示例:

CREATE FULLTEXT INDEX index_dept_name ON dept6 (dept_name);

創(chuàng)建多列索引示例:

CREATE INDEX index_dept_name_ comment ON dept6 (dept_name, comment);

語法二:

ALTER TABLE在已存在的表上創(chuàng)建索引:

ALTER  TABLE  表名  ADD  [UNIQUE | FULLTEXT | SPATIAL ] INDEX

     索引名 (字段名[(長度)]  [ASC |DESC]) ;

管理索引:

查看索引: show  create  table  表名/G

測(cè)試索引: explain  select  *  from  表名  where  字段名='xx';

刪除索引: drop  index  索引名  on  表名

索引檢測(cè)實(shí)例:

要求 : 創(chuàng)建一個(gè)school的數(shù)據(jù)庫 , 創(chuàng)建一張t2表 , 用存儲(chǔ)過程腳本t2表插入1000W條數(shù)據(jù) , 然后查詢t2數(shù)據(jù)看看花費(fèi)了多長時(shí)間 ; 再為t2創(chuàng)建一個(gè)索引 , 再次查看數(shù)據(jù)看看所花費(fèi)的時(shí)間

準(zhǔn)備:

           create  database  school                                          #創(chuàng)建school數(shù)據(jù)庫

           create table school.t2(id int,name varchar(30));    #創(chuàng)建一張t2表 , 里面記錄id號(hào)和名字

定義一個(gè)插入1000W條數(shù)據(jù)的存儲(chǔ)過程 , 并調(diào)用此存儲(chǔ)過程

mysql> delimiter $$                            //設(shè)置命令的界定符(也稱為結(jié)束符)

mysql> create procedure autoinsert1()          //創(chuàng)建autoinsert1這個(gè)存儲(chǔ)過程(類似于shell腳本)

    -> BEGIN

    -> declare i int default 1;

    -> while(i<100000)do

    -> insert into school.t2 values(i,'ccc');

    -> set i=i+1;

    -> end while;

    -> END$$

mysql> delimiter ;

       call  atuoinsert1();

分兩次查詢數(shù)據(jù) , 對(duì)比所花的時(shí)間(實(shí)驗(yàn)中途插入1000W條數(shù)據(jù)花了33分鐘 , 插100W估計(jì)就能看出效果了):

 從上述實(shí)驗(yàn)可以看到 , 在一個(gè)存放1000W的表中 , 查詢一條數(shù)據(jù)跟創(chuàng)建索引后查詢一條數(shù)據(jù)相差了4S的時(shí)間 , 隨著數(shù)據(jù)更大 , 查詢時(shí)間也會(huì)不斷增大 , 所以足以證明 , 創(chuàng)建索引會(huì)大大提高M(jìn)ySQL的查詢工作效率!!!

二. MySQL存儲(chǔ)引擎介紹

了就是如何存儲(chǔ)數(shù)據(jù)、如何為存儲(chǔ)的數(shù)據(jù)建立索引和如何更新、查詢數(shù)據(jù)等技術(shù)的實(shí)現(xiàn)方法。因?yàn)樵陉P(guān)系數(shù)據(jù)庫中數(shù)據(jù)的存儲(chǔ)是以表的形式存儲(chǔ)的,所以存儲(chǔ)引擎也可以稱為表類型(即存儲(chǔ)和操作此表的類型)

在Oracle 和SQL Server等數(shù)據(jù)庫中只有一種存儲(chǔ)引擎,所有數(shù)據(jù)存儲(chǔ)管理機(jī)制都是一樣的。而MySql數(shù)據(jù)庫提供了多種存儲(chǔ)引擎。用戶可以根據(jù)不同的需求為數(shù)據(jù)表選擇不同的存儲(chǔ)引擎,用戶也可以根據(jù)自己的需要編寫自己的存儲(chǔ)引擎。

1. 查看存儲(chǔ)引擎

SHOW ENGINES;

SHOW ENGINES/G               查看MYSQL支持的存儲(chǔ)引擎

SHOW VARIABLES LIKE 'storage_engine%';    查看當(dāng)前的存儲(chǔ)引擎

SHOW VARIABLES LIKE 'auto_inc%';       查看自增長的設(shè)置狀態(tài)

show global variables   like  '%connet%'   查看connet環(huán)境變量設(shè)置

mysql> show variables/G          查看所有的環(huán)境變量

show variables當(dāng)前的會(huì)話

show global variables/G全局

2. 選擇存儲(chǔ)引擎

方法1.

mysql> create table innodb1(

-> id int

-> )engine=innodb;

mysql> show create table innodb1;

create tables test100(id init)engine=inodb;

方法2.

/etc/my.cnf

[mysqld]     在此行下添加下面的一行內(nèi)容

default-storage-engine=INNODB

由于該存儲(chǔ)引擎不支持事務(wù)、也不支持外鍵,所以訪問速度較快。因此當(dāng)對(duì)事務(wù)完整性沒有要求并以訪問為主的應(yīng)用適合使用該存儲(chǔ)引擎。

由于該存儲(chǔ)引擎在事務(wù)上具有優(yōu)勢(shì),即支持具有提交、回滾及崩潰恢復(fù)能力等事務(wù)特性,所以比MyISAM存儲(chǔ)引擎占用更多的磁盤空間。

因此當(dāng)需要頻繁的更新、刪除操作,同時(shí)還對(duì)事務(wù)的完整性要求較高,需要實(shí)現(xiàn)并發(fā)控制,建議選擇。

MEMORY

MEMORY存儲(chǔ)引擎存儲(chǔ)數(shù)據(jù)的位置是內(nèi)存,因此訪問速度最快,但是安全上沒有保障。適合于需要快速的訪問或臨時(shí)表。

BLACKHOLE

黑洞存儲(chǔ)引擎,可以應(yīng)用于主備復(fù)制中的分發(fā)主庫。

使用BLACKHOLE存儲(chǔ)引擎的表不存儲(chǔ)任何數(shù)據(jù),但如果mysql啟用了二進(jìn)制日志,SQL語句被寫入日志(并被復(fù)制到從服務(wù)器)。這樣使用BLACKHOLE存儲(chǔ)引擎的mysqld可以作為主從復(fù)制中的中繼重復(fù)器或在其上面添加過濾器機(jī)制。

本文最后更新于 2023-3-16 15:37,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)诰W(wǎng)站留言或聯(lián)系站長:17tui@17tui.com
·END·
站長網(wǎng)微信號(hào):w17tui,關(guān)注站長、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長網(wǎng)微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 亚洲欧美成人一区二区在线电影 | 2048国产精品原创综合在线 | 久久青青草原精品国产不卡 | 亚洲在线免费观看 | 视频二区 调教中字 知名国产 | 亚洲无线码一区二区三区在线观看 | 色牛网 | 亚洲综合日韩欧美一区二区三 | 日韩午夜伦y4480私人影院 | 欧美午夜免费毛片a级 | 三上悠亚magnet| 国产精品久久久久久久毛片 | 亚欧精品一区二区三区四区 | 国产亚洲欧美日韩综合另类 | 国产成人精品在线观看 | 色婷婷六月桃花综合影院 | 久久国产精品永久免费网站 | 亚洲网视频 | 深夜国产一区二区三区在线看 | 国产一区二区三区美女图片 | 精品日韩在线 | 日日麻批免费视频 | 97超巨香蕉在线亚洲精选 | 国产成人精品一区二区三在线观看 | 午夜丝袜美腿福利视频在线看 | 国产精品大尺度尺度视频 | 久久精品国产福利国产琪琪 | 国产三级毛片视频 | 玖玖爱zh综合伊人久久 | 大美女香蕉丽人视频网站 | 亚洲第一区在线观看 | 香蕉黄色网 | 亚洲色视频在线播放网站 | 国产视频 每日更新 | 国产一级做a爰片久久毛片 国产一级做a爰片久久毛片99 | 中文字幕永久在线视频 | 欧美一级看片免费观看视频在线 | 国产h视频在线 | 亚洲天堂爱爱 | 亚洲成人精品视频 | 久热中文字幕在线观看 |