??今天對mysql的一些基礎(chǔ)概念進行講誒橫掃,如概念、特點、優(yōu)勢、發(fā)展歷史等等。對之前內(nèi)容感興趣的同學(xué)可以參考??:
- 鏈接: mysql學(xué)習(xí)之?dāng)?shù)據(jù)系統(tǒng)概述
??讓我們開始今日份的學(xué)習(xí)吧!
1. mysql的基本概念
數(shù)據(jù)庫(database)就是一個存儲數(shù)據(jù)庫的倉庫,為了方便數(shù)據(jù)的存儲和管理,它將數(shù)據(jù)按照特定的規(guī)律存儲在磁盤上。通過數(shù)據(jù)庫管理系統(tǒng),可以有效的組織和管理存儲在數(shù)據(jù)庫中的數(shù)據(jù)。mysql數(shù)據(jù)庫就是這樣一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),它可以稱得上是目前運行速度最快的SQL數(shù)據(jù)庫管理系統(tǒng)。
1.1 mysql的優(yōu)勢
mysql是一款自由軟件,任何人可以從官網(wǎng)網(wǎng)址中下載。mysql是一個真正的多用戶,多線程sql數(shù)據(jù)庫服務(wù)器。它是以客戶/服務(wù)器結(jié)構(gòu)的實現(xiàn),由一個服務(wù)程序mysqld和很多不同的客戶程序和庫組成。它能夠快捷、有效和安全地處理大量的數(shù)據(jù)。相對于oracle等數(shù)據(jù)庫來說,mysql在使用時非常簡單。mysql的主要目標是快捷、便捷和易用,以下是mysql的一些特點:
- 開源和免費:MySQL是開源的,并且可以免費使用。這使得MySQL成為開發(fā)人員和小型企業(yè)的首選數(shù)據(jù)庫。
- 可擴展性:MySQL可以輕松地擴展以支持更大的數(shù)據(jù)集和更高的并發(fā)用戶。MySQL提供了許多擴展和插件,以幫助用戶輕松地進行擴展。
- 跨平臺支持:MySQL可以在多個平臺上運行,包括Windows、Linux、Unix、macOS等。
- 安全性:MySQL具有強大的安全功能,可以保護數(shù)據(jù)免受未經(jīng)授權(quán)的訪問。MySQL提供了許多安全功能,例如加密、用戶訪問控制和審計等。
- 高可用性:MySQL支持主從復(fù)制和自動故障轉(zhuǎn)移,這使得MySQL可以實現(xiàn)高可用性和災(zāi)備恢復(fù)。
- 性能:MySQL具有卓越的性能,可以輕松地處理大型數(shù)據(jù)集和高并發(fā)用戶。MySQL支持索引、查詢優(yōu)化和緩存等功能,以提高性能。
- 支持大型企業(yè)應(yīng)用程序:MySQL可以處理大型企業(yè)級應(yīng)用程序和高流量網(wǎng)站。許多大型企業(yè)和網(wǎng)站使用MySQL作為他們的數(shù)據(jù)庫管理系統(tǒng)。
1.2 mysql的發(fā)展歷史
MySQL是由瑞典公司MySQL AB開發(fā)的一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。其名字的由來是由MySQL AB的創(chuàng)始人之一Michael Widenius取的,最初取名為“My”(他的女兒的名字),加上“SQL”(結(jié)構(gòu)化查詢語言)的縮寫組成。因此,MySQL這個名字代表著“我的SQL”,強調(diào)MySQL作為一個開源軟件,可以根據(jù)用戶的需求進行個性化的定制和修改。MySQL的名字既簡單又易于記憶,因此在數(shù)據(jù)庫市場上得到了廣泛的認可和應(yīng)用。
mysql從無到有,到技術(shù)的不斷更迭,版本的不斷升級,已經(jīng)非常成熟了,mysql的官網(wǎng)地址和下載地址如下,選擇自己需求的版本按安裝即可。
鏈接: mysql官網(wǎng)地址
鏈接: mysql下載地址
2. mysql的特性
mysql是一個真正的多用戶、多線程sql數(shù)據(jù)庫服務(wù)器。SQL是世界上最流行的和標準化的數(shù)據(jù)庫語言。其特性如下:
- 使用C和C++語言編寫,并使用了多種編譯器進行測試,保證了源代碼的可移植性。
- 支持多種操作系統(tǒng),如Linux、Mac os、Windows等。
- 為多種編程語言提供了API。這些編程語言包括C、C++、Java、Perl、 PHP、Ruby、Eiffel、Tcl等。
- 支持多線程,充分利用CPU資源。
- 優(yōu)化SQL查詢算法,有效提高查詢速度。
- 既能夠作為一個單獨的應(yīng)用程序在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他軟件中提供多語言支持,常見的編碼如中文的GB2312、BIG5,日文的Shift_JIS等都可以作為數(shù)據(jù)數(shù)據(jù)的表名和數(shù)據(jù)列名。
- 提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑。
- 提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。
- 可以處理擁有千萬條記錄的大型數(shù)據(jù)庫。
目前的最新版本是mysql8.0版本。
2.1 mysql的安裝
mysql的安裝可以去官網(wǎng)下載,根據(jù)自己的系統(tǒng)和芯片選擇合適的版本進行下載即可(我的是mac,m1芯片,選擇第一個):
安裝完成后可以在系統(tǒng)設(shè)置里看到mysql的服務(wù)。
安裝完成后可以安裝一個mysql的可視化軟件,我這里選擇的是navicate,下載完成后安裝即可。
連接完數(shù)據(jù)后可以在這里面進行一些練習(xí):
2.2 數(shù)據(jù)庫常用對象
在mysql數(shù)據(jù)庫中,表、視圖、存儲過程和索引等具體存儲數(shù)據(jù)或?qū)?shù)據(jù)進行操作的實體都被稱為數(shù)據(jù)庫對象,下面介紹幾種常用的數(shù)據(jù)庫對象:
- 表:表是數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)庫對象,由行和列組成,用于組織和存儲數(shù)據(jù)。
- 字段:表中的每列稱為一個字段,字段具有自己的屬性,如字段類型、字段大小等。其中,字段類型是字段中最重要的屬性,它決定了字段能夠存儲那種數(shù)據(jù)。SQL規(guī)范支持5中基本類型的字段類型:字符型、文本型、數(shù)值型、邏輯型和日期時間類型。
- 索引:索引是一個單獨的、物理的數(shù)據(jù)庫結(jié)構(gòu)。它是依賴于表建立的,在數(shù)據(jù)庫中索引使數(shù)據(jù)庫程序無需對整個表進行掃描,就可以在其中找到所需要的數(shù)據(jù)。
- 視圖:視圖是從一張表或者多張表中導(dǎo)出的表,是用戶查看數(shù)據(jù)表中數(shù)據(jù)的一張方式。表中包括幾個被定義的數(shù)據(jù)列與數(shù)據(jù)行,其結(jié)構(gòu)和數(shù)據(jù)建立在對表的查詢基礎(chǔ)之上。
- 存儲過程:存儲過程是一組為了完成特定功能的SQL語句集合(包含查詢、插入、刪除和更新等操作),經(jīng)編譯后以名稱的形式存儲在SQL sever服務(wù)器端端數(shù)據(jù)庫中,由用戶通過指定存儲過程的名字來執(zhí)行,當(dāng)這個存儲過程被調(diào)用執(zhí)行時,這些操作也會同時執(zhí)行。
3. mysql的sql語句
這一章在之前寫的博客中有介紹,這里我們就不做詳細介紹:
- 鏈接: MySQL之表的創(chuàng)建、刪除和更新
- 鏈接: MySQL之查詢基礎(chǔ)
- 鏈接: MySQL之聚合與排序
- 鏈接: MySQL之?dāng)?shù)據(jù)的插入、刪除、更新和事務(wù)
- 鏈接: MySQL之視圖、子查詢和關(guān)聯(lián)子查詢
- 鏈接: MySQL之函數(shù)和謂詞
4. mysql的存儲引擎
MySQL的存儲引擎(storage engine)是指用于存儲和檢索數(shù)據(jù)的底層軟件組件。MySQL支持多種不同的存儲引擎,每種引擎都有自己的特點和優(yōu)勢,應(yīng)該根據(jù)具體需求選擇合適的引擎。
以下是MySQL常見的存儲引擎:文章來源:http://www.zghlxwxcb.cn/news/detail-819148.html
- InnoDB
InnoDB是MySQL默認的存儲引擎,支持ACID事務(wù)處理和行級鎖定,適用于高并發(fā)的OLTP應(yīng)用。它還支持外鍵約束和崩潰恢復(fù)等高級特性。 - MyISAM
MyISAM是MySQL的傳統(tǒng)存儲引擎,不支持事務(wù)和行級鎖定,但對于讀多寫少的應(yīng)用非常適合。它的特點是速度快,占用資源少,適用于數(shù)據(jù)倉庫和大型數(shù)據(jù)表。 - Memory
Memory存儲引擎將數(shù)據(jù)存儲在內(nèi)存中,速度非???,但缺點是容易丟失數(shù)據(jù),適用于臨時數(shù)據(jù)表和緩存。它還支持HASH和B-tree索引。 - CSV
CSV存儲引擎將數(shù)據(jù)以CSV格式存儲在文件中,適用于存儲大量文本數(shù)據(jù),但不支持索引和事務(wù)處理。 - Archive
Archive存儲引擎是一種高度壓縮的存儲引擎,適用于存儲歷史數(shù)據(jù)或歸檔數(shù)據(jù),但不支持索引和事務(wù)處理。 - Blackhole
Blackhole存儲引擎不實際存儲數(shù)據(jù),所有寫入操作都被丟棄,適用于數(shù)據(jù)復(fù)制和數(shù)據(jù)同步等應(yīng)用場景。 - Federated
Federated存儲引擎可以將遠程服務(wù)器上的表映射為本地表,支持跨服務(wù)器的查詢和數(shù)據(jù)操作。
總的來說,選擇適合自己應(yīng)用場景的存儲引擎可以提高數(shù)據(jù)庫的性能和可靠性。文章來源地址http://www.zghlxwxcb.cn/news/detail-819148.html
5. mysql與其他數(shù)據(jù)庫對比
特點 | MySQL | Oracle | SQL Server |
---|---|---|---|
開發(fā)公司 | Oracle Corporation | Oracle Corporation | MicrosoftCorporation |
開源 | 是 | 否 | 否 |
許可證 | GPL | 商業(yè)許可證 | 商業(yè)許可證 |
操作系統(tǒng)支持 | Windows, Linux, macOS, FreeBSD, Solaris, OS/2 | Windows, Linux, macOS, Solaris, AIX, HP-UX, z/OS, *BSD | Windows |
存儲引擎 | InnoDB, MyISAM, Memory, CSV, Archive, Blackhole, Federated等 | Oracle Database, Oracle RAC等 | SQL Server Engine, Analysis Services, Reporting Services等 |
數(shù)據(jù)類型 | 支持常見的數(shù)據(jù)類型,包括數(shù)值、字符、日期、二進制等 | 支持常見的數(shù)據(jù)類型,包括數(shù)值、字符、日期、二進制等 | 支持常見的數(shù)據(jù)類型,包括數(shù)值、字符、日期、二進制等 |
事務(wù)處理 | 支持 | 支持 | 支持 |
鎖機制 | 行級鎖定、表級鎖定、讀寫鎖等 | 行級鎖定、表級鎖定、對象級鎖定等 | 行級鎖定、表級鎖定、頁級鎖定等 |
備份和恢復(fù) | 支持 | 支持 | 支持 |
安全性 | 支持用戶和角色管理、權(quán)限控制等 | 支持用戶和角色管理、權(quán)限控制等 | 支持用戶和角色管理、權(quán)限控制等 |
擴展性 | 可以通過分區(qū)、復(fù)制等方式進行擴展 | 可以通過分區(qū)、集群等方式進行擴展 | 可以通過分區(qū)、復(fù)制等方式進行擴展 |
索引 | B+樹 | B+樹 | B+樹 |
緩存 | 可定制 | 可定制 | 可定制 |
6. 參考資料
- 《mysql從入門到精通》
- chatgpt
- 《SQL必知必會》
到了這里,關(guān)于mysql數(shù)據(jù)庫介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!