MYSQL的一些問題

數(shù)據(jù)存儲Innodb

創(chuàng)建數(shù)據(jù)庫后會在data目錄下創(chuàng)建文件夾
C:\Program Files\mysql-8.0.17-winx64\data\test_db

create database test_db;

創(chuàng)建表后會在文件夾生成一個.ibd文件tb_emp1包含tablespace id

mysql> create table tb_emp1(
    -> id int(11),
    -> name varchar(25),
    -> deptId int(11),
    -> salary float);

插入數(shù)據(jù)后數(shù)據(jù)存儲在公共空間啤它。

insert (1,1,1,1) into tb_emp1;

引擎


InnoDB不創(chuàng)建目錄,使用 InnoDB時, MySQL將在 MySQL數(shù)據(jù)目錄下創(chuàng)建一個名為ibdata1的10MB大小的自動擴展數(shù)據(jù)文件,以及兩個名為 ib_logfile0和 ib_logfile的5MB大小的日志文件舱卡。

使用 MyISAM引擎創(chuàng)建數(shù)據(jù)庫,將生產(chǎn)3個文件胖笛。文件的名字以表的名字開始,擴展名指出文件類型:fm文件存儲表定義,數(shù)據(jù)文件的擴展名為MYD( MYData),索引文件的擴展名是MYI( MYIndex)孟害。

索引

索引是一個單獨的她紫、存儲在磁盤上的數(shù)據(jù)庫結構,它們包含著對數(shù)據(jù)表里所有記錄的引用指針嫌松。使用索引用于快速找出在某個或多個列中有一特定值的行,所有 MySQL列類型都可以被索引,對相關列使用索引是提高查詢操作速度的最佳途徑沧奴。innodb表的索引會存放于s1.ibd文件中粤剧,而myisam表的索引則會有單獨的索引文件table1.MYI

通過不斷地縮小想要獲取數(shù)據(jù)的范圍來篩選出最終想要的結果歇竟,同時把隨機的事件變成順序的事件,也就是說抵恋,有了這種索引機制焕议,我們可以總是用同一種查找方式來鎖定數(shù)據(jù)』」兀考慮到磁盤IO是非常高昂的操作盅安,計算機操作系統(tǒng)做了一些優(yōu)化,當一次IO時世囊,不光把當前磁盤地址的數(shù)據(jù)别瞭,而是把相鄰的數(shù)據(jù)也都讀取到內(nèi)存緩沖區(qū)內(nèi)。

優(yōu)點

(1)通過創(chuàng)建唯一索引,可以保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的唯一性株憾。
(2)可以大大加快數(shù)據(jù)的查詢速度,這也是創(chuàng)建索引的最主要的原因蝙寨。
(3)在實現(xiàn)數(shù)據(jù)的參考完整性方面,可以加速表和表之間的連接晒衩。
(4)在使用分組和排序子句進行數(shù)據(jù)查詢時,也可以顯著減少查詢中分組和排序的時間。

缺點

(1)創(chuàng)建索引和維護索引要耗費時間,并且隨著數(shù)據(jù)量的增加所耗費的時間也會增加墙歪。
(2)索引需要占磁盤空間,除了數(shù)據(jù)表占數(shù)據(jù)空間之外,每一個索引還要占一定的物理听系。
空間,如果有大量的索引,索引文件可能比數(shù)據(jù)文件更快達到最大文件尺寸。
(3)當對表中的數(shù)據(jù)進行增加虹菲、刪除和修改的時候,索引也要動態(tài)地維護,這樣就降低靠胜。


使用 CREATE TABLE創(chuàng)建表時,除了可以定義列的數(shù)據(jù)類型,還可以定義主鍵約束、外鍵約束或者唯一性約束,而不論創(chuàng)建那種約束,在定義約束的同時相當于在指定列上創(chuàng)建了一個索引毕源。

普通索引

最基本的索引類型,沒有唯一性之類的限制,其作用只是加快對數(shù)據(jù)的訪問速度浪漠。

