https://baike.baidu.com/item/mySQL/471251?fr=aladdinmysql
MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關係型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件。linux
MySQL是一種關係數據庫管理系統,關係數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。算法
MySQL所使用的 SQL 語言是用於訪問數據庫的最經常使用標準化語言。MySQL 軟件採用了雙受權政策,分爲社區版和商業版,因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,通常中小型網站的開發都選擇 MySQL 做爲網站數據庫。sql
因爲其社區版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發環境。數據庫
mysql內核、sql優化工程師、mysql服務器的優化、查詢語句優化、主重複制、軟硬件升級、容災備份、sql編程 編程
mysql5.5下載地址:https://dev.mysql.com/downloads/mysql/ 檢查當前系統是否安裝過mysqlwindows
能夠用 rpm -qa|grep mysql看當前的系統進程,若是有mysql服務的就會顯示的。緩存
安裝mysql服務端(注意提示) 安裝mysql客戶端 查看Mysql安裝時建立的mysql用戶和mysql組安全
cat /etc/passwd | grep mysql
cat /etc/group | grep mysql
mysql服務的啓+停:service mysql start服務器
mysql服務啓動後開始鏈接 首次鏈接成功 注意這裏,,由於mysql默認沒有密碼,因此這裏咱們沒有輸入密碼就直接連上了 按照安裝Service中的提示修改登陸密碼:/usr/bin/mysqladmin -u root password root 自啓動mysql服務
chkconfig --list | grep mysql chkconfig mysql on ntsysv 查看自啓動的服務
修改配置文件位置
5.5 版本 /usr/share/mysql/my-huge.cnf cp my-huge.cnf /etc/my.cnf 5.6之後 /usr/share/mysql/my-default.cnf
修改字符集和數據存儲路徑
1.查看字符集 show variables like 'character%'; 建議先對文件進行備份,不過由於文件原本就是從/usr/share/mysql中複製過來的,也能夠不用備份,而後打開 cp my.cnf my.cnf.bak sudo vi my.cnf 在[mysqld]上面加入下面兩句話 [client] default-character-set=utf8 在[mysqld]最下面加入下面幾句話 character_set_server=utf8 character_set_client=utf8 collation-server=utf8_general_ci 若是一張表在修改字符集以前就建立,那麼修改字符集以後對該表不起做用,只對後來建立的表起做用
Mysql的安裝位置 在linux下查看安裝目錄 ps -ef | grep mysql
/var/lib/mysql mysql數據庫文件的存放位置
/var/lib/mysqlatguigu.clouf.pif /usr/share/mysql 配置文件目錄 mysql.serve命令以及配置文件 /usr/bin 相關命令目錄
mysqladmin mysqldump 等命令 /etc/init.d/mysql 啓停相關腳本
Mysql邏輯架構介紹
2.服務層:第二層架構主要完成大多數的核心服務功能。如SQL接口,並完成緩存的查詢。SQL的分析和優化以及部份內置函數的執行。全部跨存儲引擎的功能也在這層實現。如過程、函數等、在該層,服務器會解析查詢並建立相應的內部解析樹,並對其完成相應的優化如肯定查詢表的順序,是否利用索引等。最後生成相應的執行操做。若是是select語句。服務器會查詢內部的緩存。若是緩存空間足夠大,這樣在解決大量讀操做的環境中可以很好的提升系統的性能。
3.引擎層:存儲引擎層,存儲引擎真正的負責mysq中數據的存儲和提取。服務器經過API與存儲引擎進行通訊。不一樣的存儲引擎具備的功能不一樣。這樣咱們能夠根據本身的實際須要進行選取。經常使用的有Innodb、MyIsam等
4.存儲層:數據存儲層,主要將數據存儲在運行於裸設備的文件系統上,並完成與存儲引擎的交互。
1.Connectors 指的是不一樣語言中與SQL的交互
2. Management Serveices & Utilities: 系統管理和控制工具
3 .Connection Pool: 鏈接池 管理緩衝用戶鏈接,線程處理等須要緩存的需求。 負責監聽對 MySQL Server 的各類請求,接收鏈接請求,轉發全部鏈接請求到線程管理模塊。每個鏈接上 MySQL Server 的客戶端請求都會被分配 (或建立)一個鏈接線程爲其單獨服務。而鏈接線程的主要工做就是負責 MySQL Server 與客戶端的通訊, 接受客戶端的命令請求,傳遞 Server 端的結果信息等。線程管理模塊則負責管理維護這些鏈接線程。包括線程的建立,線程的 cache 等。
4 SQL Interface: SQL接口。 接受用戶的SQL命令,而且返回用戶須要查詢的結果。好比select from就是調用SQL Interface
5 Parser: 解析器。 SQL命令傳遞到解析器的時候會被解析器驗證和解析。解析器是由Lex和YACC實現的,是一個很長的腳本。 在 MySQL中咱們習慣將全部 Client 端發送給Server 端的命令都稱爲 query ,在 MySQL Server 裏面,鏈接線程接收到客戶端的一個 Query 後, 會直接將該 query 傳遞給專門負責將各類 Query 進行分類而後轉發給各個
對應的處理模塊。
主要功能:
a . 將SQL語句進行語義和語法的分析,分解成數據結構,而後按照不一樣的操做類型進行分類,而後作出針對性的轉發到後續步驟,之後SQL語句的傳遞和處理就是基於這個結構的。
b. 若是在分解構成中遇到錯誤,那麼就說明這個sql語句是不合理的
6 Optimizer: 查詢優化器。 SQL語句在查詢以前會使用查詢優化器對查詢進行優化。就是優化客戶端請求的 query(sql語句) ,根據客戶端請求的 query 語句,和數據庫中的一些統計信息,在一系列算法的基礎上進行分析,得出一個最優的策略,告訴後面的程序如何取得這個 query 語句的結果 他使用的是「選取-投影-聯接」策略進行查詢。 用一個
例子就能夠理解: select uid,name from user where gender = 1; 這個select 查詢先根據where 語句進行選取,而不是先將表所有查詢出來之後再進行gender過濾 這個select查詢先根據uid和name進行屬性投影,而不是將屬性所有取出之後再進行過濾 將這兩個查詢條件聯接起來生成最終查詢結果
7 Cache和Buffer: 查詢緩存。 他的主要功能是將客戶端提交 給MySQL 的 Select 類 query 請求的返回結果集 cache 到內存中,與該 query 的一個 hash 值 作一個對應。該 Query所取數據的基表發生任何數據的變化以後, MySQL 會自動使該 query 的Cache 失效。在讀寫比例很是高的應用系統中, Query Cache 對性能的提升是很是顯著的。固然它對內存
的消耗也是很是大的。 若是查詢緩存有命中的查詢結果,查詢語句就能夠直接去查詢緩存中取數據。這個緩存機制是由一系列小緩存組成的。好比表緩存,記錄緩存,key緩存,權限緩存等
8 、存儲引擎接口 存儲引擎接口模塊能夠說是 MySQL 數據庫中最有特點的一點了。目前各類數據庫產品中,基本上只有 MySQL 能夠實現其底層數據存儲引擎的插件式管理。這個模塊實際上只是 一個抽象類,但正是由於它成功地將各類數據處理高度抽象化,才成就了今天 MySQL 可插拔存儲引擎的特點。 從圖2還能夠看出,MySQL區別於其餘數據庫的最重
要的特色就是其插件式的表存儲引擎。MySQL插件式的存儲引擎架構提供了一系列標準的管理和服務支持,這些標準與存儲引擎自己無關,多是每一個數據庫系統自己都必需的,如SQL分析器和優化器等,而存儲引擎是底層物理結構的實現,每一個存儲引擎開發者均可以按照本身的意願來進行開發。
注意:存儲引擎是基於表的,而不是數據庫。
查詢說明 Mysql存儲引擎
#查看命令 show engines; 查看引擎 show variables like '%storage_engine%';#查看默認與當前的存儲引擎
MyISAM和InnoDB
對比項 | MyISAM | InnoDB |
主外鍵 | 不支持 | 支持 |
事務 | 不支持 | 支持 |
行表鎖 | 表鎖,即便操做一條記錄也會鎖住整個表,不適合高併發的 |
行鎖,操做時候只鎖住某一行,不對其餘行有影響 適合高併發的操做操做 |
緩存 | 只緩存索引,不緩存真實數據 | 不只緩存索引還要緩存真實數據,對內存要求.比較高,並且內存大小對性能有決定性的影響 |
表空間 | 小 | 大 |
關注點 | 性能 | 事務 |
默認安裝 | 安裝 | 安裝 |