




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1單元MySQL概述MySQL數(shù)據(jù)庫(kù)應(yīng)用實(shí)戰(zhàn)教程(慕課版)(第2版)【目錄】1.1數(shù)據(jù)庫(kù)發(fā)展歷史1.1.1數(shù)據(jù)庫(kù)發(fā)展階段1.1.2MySQL數(shù)據(jù)庫(kù)發(fā)展歷史1.2關(guān)系數(shù)據(jù)庫(kù)1.2.1數(shù)據(jù)庫(kù)概述1.2.2關(guān)系模型1.2.3常用的關(guān)系數(shù)據(jù)庫(kù)1.2.4SQL1.3MySQL的工作原理1.4
MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎1.4.1InnoDB引擎1.4.2MyISAM引擎1.4.3MEMORY引擎1.4.4CSV引擎1.4.5ARCHIVE引擎1.4.6BLACKHOLE引擎1.5
綜合實(shí)訓(xùn):安裝MySQL數(shù)據(jù)庫(kù)1.5.1在Windows環(huán)境下安裝MySQL1.5.2在Linux環(huán)境下安裝MySQL1.6MySQL客戶(hù)端管理工具1.7小結(jié)目錄【學(xué)習(xí)導(dǎo)讀】在當(dāng)今“數(shù)字化時(shí)代”,一家初創(chuàng)公司正努力構(gòu)建一個(gè)創(chuàng)新的電子商務(wù)平臺(tái),他們希望通過(guò)這個(gè)平臺(tái)提供高效的在線(xiàn)交易和用戶(hù)管理系統(tǒng),因此需要一個(gè)可靠而強(qiáng)大的數(shù)據(jù)庫(kù)系統(tǒng)。MySQL作為一種廣泛使用的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),可以為該公司提供穩(wěn)定的數(shù)據(jù)存儲(chǔ)、高性能的查詢(xún)處理和強(qiáng)大的擴(kuò)展性。本單元介紹MySQL的發(fā)展歷史、關(guān)系數(shù)據(jù)庫(kù)、MySQL的工作原理、安裝MySQL數(shù)據(jù)庫(kù)等。學(xué)習(xí)導(dǎo)讀【學(xué)習(xí)目標(biāo)】知識(shí)目標(biāo)1.了解數(shù)據(jù)庫(kù)各個(gè)發(fā)展階段。2.了解MySQL數(shù)據(jù)庫(kù)發(fā)展歷史。3.了解與數(shù)據(jù)庫(kù)相關(guān)的各個(gè)概念。4.了解SQL。5.了解MySQL的工作原理。6.了解MySQL數(shù)據(jù)庫(kù)的存儲(chǔ)引擎。7.了解MySQL客戶(hù)端管理工具。能力目標(biāo)1.能夠獨(dú)立安裝MySQL數(shù)據(jù)庫(kù)。2.能夠使用命令提示符窗口連接數(shù)據(jù)庫(kù)。素質(zhì)目標(biāo)1.培養(yǎng)獨(dú)立自主的學(xué)習(xí)態(tài)度。2.培養(yǎng)規(guī)范、嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度。學(xué)習(xí)目標(biāo)思維導(dǎo)圖1.1數(shù)據(jù)庫(kù)發(fā)展歷史1.1.1數(shù)據(jù)庫(kù)發(fā)展階段1.層次數(shù)據(jù)庫(kù)層次數(shù)據(jù)庫(kù)(HierarchicalDatabase)是早期的數(shù)據(jù)庫(kù)類(lèi)型,在20世紀(jì)60年代末和20世紀(jì)70年代初興起。在層次數(shù)據(jù)庫(kù)中,數(shù)據(jù)以樹(shù)形結(jié)構(gòu)組織,每個(gè)節(jié)點(diǎn)可以有多個(gè)子節(jié)點(diǎn),但只能有一個(gè)父節(jié)點(diǎn)。這種層次結(jié)構(gòu)適合表示具有明確定義的父子關(guān)系的數(shù)據(jù),如組織結(jié)構(gòu)或文件系統(tǒng)。主要代表:IBM公司的信息管理系統(tǒng)(InformationManagementSystem,IMS)。2.關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)(RelationalDatabase)是主要的數(shù)據(jù)庫(kù)類(lèi)型,興起于20世紀(jì)70年代。關(guān)系數(shù)據(jù)庫(kù)采用表格的形式組織數(shù)據(jù),其中數(shù)據(jù)以行和列的形式存儲(chǔ)。關(guān)系數(shù)據(jù)庫(kù)使用結(jié)構(gòu)查詢(xún)語(yǔ)言(StructureQueryLanguage,SQL)進(jìn)行數(shù)據(jù)的查詢(xún)和操作。它基于關(guān)系模型的理念,通過(guò)表之間的關(guān)系(主鍵和外鍵)來(lái)建立數(shù)據(jù)的連接。關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)和操作相對(duì)簡(jiǎn)單,且可保證數(shù)據(jù)的一致性、可靠性和完整性。主要代表:Oracle、MySQL、MicrosoftSQLServer和PostgreSQL等。1.1數(shù)據(jù)庫(kù)發(fā)展歷史3.面向?qū)ο髷?shù)據(jù)庫(kù)面向?qū)ο髷?shù)據(jù)庫(kù)(Object-OrientedDatabase)是在關(guān)系數(shù)據(jù)庫(kù)之后出現(xiàn)的一種數(shù)據(jù)庫(kù)類(lèi)型。面向?qū)ο髷?shù)據(jù)庫(kù)將數(shù)據(jù)視為對(duì)象,具有屬性和方法,并通過(guò)繼承、封裝和多態(tài)等面向?qū)ο蟮母拍顏?lái)組織數(shù)據(jù)。面向?qū)ο髷?shù)據(jù)庫(kù)提供了更靈活和直觀的數(shù)據(jù)建模方式,能夠更好地處理復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和關(guān)系。主要代表:Gemstone、db4o。4.NoSQL數(shù)據(jù)庫(kù)NoSQL數(shù)據(jù)庫(kù)代表“非關(guān)系”數(shù)據(jù)庫(kù),強(qiáng)調(diào)不依賴(lài)傳統(tǒng)的關(guān)系模型。NoSQL數(shù)據(jù)庫(kù)適用于大規(guī)模和高并發(fā)的場(chǎng)景,它們具有良好的可擴(kuò)展性、高性能和靈活性。NoSQL數(shù)據(jù)庫(kù)主要用于Web應(yīng)用程序、大數(shù)據(jù)分析和實(shí)時(shí)數(shù)據(jù)處理等領(lǐng)域。主要代表:鍵值存儲(chǔ)型數(shù)據(jù)庫(kù)(如Redis、AmazonDynamoDB)、文檔型數(shù)據(jù)庫(kù)(如MongoDB)、列式存儲(chǔ)型數(shù)據(jù)庫(kù)(如ApacheCassandra)和圖形數(shù)據(jù)庫(kù)(如Neo4j)等。1.1數(shù)據(jù)庫(kù)發(fā)展歷史5.新SQL數(shù)據(jù)庫(kù)新SQL數(shù)據(jù)庫(kù)(NewSQLDatabase)是在NoSQL和傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)之間的一種折中解決方案。它們旨在提供具有可伸縮性和高性能的分布式數(shù)據(jù)庫(kù)系統(tǒng),同時(shí)保留關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性和可靠性。主要代表:CockroachDB、VoltDB和TiDB。6.?dāng)?shù)據(jù)庫(kù)即服務(wù)DaaS通過(guò)云平臺(tái)提供數(shù)據(jù)庫(kù)管理和運(yùn)維,使用戶(hù)無(wú)須關(guān)心底層基礎(chǔ)設(shè)施的細(xì)節(jié),只需關(guān)注數(shù)據(jù)的存儲(chǔ)和使用。DaaS提供了彈性擴(kuò)展、高可用性和自動(dòng)備份等功能,使用戶(hù)能夠快速部署和管理數(shù)據(jù)庫(kù),降低了數(shù)據(jù)庫(kù)管理的復(fù)雜性和成本。主要代表:AmazonRDS、MicrosoftAzureSQLDatabase和GoogleCloudSQL。7.分布式數(shù)據(jù)庫(kù)分布式數(shù)據(jù)庫(kù)是將數(shù)據(jù)存儲(chǔ)在多個(gè)物理節(jié)點(diǎn)上的數(shù)據(jù)庫(kù)系統(tǒng),通過(guò)數(shù)據(jù)分片和數(shù)據(jù)復(fù)制等技術(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的分布和冗余,以提高性能、可用性和容錯(cuò)性。分布式數(shù)據(jù)庫(kù)能夠處理大規(guī)模的數(shù)據(jù)集和高并發(fā)訪問(wèn),適用于分布式系統(tǒng)和云計(jì)算環(huán)境。主要代表:ApacheHBase、ApacheCassandra和GoogleSpanner等。1.1數(shù)據(jù)庫(kù)發(fā)展歷史1.1.2MySQL數(shù)據(jù)庫(kù)發(fā)展歷史0102031985年,蒙蒂和幾個(gè)志同道合的朋友在瑞典成立了一家公司,也就是MySQLAB的前身1996年,MySQL1.0正式發(fā)布,提供的功能非常簡(jiǎn)單,只支持表數(shù)據(jù)的INSERT(插入)、UPDATE(更新)、DELETE(刪除)和SELECT(查詢(xún))操作。2000年,MySQL公布了源代碼,并采用了GNU通用公共許可協(xié)議042004年,MySQL4.1發(fā)布,新增了子查詢(xún)功能。052005年10月,MySQL5.0發(fā)布,該版本加入了存儲(chǔ)過(guò)程、觸發(fā)器、視圖等,MySQL逐漸向高性能數(shù)據(jù)庫(kù)方向發(fā)展。1.1數(shù)據(jù)庫(kù)發(fā)展歷史0708092015年,MySQL5.7GA重磅發(fā)布,進(jìn)行了大量改進(jìn)、優(yōu)化,并提供了眾多新特性。2016年9月,MySQL8.0首個(gè)開(kāi)發(fā)版發(fā)布,增加了數(shù)據(jù)字典、賬號(hào)權(quán)限角色表、InnoDB引擎增強(qiáng)、JSON增強(qiáng)等。2018年4月,MySQL8.0首個(gè)正式版MySQL8.0.11GA發(fā)布。102023年4月,MySQL8.0.33GA發(fā)布,這是一個(gè)維護(hù)版本,修復(fù)了大量的Bug,并對(duì)部分內(nèi)容進(jìn)行了改進(jìn)。062010年,MySQL5.5發(fā)布,新特性包括半同步的復(fù)制以及對(duì)SIGNAL/RESIGNAL異常處理功能的支持1.2關(guān)系數(shù)據(jù)庫(kù)1.2.1數(shù)據(jù)庫(kù)概述1.?dāng)?shù)據(jù)庫(kù)類(lèi)型層次數(shù)據(jù)庫(kù)01通過(guò)一種有根節(jié)點(diǎn)的定向有序樹(shù)結(jié)構(gòu)(類(lèi)似于一個(gè)倒掛的樹(shù))建立的數(shù)據(jù)庫(kù),如IMS網(wǎng)絡(luò)數(shù)據(jù)庫(kù)按照網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)建立的數(shù)據(jù)庫(kù),記錄中允許多層次記錄關(guān)系02關(guān)系數(shù)據(jù)庫(kù)03把世界看成由實(shí)體和聯(lián)系組成面向?qū)ο髷?shù)據(jù)庫(kù)采用一種新的程序設(shè)計(jì)方法,將世界中的一切事物都視為對(duì)象,整個(gè)世界都由相互關(guān)聯(lián)的對(duì)象組織而成041.2關(guān)系數(shù)據(jù)庫(kù)2.?dāng)?shù)據(jù)與數(shù)據(jù)庫(kù)數(shù)據(jù)(Data)數(shù)據(jù)(Data)是指描述事物特征、屬性或關(guān)系的事實(shí)和信息的集合。數(shù)據(jù)可以是數(shù)字、文本、圖像、音頻或視頻等形式的表達(dá)。在計(jì)算機(jī)領(lǐng)域,數(shù)據(jù)通常以二進(jìn)制形式存儲(chǔ)和處理。數(shù)據(jù)可以被組織成不同的結(jié)構(gòu),如單個(gè)值、記錄、表格或文件等,以便更有效地管理和使用。數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)是一個(gè)組織和存儲(chǔ)數(shù)據(jù)的集合。它是一個(gè)被設(shè)計(jì)用來(lái)存儲(chǔ)和檢索數(shù)據(jù)的系統(tǒng)。數(shù)據(jù)庫(kù)通過(guò)結(jié)構(gòu)化的方式存儲(chǔ)數(shù)據(jù),以便實(shí)現(xiàn)數(shù)據(jù)的組織、訪問(wèn)和管理。數(shù)據(jù)庫(kù)可以包含多個(gè)表格(表),每個(gè)表包含多行(記錄)和多列(字段)。1.2關(guān)系數(shù)據(jù)庫(kù)3.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)010203數(shù)據(jù)定義(DataDefinition):支持創(chuàng)建表格、定義列、設(shè)置數(shù)據(jù)類(lèi)型、建立關(guān)系等操作,用于表示和存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu)。數(shù)據(jù)操作(DataManipulation):提供了數(shù)據(jù)操作功能,使用戶(hù)可以對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行插入、更新、刪除和查詢(xún)等操作。數(shù)據(jù)查詢(xún)和檢索(DataQueryandRetrieval):能夠快速定位和檢索數(shù)據(jù)庫(kù)中的數(shù)據(jù),支持各種查詢(xún)操作,如簡(jiǎn)單查詢(xún)、聚合函數(shù)、多表連接等。04數(shù)據(jù)完整性和約束(DataIntegrityandConstraints):可以通過(guò)主鍵、唯一約束、外鍵和檢查約束等機(jī)制來(lái)保證數(shù)據(jù)的完整性,防止不符合約束條件的數(shù)據(jù)被插入或更新到數(shù)據(jù)庫(kù)中。050607并發(fā)控制和事務(wù)管理(ConcurrencyControlandTransactionManagement):通過(guò)鎖定機(jī)制、并發(fā)調(diào)度和事務(wù)管理等技術(shù)來(lái)保證數(shù)據(jù)的一致性和隔離性。數(shù)據(jù)備份和恢復(fù)(DataBackupandRecovery):支持定期備份數(shù)據(jù),以及在需要時(shí)進(jìn)行數(shù)據(jù)恢復(fù)和回滾操作。數(shù)據(jù)安全和訪問(wèn)控制(DataSecurityandAccessControl):支持用戶(hù)身份驗(yàn)證、權(quán)限管理、加密和審計(jì)等安全功能。1.2關(guān)系數(shù)據(jù)庫(kù)4.?dāng)?shù)據(jù)庫(kù)系統(tǒng)020103數(shù)據(jù)的集合,以一種結(jié)構(gòu)化的方式存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)庫(kù)的結(jié)構(gòu)和關(guān)系是通過(guò)數(shù)據(jù)庫(kù)模式(Schema)定義的數(shù)據(jù)庫(kù)用于管理數(shù)據(jù)庫(kù)的軟件系統(tǒng)。DBMS負(fù)責(zé)處理數(shù)據(jù)的存儲(chǔ)、檢索、備份和恢復(fù),以及實(shí)現(xiàn)并發(fā)訪問(wèn)、數(shù)據(jù)安全和權(quán)限控制等。常見(jiàn)的DBMS包括Oracle、MySQL、MicrosoftSQLServer和PostgreSQL等。DBMS使用數(shù)據(jù)庫(kù)和DBMS進(jìn)行數(shù)據(jù)管理和處理的軟件程序。它們可以是定制的應(yīng)用程序,也可以是商業(yè)化的數(shù)據(jù)庫(kù)應(yīng)用軟件。數(shù)據(jù)庫(kù)應(yīng)用程序(DatabaseApplication)1.2關(guān)系數(shù)據(jù)庫(kù)0102030405數(shù)據(jù)共享數(shù)據(jù)獨(dú)立性數(shù)據(jù)一致性和完整性數(shù)據(jù)安全性高效性和性能優(yōu)化數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)和優(yōu)勢(shì)1.2關(guān)系數(shù)據(jù)庫(kù)5.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RelationalDatabaseManagementSystem,RDBMS)用于管理關(guān)系數(shù)據(jù)庫(kù)。關(guān)系數(shù)據(jù)庫(kù)是指通過(guò)關(guān)系模型來(lái)組織數(shù)據(jù)的數(shù)據(jù)庫(kù)。結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)數(shù)據(jù)的一致性和完整性數(shù)據(jù)的關(guān)系和連接SQL支持?jǐn)?shù)據(jù)備份和恢復(fù)數(shù)據(jù)安全和訪問(wèn)控制并發(fā)控制和事務(wù)管理ACID支持1.2關(guān)系數(shù)據(jù)庫(kù)1.2.2關(guān)系模型關(guān)系模型是用二維表的形式表示實(shí)體以及實(shí)體之間聯(lián)系的數(shù)據(jù)模型。數(shù)據(jù)都是以表格的形式存在的,每行對(duì)應(yīng)一個(gè)實(shí)體的記錄,每列對(duì)應(yīng)實(shí)體的某種屬性,若干行和列構(gòu)成了整個(gè)表數(shù)據(jù)。所謂實(shí)體就是現(xiàn)實(shí)世界中客觀存在的,可以是有形的、無(wú)形的、具體的或者抽象的事物。圖1.1社交網(wǎng)站和用戶(hù)之間的關(guān)系社交網(wǎng)站和用戶(hù)——代表實(shí)體,用矩形表示;社交網(wǎng)站擁有屬性——企業(yè)性質(zhì)、網(wǎng)站名、上市,用橢圓形表示;用戶(hù)擁有屬性——姓名、手機(jī)號(hào)、生日,也用橢圓形表示;實(shí)體社交網(wǎng)站和實(shí)體用戶(hù)之間的聯(lián)系,用菱形表示。實(shí)體關(guān)系模型中,聯(lián)系(也稱(chēng)關(guān)系)有3種類(lèi)型:一對(duì)一關(guān)系(1∶1),例如一個(gè)用戶(hù)有一個(gè)會(huì)員編號(hào),一個(gè)會(huì)員編號(hào)能確定唯一用戶(hù),它們之間是一一對(duì)應(yīng)的;一對(duì)多關(guān)系(1∶n),例如一個(gè)用戶(hù)可以注冊(cè)多個(gè)賬號(hào),而一個(gè)賬號(hào)只能被一個(gè)用戶(hù)使用;多對(duì)多關(guān)系(n∶n),例如一個(gè)社交網(wǎng)站可以有多個(gè)用戶(hù),而一個(gè)用戶(hù)同樣可以使用多個(gè)社交網(wǎng)站。1.2關(guān)系數(shù)據(jù)庫(kù)1.2.3常用的關(guān)系數(shù)據(jù)庫(kù)Oracle數(shù)據(jù)庫(kù)市場(chǎng)上最成熟、最全面的數(shù)據(jù)庫(kù)解決方案之一支持大規(guī)模企業(yè)級(jí)應(yīng)用,具有高可伸縮性、可靠性和安全性提供廣泛的功能,包括復(fù)雜的數(shù)據(jù)查詢(xún)、事務(wù)處理、并發(fā)控制、數(shù)據(jù)備份和恢復(fù)等。MySQL數(shù)據(jù)庫(kù)被廣泛用于中小型企業(yè)和Web應(yīng)用開(kāi)發(fā)具有簡(jiǎn)單易用、高性能和高可靠性的特點(diǎn)支持標(biāo)準(zhǔn)的SQL,包括數(shù)據(jù)存儲(chǔ)和檢索、事務(wù)處理、數(shù)據(jù)備份和恢復(fù)等SQLServer數(shù)據(jù)庫(kù)專(zhuān)為Windows平臺(tái)設(shè)計(jì)企業(yè)級(jí)數(shù)據(jù)庫(kù)解決方案的一部分,具有強(qiáng)大的功能和廣泛的應(yīng)用領(lǐng)域包括高效的數(shù)據(jù)存儲(chǔ)和檢索、復(fù)雜的查詢(xún)和分析、事務(wù)處理、并發(fā)控制、數(shù)據(jù)備份和恢復(fù)等1.2關(guān)系數(shù)據(jù)庫(kù)1.2.4SQL一種用于數(shù)據(jù)庫(kù)查詢(xún)和程序設(shè)計(jì)的語(yǔ)言,可用于操作數(shù)據(jù)庫(kù)的查詢(xún)、存取更新數(shù)據(jù)以及管理數(shù)據(jù)庫(kù),是通用的數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言,具有極大的靈活性和很多強(qiáng)大的功能。操作簡(jiǎn)單數(shù)據(jù)庫(kù)管理能力跨平臺(tái)和數(shù)據(jù)庫(kù)無(wú)關(guān)性數(shù)據(jù)一致性和完整性事務(wù)處理能力擴(kuò)展性和標(biāo)準(zhǔn)化SQL特點(diǎn)1.3MySQL的工作原理為了理解MySQL的工作原理,我們先看一張經(jīng)典的架構(gòu)圖,如圖1.2所示。圖1.2MySQL的內(nèi)部架構(gòu)編程語(yǔ)言交互接口(Connector):不同語(yǔ)言與SQL的交互接口系統(tǒng)管理和控制工具集合(ManagementService&Utility):提供管理配置服務(wù)、備份還原、安全復(fù)制等功能連接池(ConnectionPool):接收客戶(hù)端的請(qǐng)求,緩存請(qǐng)求,檢查內(nèi)存可利用情況SQL接口(SQLInterface):接收用戶(hù)的SQL語(yǔ)句,并返回結(jié)果解析器(Parser):解析驗(yàn)證SQL語(yǔ)法,將SQL語(yǔ)句分解成相應(yīng)的數(shù)據(jù),以備后面處理查詢(xún)優(yōu)化器(Optimizer):對(duì)SQL語(yǔ)句進(jìn)行優(yōu)化處理,優(yōu)化執(zhí)行路徑,生成執(zhí)行樹(shù),最終數(shù)據(jù)庫(kù)會(huì)選擇最優(yōu)的方案執(zhí)行并返回結(jié)果。查詢(xún)緩存(Cache&Buffer):緩存查詢(xún)結(jié)果。存儲(chǔ)引擎(PluggableStorageEngine):MySQL中具體的與文件“打交道”的子系統(tǒng),它是以插件形式存在的,意味著可以自定義存儲(chǔ)引擎,這是MySQL很特別的地方文件系統(tǒng)(FileSystem):存放數(shù)據(jù)庫(kù)、表、數(shù)據(jù),以及相關(guān)配置的地方1.4MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎1.4.1InnoDB引擎010203數(shù)據(jù)操縱語(yǔ)言(DataManipulationLanguage,DML)操作遵循事務(wù)的4個(gè)特性——原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability),并通過(guò)CRASH-RECOVERY等保障數(shù)據(jù)的安全具有行級(jí)鎖和Oracle風(fēng)格的讀一致性,通過(guò)一種更改緩存機(jī)制對(duì)新增、更新和刪除進(jìn)行了優(yōu)化對(duì)表進(jìn)行基于主鍵的優(yōu)化查詢(xún),每張表都有一個(gè)基于主鍵的聚簇索引,以此減少磁盤(pán)輸入輸出(Input/Output,I/O),進(jìn)而提高搜索效率和性能04支持外鍵約束,檢查外鍵、插入、更新和刪除,以確保數(shù)據(jù)的完整性050607InnoDB引擎提供了專(zhuān)門(mén)的緩存池,在內(nèi)存中緩存了表和索引的數(shù)據(jù),常用的數(shù)據(jù)可以直接從內(nèi)存讀取,比從磁盤(pán)獲取數(shù)據(jù)速度快可以壓縮表和相關(guān)索引、創(chuàng)建和刪除索引以達(dá)到提高性能的目的快速壓縮表空間,并能釋放磁盤(pán)空間,保證系統(tǒng)能夠重用,而不僅是騰出空間給InnoDB引擎復(fù)用08創(chuàng)建表時(shí)可以通過(guò)以下語(yǔ)句顯式指定存儲(chǔ)引擎CREATETABLETABLE_NAME(IINT)ENGINE=INNODB;1.4MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎1.4.2MyISAM引擎MyISAM引擎不支持事務(wù)、外鍵,不過(guò)訪問(wèn)速度非???,表的存儲(chǔ)分為以下3個(gè)文件。FRM文件:存儲(chǔ)表定義MYD(MYData)文件:存儲(chǔ)數(shù)據(jù)MYI(MYIndex)文件:存儲(chǔ)索引1.4MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎010203所有數(shù)值類(lèi)型鍵值都是以高字節(jié)存儲(chǔ)的,以便更好地壓縮索引。每張MyISAM表最多支持(232)2≈1.844E+19行。每張MyISAM表支持的最大索引數(shù)是64,每個(gè)索引最多16列。04當(dāng)表字段是自增(AUTO_INCREMENT)時(shí),索引樹(shù)節(jié)點(diǎn)只會(huì)包含一個(gè)鍵,這樣可以提高索引的空間利用率。050607在INSERT、UPDATE時(shí),MyISAM引擎內(nèi)部處理會(huì)自動(dòng)更新自增字段,這使自增處理更快。當(dāng)進(jìn)行混合操作(刪除、更新、插入同時(shí)進(jìn)行)時(shí),MyISAM引擎通過(guò)自動(dòng)合并和擴(kuò)展刪除塊減少行碎片。MyISAM引擎支持并發(fā)插入數(shù)據(jù):如果一個(gè)表中的數(shù)據(jù)文件中沒(méi)有空閑塊,則可以在插入數(shù)據(jù)的同時(shí)通過(guò)其他線(xiàn)程讀取表數(shù)據(jù)。08可以通過(guò)將數(shù)據(jù)文件和索引文件放在不同物理設(shè)備的不同目錄下來(lái)更快地創(chuàng)建表。CREATETABLETABLE_NAME(IINT)ENGINE=MYISAM;09BLOB和TEXT可以被索引,索引列中允許NULL,不過(guò)需要占0~1個(gè)字節(jié)。10創(chuàng)建表時(shí)可以通過(guò)以下語(yǔ)句顯式指定存儲(chǔ)引擎。1.4MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎1.4.3MEMORY引擎MEMORY引擎又稱(chēng)為HEAP引擎,用來(lái)創(chuàng)建特殊用途的表,且內(nèi)容存儲(chǔ)在內(nèi)存中。將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,能夠?qū)崿F(xiàn)快速訪問(wèn)和低延遲。創(chuàng)建表時(shí)可以通過(guò)以下語(yǔ)句顯式指定存儲(chǔ)引擎。CREATETABLETABLE_NAME(IINT)ENGINE=MEMORY;1.4.4CSV引擎當(dāng)用戶(hù)創(chuàng)建一個(gè)CSV引擎的表時(shí),服務(wù)器會(huì)在數(shù)據(jù)庫(kù)目錄中創(chuàng)建一個(gè)“表名.frm”格式文件,還會(huì)創(chuàng)建一個(gè)“表名.csv”數(shù)據(jù)文件。缺點(diǎn):CSV引擎不支持索引,也不支持分區(qū),并且所有列必須指明為NOTNULL。創(chuàng)建表時(shí)可以通過(guò)以下語(yǔ)句顯式指定存儲(chǔ)引擎。CREATETABLETABLE_NAME(IINT)ENGINE=CSV;1.4MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎1.4.5ARCHIVE引擎ARCHIVE引擎用于數(shù)據(jù)歸檔,它的壓縮比例非常高,適合存儲(chǔ)歷史數(shù)據(jù)(前提是不做查詢(xún)操作),所占的存儲(chǔ)空間不到InnoDB引擎的1/10。創(chuàng)建表時(shí)可以通過(guò)以下語(yǔ)句顯式指定存儲(chǔ)引擎。CREATETABLETABLE_NAME(IINT)ENGINE=ARCHIVE;1.4.6BLACKHOLE引擎BLACKHOLE引擎是很特別的一種引擎,它的表不存儲(chǔ)任何數(shù)據(jù),就像“黑洞”一樣。它主要用于充當(dāng)偽服務(wù)器、日志服務(wù)器、增量備份服務(wù)器等。創(chuàng)建表時(shí)可以通過(guò)以下語(yǔ)句顯式指定存儲(chǔ)引擎。CREATETABLETABLE_NAME(IINT)ENGINE=BLACKHOLE;1.4MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎1.4.7存儲(chǔ)引擎特點(diǎn)對(duì)比表1.1MySQL8.0中各存儲(chǔ)引擎的特點(diǎn)特點(diǎn)InnoDBMyISAMMEMORYARCHIVE存儲(chǔ)限制64TB沒(méi)有有沒(méi)有事務(wù)安全支持
鎖機(jī)制行鎖表鎖表鎖行鎖B樹(shù)索引支持支持支持
哈希索引支持
支持
全文索引支持支持
集群索引支持
數(shù)據(jù)緩存支持
支持
數(shù)據(jù)可壓縮
支持
支持空間使用高低
非常低內(nèi)存使用高低中等低批量插入速度低高高非常高支持外鍵支持
復(fù)制支持支持支持支持支持查詢(xún)緩存支持支持支持支持備份恢復(fù)支持支持支持支持1.5綜合實(shí)訓(xùn):安裝MySQL數(shù)據(jù)庫(kù)選擇DOWNLOADS→MySQLCommunity(GPL)Downloads→MySQLInstallerforWindows,MySQL下載頁(yè)面如圖1.3所示。圖1.3MySQL下載頁(yè)面1.5綜合實(shí)訓(xùn):安裝MySQL數(shù)據(jù)庫(kù)1.5.1在Windows環(huán)境下安裝MySQL圖1.4服務(wù)器模式圖1.5檢查安裝要求1.5綜合實(shí)訓(xùn):安裝MySQL數(shù)據(jù)庫(kù)圖1.6安裝動(dòng)態(tài)鏈接庫(kù)圖1.7“TypeandNetworking”界面圖1.8設(shè)置密碼1.5綜合實(shí)訓(xùn):安裝MySQL數(shù)據(jù)庫(kù)圖1.9選擇“環(huán)境變量”圖1.10添加MySQL路徑到系統(tǒng)變量中1.5綜合實(shí)訓(xùn):安裝MySQL數(shù)據(jù)庫(kù)圖1.11連接數(shù)據(jù)庫(kù)更改root用戶(hù)的登錄密碼,以備日后使用。更改密碼的代碼如下。ALTERUSER'root'@'localhost'IDENTIFIEDBY'123456';flushprivileges;MySQL8.0的Data目錄和my.ini文件有時(shí)并不放在MySQL的安裝目錄下,而是在
C:\ProgramData\MySQL\MySQLServer8.0目錄下。一般情況下,C盤(pán)下的ProgramData目錄是隱藏的。1.5綜合實(shí)訓(xùn):安裝MySQL數(shù)據(jù)庫(kù)1.5.2在Linux環(huán)境下安裝MySQLstep01從官網(wǎng)下載mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz安裝文件(也可以根據(jù)自己計(jì)算機(jī)的硬件情況下載合適的安裝文件),如圖1.12所示。圖1.12下載安裝文件step02進(jìn)入安裝文件所在目錄(cd..),解壓縮安裝文件,命令如下。tar–zxvfmysql-8.0.33-linux-glibc2.28-x86_64.tar.gzstep03復(fù)制解壓縮后的MySQL目錄文件到Linux系統(tǒng)的本地軟件目錄(/usr/local)中,命令如下。cpmysql-8.0.33-linux-glibc2.28-x86_64.tar.gz/usr/local/mysql-r1.5綜合實(shí)訓(xùn):安裝MySQL數(shù)據(jù)庫(kù)step04添加系統(tǒng)MySQL組(groupadd組名),命令如下。[root@localhost~]$cd/usr/local[root@localhostlocal]$lsbingameshbase-1.2.0jdk1.8.0_73lib64mysqlshareetcHadoop-2.6.4includeliblibexecsbinsrc[root@localhostlocal]$sudogroupaddmysql[sudo]passwordforroot:[root@localhostlocal]$step05為MySQL組添加MySQL用戶(hù)(useradd-r-gmysql用戶(hù)名),命令如下。[root@localhost~]$cd/usr/local[root@localhostlocal]$lsbingameshbase-1.2.0jdk1.8.0_73lib64mysqlshareetcHadoop-2.6.4includeliblibexecsbinsrc[root@localhostlocal]$sudogroupaddmysql[sudo]passwordforroot:[root@localhostlocal]$sudouseradd–r–gmysqlmysql[root@localhostlocal]$1.5綜合實(shí)訓(xùn):安裝MySQL數(shù)據(jù)庫(kù)step06進(jìn)入MySQL安裝目錄(cd/user/local/mysql),修改當(dāng)前目錄擁有者為MySQL用戶(hù)(chown-Rmysql:mysql./),命令如下。[root@localhostmysql]$sudochown–Rmysql:mysql./step07通過(guò)腳本初始化數(shù)據(jù)庫(kù)(./scripts/mysql_install_db--user=mysql),命令如下。[root@localhostmysql]$sudo./scripts/mysql_install_db--user=mysqlstep08修改當(dāng)前目錄下data目錄的擁有者為mysql(chown-Rmysql:mysqldata),用于存放數(shù)據(jù)庫(kù)數(shù)據(jù),命令如下。[root@localhostmysql]$sudochown–Rmysql:mysqldatastep09啟動(dòng)服務(wù)(servicemysqlstart),MySQL就安裝成功了,命令如下。[root@localhostmysql]$sudoservicemysqlstart1.6MySQL客戶(hù)端管理工具1.MySQLWorkbenchMySQL官方提供的一個(gè)圖形化數(shù)據(jù)庫(kù)管理工具,它可以讓開(kāi)發(fā)者和數(shù)據(jù)庫(kù)管理員更輕松地管理MySQL數(shù)據(jù)庫(kù)。MySQLWorkbench提供了豐富的功能,包括數(shù)據(jù)庫(kù)設(shè)計(jì)、SQL開(kāi)發(fā)、數(shù)據(jù)庫(kù)管理、數(shù)據(jù)備份和恢復(fù)等。圖1.13MySQLWorkbench的操作界面優(yōu)點(diǎn)允許查看服務(wù)器狀態(tài)、運(yùn)行狀況,以及服務(wù)器日志。MySQLWorkbench是官方出品,因此將與MySQL的所有最新功能兼容。跨平臺(tái)支持,適用于Windows、macOS、Linux等系統(tǒng)。MySQLWorkbench提供了廣泛的功能來(lái)管理數(shù)據(jù)庫(kù)。缺點(diǎn)對(duì)初學(xué)者來(lái)說(shuō),MySQLWorkbench可能有一定的學(xué)習(xí)難度。MySQLWorkbench是一個(gè)相對(duì)龐大的應(yīng)用程序,它需要一定的系統(tǒng)資源來(lái)運(yùn)行。兼容性限制:MySQLWorkbench是為MySQL數(shù)據(jù)庫(kù)而設(shè)計(jì)的,它與其他數(shù)據(jù)庫(kù)管理系統(tǒng)(如Oracle、SQLServer等)的兼容性可能較差。1.6MySQL客戶(hù)端管理工具2.phpMyAdmin一個(gè)免費(fèi)的開(kāi)源Web應(yīng)用程序,用于管理MySQL數(shù)據(jù)庫(kù)。它提供了一個(gè)基于Web的界面,可以讓
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北苑小學(xué)面試實(shí)戰(zhàn):教育行業(yè)面試常見(jiàn)題目及答案解析
- 模電技術(shù)試題及答案
- 銷(xiāo)售助理面試實(shí)戰(zhàn)模擬題集錦:常見(jiàn)面試問(wèn)題及答案解析
- 解讀語(yǔ)文學(xué)科教學(xué)常見(jiàn)面試題型及答題技巧
- AI科技前沿面試題庫(kù):職業(yè)不限的高級(jí)面試題
- 學(xué)校安全知識(shí)培訓(xùn)課件計(jì)劃
- 面試實(shí)戰(zhàn):經(jīng)典面試題目及答案全解析
- 乳制品企業(yè)奶源質(zhì)量控制與品牌社會(huì)責(zé)任報(bào)告
- 2025網(wǎng)絡(luò)文學(xué)IP開(kāi)發(fā)全產(chǎn)業(yè)鏈創(chuàng)新模式研究報(bào)告
- 不良資產(chǎn)處置行業(yè)2025年市場(chǎng)格局與創(chuàng)新模式實(shí)戰(zhàn)解析報(bào)告
- 人形機(jī)器人標(biāo)準(zhǔn)化白皮書(shū)(2024版)
- 2025年行政執(zhí)法人員執(zhí)法證考試必考多選題庫(kù)及答案(共250題)
- 2025年初中語(yǔ)文名著閱讀《林海雪原》知識(shí)點(diǎn)總結(jié)及練習(xí)
- 血液透析導(dǎo)管的維護(hù)課件
- 2019保障性住房設(shè)計(jì)標(biāo)準(zhǔn)共有產(chǎn)權(quán)保障住房和征收安置房分冊(cè)
- 外墻保溫施工方案范本
- 2025年高壓電工新版試題(附答案)
- 2024版安全技術(shù)咨詢(xún)服務(wù)具體協(xié)議模板版B版
- 港口基礎(chǔ)設(shè)施監(jiān)測(cè)技術(shù)
- 回顧長(zhǎng)征路課件
- 為什么你的學(xué)生不思考?主題班會(huì)分享
評(píng)論
0/150
提交評(píng)論