INDEX(...)

唯一索引

創(chuàng)建唯一索引的主要原因是減少查詢索引列操作的執(zhí)行時間,尤其是對比較龐大的數(shù)據(jù)表。它與前面的普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值脑豹。如果是組合索引,則列值的組合必須唯郑藏。

UNIQUE INDEX  UniqueIdx(id)

單列索引

單列索引是在數(shù)據(jù)表中的某一個字段上創(chuàng)建的索引,一個表中可以創(chuàng)建多個單列索引前,面兩個例子中創(chuàng)建的索引都為單列索引瘩欺。

INDEX  SingelIdxname(20))

組合索引

在多個字段上增加索引必盖。

INDEX MultipleIdex(id,name,age(100))

組合索引可起幾個索引的作用,但是使用時并不是隨便查詢哪個字段都可以使用索引,而是遵從“最左前綴”:利用索引中最左邊的列集來匹配行,這樣的列集稱為最左前綴。例如這里由id俱饿、name和age3個字段構成的索引,索引行中按 id/name/age的順序存放,索引可以搜索下面字段組合:(id,name,age)歌粥、(id,name)或者id。如果列不構成索引最左面的前綴MySQL不能使用局部索引,如(age)或(name,age)組合則不能使用索引查詢.

全文索引

FULLTEXT(全文索引)可以用于全文搜索拍埠。只有 MyISAM存儲引擎支持 FULLTEXT索引,并且只為CHAR失驶、 VARCHAR和TEXT列創(chuàng)建索引。索引總是對整個列進行,不支持局部(前綴)索引枣购。

FULLTEXT INDEX FullTxtIdx(info)

空間索引

只有 MyISAM存儲引擎支持SPATIAL索引嬉探。

b+樹性質(zhì)

索引字段要盡量的小,b+樹要求把真實的數(shù)據(jù)放到葉子節(jié)點而不是內(nèi)層節(jié)點棉圈,一旦放到內(nèi)層節(jié)點涩堤,磁盤塊的數(shù)據(jù)項會大幅度下降,導致樹增高分瘾;索引的最左匹配特性(即從左往右匹配)胎围。

存儲過程

一組為了完成特定功能的SQL 語句集,它存儲在數(shù)據(jù)庫中德召,一次編譯后永久有效白魂,用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。

存儲程序可以分為存儲過程和函數(shù), MySQL中創(chuàng)建存儲過程和函數(shù)使用的語句分別是:CREATE PROCEDURE和 CREATE FUNCTION上岗。使用CAL語句來調(diào)用存儲過程,只能用輸出變量返回值福荸。函數(shù)可以從語句外調(diào)用(即通過引用函數(shù)名),也能返回標量值。存儲過程也可以調(diào)用其他存儲過程肴掷。

視圖

視圖是從一個或幾個基本表導出的表逞姿。它本身不獨立存儲在數(shù)據(jù)庫中,即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應的數(shù)據(jù)辞嗡。這些數(shù)據(jù)仍存放在導出視圖的基本表中,因此視圖是一個虛表捆等。視圖在概念上與基本表等同,用戶可以在視圖上再定義視圖滞造。

作用

1.簡單化
看到的就是需要的。視圖不僅可以簡化用戶對數(shù)據(jù)的理解,也可以簡化他們的操作栋烤。那些被經(jīng)常使用的查詢可以被定義為視圖,從而使得用戶不必為以后的操作每次指定全部的條件谒养。
2.安全性
通過視圖用戶只能查詢和修改他們所能見到的數(shù)據(jù)。數(shù)據(jù)庫中的其他數(shù)據(jù)則既看不見也取不到明郭。數(shù)據(jù)庫授權命令可以使每個用戶對數(shù)據(jù)庫的檢索限制到特定的數(shù)據(jù)庫對象上,但不能授權到數(shù)據(jù)庫特定行和特定的列上买窟。
3.邏輯數(shù)據(jù)獨立性
視圖可幫助用戶屏蔽真實表結構變化帶來的影響。

