MySQL不僅易學(xué),開發(fā)成本低,而且90%以上的數(shù)據(jù)庫(kù)操作都跟通用的SQL語(yǔ)法一致。體積小、速度快,性能優(yōu)異,是目前企業(yè)實(shí)際開發(fā)中最廣泛應(yīng)用的數(shù)據(jù)庫(kù)之一。
創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元紅河做網(wǎng)站,已為上家服務(wù),為紅河各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
mysql多久才能學(xué)會(huì)呢?因人而異,如果你對(duì)它非常感興趣,也非常迫切想學(xué)好它的話,并且一直很認(rèn)真的去學(xué)習(xí),相信你用不了多久就會(huì)學(xué)好mysql,而且一周時(shí)間足夠了,但是如果你不感興趣,而且你也不愿意付出行代價(jià)和時(shí)間去學(xué)習(xí),很難學(xué)好學(xué)會(huì)它,而且時(shí)間也會(huì)耗費(fèi)的很長(zhǎng)。
為了更方便大家學(xué)習(xí),我給大家整理了MySQL數(shù)據(jù)庫(kù)學(xué)習(xí)路線和學(xué)習(xí)課時(shí)安排,希望對(duì)你的學(xué)習(xí)有幫助。
MySQL數(shù)據(jù)庫(kù)從入門到精通是計(jì)算機(jī)專業(yè)學(xué)生必修的一門重要專業(yè)拓展選修課。內(nèi)容覆蓋全面、講解詳細(xì),其中包括初識(shí)數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)和表的基本操作、表中數(shù)據(jù)的基本操作、單表查詢、數(shù)據(jù)的完整性、多表查詢、常用函數(shù)、視圖、存儲(chǔ)過(guò)程、觸發(fā)器、數(shù)據(jù)庫(kù)事務(wù)、MySQL高級(jí)操作和綜合案例等,了解MySQL數(shù)據(jù)庫(kù)技術(shù)發(fā)展應(yīng)用的領(lǐng)域與前景,激發(fā)學(xué)生的學(xué)習(xí)興趣,為進(jìn)一步學(xué)習(xí)和應(yīng)用計(jì)算機(jī)奠定良好的基礎(chǔ)。
章目 學(xué)時(shí)分配
第1章 初識(shí)數(shù)據(jù)庫(kù) 2學(xué)時(shí)
第2章 數(shù)據(jù)庫(kù)和表的基本操作 2學(xué)時(shí)
第3章 表中數(shù)據(jù)的基本操作 2學(xué)時(shí)
第4章 單表查詢 2學(xué)時(shí)
第5章 數(shù)據(jù)的完整性 4學(xué)時(shí)
第6章 多表查詢 2學(xué)時(shí)
第7章 常用函數(shù) 4學(xué)時(shí)
第8章 視圖 2學(xué)時(shí)
第9章 存儲(chǔ)過(guò)程 2學(xué)時(shí)
第10章 觸發(fā)器 2學(xué)時(shí)
第11章 數(shù)據(jù)庫(kù)事務(wù) 2學(xué)時(shí)
第12章 MySQL高級(jí)操作 2學(xué)時(shí)
第13章 綜合案例 2學(xué)時(shí)
合計(jì) 30學(xué)時(shí)
如果你不想一個(gè)人野蠻生長(zhǎng),找不到系統(tǒng)的資料,問(wèn)題得不到幫助,堅(jiān)持幾天便放棄的感受的話,可以私信大家一起討論交流。
鎖是計(jì)算機(jī)協(xié)調(diào)多個(gè)進(jìn)程或線程并發(fā)訪問(wèn)某一資源的機(jī)制,在數(shù)據(jù)庫(kù)中,除傳統(tǒng)的計(jì)算資源(CPU、RAM、I/O)爭(zhēng)用外,數(shù)據(jù)也是一種供許多用戶共享的資源,如何保證數(shù)據(jù)并發(fā)訪問(wèn)的一致性,有效性是所有數(shù)據(jù)庫(kù)必須解決的一個(gè)問(wèn)題,鎖沖突也是影響數(shù)據(jù)庫(kù)并發(fā)訪問(wèn)性能的一個(gè)重要因素,從這個(gè)角度來(lái)說(shuō),鎖對(duì)數(shù)據(jù)庫(kù)而言是尤其重要,也更加復(fù)雜。MySQL中的鎖,按照鎖的粒度分為:1、全局鎖,就鎖定數(shù)據(jù)庫(kù)中的所有表。2、表級(jí)鎖,每次操作鎖住整張表。3、行級(jí)鎖,每次操作鎖住對(duì)應(yīng)的行數(shù)據(jù)。
全局鎖就是對(duì)整個(gè)數(shù)據(jù)庫(kù)實(shí)例加鎖,加鎖后整個(gè)實(shí)例就處于只讀狀態(tài),后續(xù)的DML的寫語(yǔ)句,DDL語(yǔ)句,已經(jīng)更新操作的事務(wù)提交語(yǔ)句都將阻塞。其典型的使用場(chǎng)景就是做全庫(kù)的邏輯備份,對(duì)所有的表進(jìn)行鎖定,從而獲取一致性視圖,保證數(shù)據(jù)的完整性。但是對(duì)數(shù)據(jù)庫(kù)加全局鎖是有弊端的,如在主庫(kù)上備份,那么在備份期間都不能執(zhí)行更新,業(yè)務(wù)會(huì)受影響,第二如果是在從庫(kù)上備份,那么在備份期間從庫(kù)不能執(zhí)行主庫(kù)同步過(guò)來(lái)的二進(jìn)制日志,會(huì)導(dǎo)致主從延遲。
解決辦法是在innodb引擎中,備份時(shí)加上--single-transaction參數(shù)來(lái)完成不加鎖的一致性數(shù)據(jù)備份。
添加全局鎖: flush tables with read lock; 解鎖 unlock tables。
表級(jí)鎖,每次操作會(huì)鎖住整張表.鎖定粒度大,發(fā)送鎖沖突的概率最高,并發(fā)讀最低,應(yīng)用在myisam、innodb、BOB等存儲(chǔ)引擎中。表級(jí)鎖分為: 表鎖、元數(shù)據(jù)鎖(meta data lock, MDL)和意向鎖。
表鎖又分為: 表共享讀鎖 read lock、表獨(dú)占寫鎖write lock
語(yǔ)法: 1、加鎖 lock tables 表名 ... read/write
2、釋放鎖 unlock tables 或者關(guān)閉客戶端連接
注意: 讀鎖不會(huì)阻塞其它客戶端的讀,但是會(huì)阻塞其它客戶端的寫,寫鎖既會(huì)阻塞其它客戶端的讀,又會(huì)阻塞其它客戶端的寫。大家可以拿一張表來(lái)測(cè)試看看。
元數(shù)據(jù)鎖,在加鎖過(guò)程中是系統(tǒng)自動(dòng)控制的,無(wú)需顯示使用,在訪問(wèn)一張表的時(shí)候會(huì)自動(dòng)加上,MDL鎖主要作用是維護(hù)表元數(shù)據(jù)的數(shù)據(jù)一致性,在表上有活動(dòng)事務(wù)的時(shí)候,不可以對(duì)元數(shù)據(jù)進(jìn)行寫入操作。為了避免DML和DDL沖突,保證讀寫的正確性。
在MySQL5.5中引入了MDL,當(dāng)對(duì)一張表進(jìn)行增刪改查的時(shí)候,加MDL讀鎖(共享);當(dāng)對(duì)表結(jié)構(gòu)進(jìn)行變更操作時(shí),加MDL寫鎖(排他).
查看元數(shù)據(jù)鎖:
select object_type,object_schema,object_name,lock_type,lock_duration from performance_schema_metadata_locks;
意向鎖,為了避免DML在執(zhí)行時(shí),加的行鎖與表鎖的沖突,在innodb中引入了意向鎖,使得表鎖不用檢查每行數(shù)據(jù)是否加鎖,使用意向鎖來(lái)減少表鎖的檢查。意向鎖分為,意向共享鎖is由語(yǔ)句select ... lock in share mode添加。意向排他鎖ix,由insert,update,delete,select。。。for update 添加。
select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_lock;
行級(jí)鎖,每次操作鎖住對(duì)應(yīng)的行數(shù)據(jù),鎖定粒度最小,發(fā)生鎖沖突的概率最高,并發(fā)讀最高,應(yīng)用在innodb存儲(chǔ)引擎中。
innodb的數(shù)據(jù)是基于索引組織的,行鎖是通過(guò)對(duì)索引上的索引項(xiàng)加鎖來(lái)實(shí)現(xiàn)的,而不是對(duì)記錄加的鎖,對(duì)于行級(jí)鎖,主要分為以下三類:
1、行鎖或者叫record lock記錄鎖,鎖定單個(gè)行記錄的鎖,防止其他事物對(duì)次行進(jìn)行update和delete操作,在RC,RR隔離級(jí)別下都支持。
2、間隙鎖Gap lock,鎖定索引記錄間隙(不含該記錄),確保索引記錄間隙不變,防止其他事物在這個(gè)間隙進(jìn)行insert操作,產(chǎn)生幻讀,在RR隔離級(jí)別下都支持。
3、臨鍵鎖Next-key-lock,行鎖和間隙鎖組合,同時(shí)鎖住數(shù)據(jù),并鎖住數(shù)據(jù)前面的間隙Gap,在RR隔離級(jí)別下支持。
innodb實(shí)現(xiàn)了以下兩種類型的行鎖
1、共享鎖 S: 允許一個(gè)事務(wù)去讀一行,阻止其他事務(wù)獲得相同數(shù)據(jù)集的排他鎖。
2、排他鎖 X: 允許獲取排他鎖的事務(wù)更新數(shù)據(jù),阻止其他事務(wù)獲得相同數(shù)據(jù)集的共享鎖和排他鎖。
insert 語(yǔ)句 排他鎖 自動(dòng)添加的
update語(yǔ)句 排他鎖 自動(dòng)添加
delete 語(yǔ)句 排他鎖 自動(dòng)添加
select 正常查詢語(yǔ)句 不加鎖 。。。
select 。。。lock in share mode 共享鎖 需要手動(dòng)在select 之后加lock in share mode
select 。。。for update 排他鎖 需要手動(dòng)在select之后添加for update
默認(rèn)情況下,innodb在repeatable read事務(wù)隔離級(jí)別運(yùn)行,innodb使用next-key鎖進(jìn)行搜索和索引掃描,以防止幻讀。
間隙鎖唯一目的是防止其它事務(wù)插入間隙,間隙鎖可以共存,一個(gè)事務(wù)采用的間隙鎖不會(huì)阻止另一個(gè)事務(wù)在同一間隙上采用的間隙鎖。
本周內(nèi)容:455字
閱讀時(shí)間:3~5分鐘
前言
MySQL 是一款免費(fèi)開源、小型、關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。隨著該數(shù)據(jù)庫(kù)功能不斷完善、性能的不斷提高,可靠性不斷增強(qiáng)。它雖然是免費(fèi),但與其他商業(yè)數(shù)據(jù)庫(kù)一樣,具有數(shù)據(jù)庫(kù)系統(tǒng)的通用性,提供了數(shù)據(jù)庫(kù)的存取、增加、修改、刪除或更加復(fù)雜的操作。同時(shí)MySQL所使用的 SQL 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。
下面開始介紹搭建的過(guò)程
一、準(zhǔn)備環(huán)境
系統(tǒng):
Centos 6.5_64
二、安裝過(guò)程
1.yum -y install mysql-server
2.設(shè)置服務(wù)開機(jī)啟動(dòng)
3.啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)
4.設(shè)置MySQLroot用戶
5.設(shè)置root用戶密碼為
6.登錄數(shù)據(jù)庫(kù)
7.創(chuàng)建數(shù)據(jù)庫(kù)test1
8.建立數(shù)據(jù)庫(kù)表格,xm姓名,xb性別,csny出生年齡
9增加數(shù)據(jù)庫(kù)條目記錄,姓名:李一,性別:男年齡:1988.9.01
書籍推薦
《MySQL 5.7從入門到精通》
本書主要包括MySQL的安裝與配置、數(shù)據(jù)庫(kù)的創(chuàng)建、數(shù)據(jù)表的創(chuàng)建、數(shù)據(jù)類型和運(yùn)算符、MySQL函數(shù)、查詢數(shù)據(jù)、數(shù)據(jù)表的操作(插入、更新與刪除數(shù)據(jù))、索引、存儲(chǔ)過(guò)程和函數(shù)、視圖、觸發(fā)器、用戶管理、數(shù)據(jù)備份與恢復(fù)、日志以及性能優(yōu)化等。最后通過(guò)兩個(gè)綜合案例的數(shù)據(jù)庫(kù)設(shè)計(jì),進(jìn)一步講述MySQL在實(shí)際工作中的應(yīng)用。
本書注重實(shí)戰(zhàn)操作,幫助讀者循序漸進(jìn)地掌握MySQL中的各項(xiàng)技術(shù)。本書共有480個(gè)實(shí)例和14個(gè)綜合案例,還有大量的經(jīng)典習(xí)題。下載文件中贈(zèng)送了近20小時(shí)培訓(xùn)班形式的視頻教學(xué)錄像,詳細(xì)講解了書中每一個(gè)知識(shí)點(diǎn)和每一個(gè)數(shù)據(jù)庫(kù)操作的方法和技巧。同時(shí)下載文件中還提供了本書所有例子的源代碼,讀者可以直接查看和調(diào)用。
本書適合MySQL數(shù)據(jù)庫(kù)初學(xué)者、MySQL數(shù)據(jù)庫(kù)開發(fā)人員和MySQL數(shù)據(jù)庫(kù)管理員,同時(shí)也能作為高等院校相關(guān)專業(yè)師生的教學(xué)用書。
讓閱讀成為習(xí)慣
有數(shù)據(jù)庫(kù)功底的(mssql/oracle/sybase)一天就能吃透,沒有數(shù)據(jù)庫(kù)基礎(chǔ)的話,恩,是要點(diǎn)時(shí)間的,如果你安裝了mysql 建議你用mysql搭建個(gè)服務(wù)器環(huán)境,學(xué)習(xí)時(shí)間一周差不多(前提:大學(xué)時(shí)考試都是考前一周才學(xué)習(xí)而且不掛科)