觸發(fā)器

觸發(fā)器(trigger)是個特殊的存儲過程,不同的是,執(zhí)行存儲過程要使用CALL語句來調(diào)用觸發(fā)器的執(zhí)行不需要使用CALL語句來調(diào)用,也不需要手工啟動,只要當一個預定義的事件發(fā)生的時候,就會被 MySQL自動調(diào)用薯定。比如當對 fruits表進行操作( INSERT始绍、 DELETE或 UPDATE)時就會激活它執(zhí)行。

優(yōu)化

優(yōu)化查詢

優(yōu)化查詢語句话侄、索引對查詢速度的影響亏推、使用索引查詢、優(yōu)化子查詢年堆。

優(yōu)化數(shù)據(jù)庫結構

將字段很多的表分解成多個表吞杭、增加中間表、增加冗余字段变丧、優(yōu)化插入記錄的速度芽狗、分析表、檢查表和優(yōu)化表

優(yōu)化 MySQL服務器

服務器硬件痒蓬、 MySQL的參數(shù)

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末童擎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子攻晒,更是在濱河造成了極大的恐慌顾复,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炎辨,死亡現(xiàn)場離奇詭異捕透,居然都是意外死亡,警方通過查閱死者的電腦和手機碴萧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門乙嘀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人破喻,你說我怎么就攤上這事虎谢。” “怎么了曹质?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵婴噩,是天一觀的道長擎场。 經(jīng)常有香客問我,道長几莽,這世上最難降的妖魔是什么迅办? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮章蚣,結果婚禮上站欺,老公的妹妹穿的比我還像新娘。我一直安慰自己纤垂,他們只是感情好矾策,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著峭沦,像睡著了一般贾虽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吼鱼,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天蓬豁,我揣著相機與錄音,去河邊找鬼蛉抓。 笑死庆尘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的巷送。 我是一名探鬼主播驶忌,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼笑跛!你這毒婦竟也來了付魔?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤飞蹂,失蹤者是張志新(化名)和其女友劉穎几苍,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陈哑,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡妻坝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了惊窖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刽宪。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖界酒,靈堂內(nèi)的尸體忽然破棺而出圣拄,到底是詐尸還是另有隱情,我是刑警寧澤毁欣,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布庇谆,位于F島的核電站岳掐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏饭耳。R本人自食惡果不足惜串述,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哥攘。 院中可真熱鬧剖煌,春花似錦、人聲如沸逝淹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栅葡。三九已至,卻和暖如春尤泽,著一層夾襖步出監(jiān)牢的瞬間欣簇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工坯约, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留熊咽,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓闹丐,卻偏偏與公主長得像横殴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子卿拴,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 今天看到一位朋友寫的mysql筆記總結衫仑,覺得寫的很詳細很用心,這里轉(zhuǎn)載一下堕花,供大家參考下文狱,也希望大家能關注他原文地...
    信仰與初衷閱讀 4,725評論 0 30
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發(fā)此異常缘挽。 O...
    我想起個好名字閱讀 5,249評論 0 9
  • MySQL不權威總結 歡迎閱讀 本文并非事無巨細的mysql學習資料瞄崇,而是選擇其中重要、困難壕曼、易錯的部分進行系統(tǒng)地...
    liufxlucky365閱讀 2,580評論 0 26
  • 一苏研、MySQL優(yōu)化 MySQL優(yōu)化從哪些方面入手: (1)存儲層(數(shù)據(jù)) 構建良好的數(shù)據(jù)結構∥迅澹可以大大的提升我們S...
    寵辱不驚丶歲月靜好閱讀 2,418評論 1 8
  • 主鍵楣富,外鍵,超鍵伴榔,候選鍵 數(shù)據(jù)庫事務的四個特征及含義 視圖的作用纹蝴,可以更改嗎 視圖是虛擬的表庄萎;只包含動態(tài)檢索數(shù)據(jù)的...
    DamaoShao閱讀 6,246評論 0 3