校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 新手入門Mysql--概念

新手入門Mysql--概念

熱門標簽:外東北地圖標注 智能外呼系統(tǒng)復位 400電話可以辦理嗎 大眾點評星級酒店地圖標注 話務外呼系統(tǒng)怎么樣 云南電商智能外呼系統(tǒng)價格 高清地圖標注道路 臨清電話機器人 拉卡拉外呼系統(tǒng)

1. 是什么?

MySQL 是最流行的關系型數據庫管理系統(tǒng),在 WEB 應用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關系數據庫管理系統(tǒng))應用軟件之一。

1.1 RDBMS

RDBMS 即關系數據庫管理系統(tǒng)(Relational Database Management System)的特點:

1.數據以表格的形式出現

2.每行為各種記錄名稱

3.每列為記錄名稱所對應的數據域

4.許多的行和列組成一張表單

5.若干的表單組成database

1.2 MySQL數據庫

MySQL 是一個關系型數據庫管理系統(tǒng),由瑞典 MySQL AB 公司開發(fā),目前屬于 Oracle 公司。MySQL 是一種關聯數據庫管理系統(tǒng),關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。

  • MySQL 是開源的,目前隸屬于 Oracle 旗下產品。
  • MySQL 支持大型的數據庫??梢蕴幚頁碛猩锨f條記錄的大型數據庫。
  • MySQL 使用標準的 SQL 數據語言形式。
  • MySQL 可以運行于多個系統(tǒng)上,并且支持多種語言。這些編程語言包括 C、C++、Python、Java、 Perl、PHP、Eiffel、Ruby 和 Tcl 等。
  • MySQL 對PHP有很好的支持,PHP 是目前最流行的 Web 開發(fā)語言。
  • MySQL 支持大型數據庫,支持 5000 萬條記錄的數據倉庫,32 位系統(tǒng)表文件最大可支持 4GB,64 位系統(tǒng)支持最大的表文件為8TB。
  • MySQL 是可以定制的,采用了 GPL 協(xié)議,你可以修改源碼來開發(fā)自己的 MySQL 系統(tǒng)。

2. 工作機制

2.1 整體架構圖(C/S架構)

  • Client :

提供連接MySQL服務器功能的常用工具集

  • Server :

MySQL實例,真正提供數據存儲和數據處理功能的MySQL服務器進程

  • mysqld:

MySQL服務器守護程序,在后臺運行。它管理著客戶端請求。mysqld是一個多線程的進程,允許多個會話連接,端口監(jiān)聽連接,管理MySQL實例

  • MySQL memory allocation:

MySQL的要求的內存空間是動態(tài)的,比如 innodb_buffer_pool_size (from 5.7.5), key_buffer_size。每個會話都有獨一無二的執(zhí)行計劃,我們只能共享同一會話域內的數據集。

  • SESSION

為每個客戶端連接分配一個會話,動態(tài)分配和回收。用于查詢處理,每個會話同時具備一個緩沖區(qū)。每個會話是作為一個線程執(zhí)行的

  • Parser

檢測SQL語句語法,為每條SQL語句生成SQL_ID,用戶認證也發(fā)生在這個階段

  • Optimizer

創(chuàng)造一個有效率的執(zhí)行計劃(根據具體的存儲引擎)。它將會重寫查詢語句。比如:InnoDB有共享緩沖區(qū),所以,優(yōu)化器會首先從預先緩存的數據中提取。使用 table statistics optimizer將會為SQL查詢生成一個執(zhí)行計劃。用戶權限檢查也發(fā)生在這個階段。

  • Metadata cache

緩存對象元信息和統(tǒng)計信息

  • Query cache

共享在內存中的完全一樣的查詢語句。如果完全相同的查詢在緩存命中,MySQL服務器會直接從緩存中去檢索結果。緩存是會話間共享的,所以為一個客戶生成的結果集也能為另一個客戶所用。查詢緩存基于SQL_ID。將SELECT語句寫入視圖就是查詢緩存最好的例子。

  • key cache

緩存表索引。MySQL keys是索引。如果索引數據量小,它將緩存索引結構和葉子節(jié)點(存儲索引數據)。如果索引很大,它只會緩存索引結構,通常供MyISAM存儲引擎使用

2.2 網絡協(xié)議

2.2.1 通信協(xié)議

到MySQL5.7為止,總共有五種,分別是TCP/IP,TLS/SSL,Unix Sockets,Shared Memory,Named pipes,下面我們就來看看這五種的區(qū)別:

方式 默認開啟 支持系統(tǒng) 只支持本機 如何開啟 參數配置
TCP/IP 所有系統(tǒng) –skip-networking=yes/no –port–bind-address
TLS/SSL 所有系統(tǒng)(基于TCP/IP)之上 –ssl=yes/no –ssl-* options
Unix Sockets 類Unix系統(tǒng) –socket= 來關閉 –socket=socket path
Shared Memory Windows系統(tǒng) –shared-memory=on/off. –shared-memory-base-name=
Named pipes Windows系統(tǒng) –enable-named-pipe=on/off –socket=

2.2.2 報文格式

協(xié)議頭:

每個協(xié)議頭共4個字節(jié)

- 包數據長度:

前三個字節(jié)表示數據部分的長度(不包括協(xié)議頭),三字節(jié)能表示的最大長度是16M-1(2^24 - 1),如果要發(fā)送的數據部分大于這個長度,要進行拆包,每16M-1個長度為一包。接收端在接受數據的時候,如果檢測到包的長度是16M-1,說明后續(xù)還有數據部分,直到接收到16M-1長度的數據包結束。這意味著最后一包的數據長度可能為0.

序號:

1個字節(jié),從0開始遞增。當發(fā)送一個新的sql、數據庫重連,該值清0(函數sql/Net_serv.cc : net_clear).

數據類型:

除了固定長度的整型或者字符串之外,還有其他幾種類型的數據。(固定長度字段數據的存?。篿nclude/Mybyte_order.h : 存值 intstore 取值:intkorr 多字節(jié)的處理按照小端優(yōu)先的方式)

     1. 可變長度的整數   
        對該類數據的存取在函數:sql-common/Pack.c: 存整數: net_store_length     讀整數:net_field_length
        如果數值251,直接用一個字節(jié)存儲這個值。
       如果251=數值2^16, 采用3個字節(jié)存儲,第一個字節(jié)是252, 另外2個字節(jié)存儲整數內容
       如果2^16=數值2^24,采用4字節(jié)存儲,第一個字節(jié)是252,另外3個字節(jié)存儲整數內容
       如果2^24=數值2^64,采用9字節(jié)存儲,第一個字節(jié)255,另外8字節(jié)存儲整數內容
       如果第一個字節(jié)為251,表示該整數字段為null
       如果第一個字節(jié)為255,表示該字節(jié)是ERR包的第一個字節(jié)
   2. 可編碼長度的字符串
           字符串的長度采用可變長度的整數進行編碼。

2.3 SQL語法

可以把 SQL 分為兩個部分:數據操作語言 (DML) 和 數據定義語言 (DDL)。 SQL (結構化查詢語言)是用于執(zhí)行查詢的語法。但是 SQL 語言也包含用于更新、插入和刪除記錄的語法。

查詢和更新指令構成了 SQL 的 DML 部分:

SELECT - 從數據庫表中獲取數據UPDATE - 更新數據庫表中的數據DELETE - 從數據庫表中刪除數據INSERT INTO - 向數據庫表中插入數據SQL 的數據定義語言 (DDL) 部分使我們有能力創(chuàng)建或刪除表格。我們也可以定義索引(鍵),規(guī)定表之間的鏈接,以及施加表間的約束。

SQL 中最重要的 DDL 語句:

CREATE DATABASE - 創(chuàng)建新數據庫ALTER DATABASE - 修改數據庫CREATE TABLE - 創(chuàng)建新表ALTER TABLE - 變更(改變)數據庫表DROP TABLE - 刪除表CREATE INDEX - 創(chuàng)建索引(搜索鍵)DROP INDEX - 刪除索引

3. 小結

這篇文章從宏觀和使用角度去了解Mysql是什么,后續(xù)深入。也請大家多多關注腳本之家的更多內容

您可能感興趣的文章:
  • MySql新手入門的基本操作匯總
  • MySQL新手入門指南--快速參考
  • 新手入門Mysql--sql執(zhí)行過程

標簽:揚州 阿里 溫州 三明 定西 福州 無錫 山西

巨人網絡通訊聲明:本文標題《新手入門Mysql--概念》,本文關鍵詞  新手入門,Mysql--,概念,新手入門,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《新手入門Mysql--概念》相關的同類信息!
  • 本頁收集關于新手入門Mysql--概念的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 桑日县| 敦煌市| 阆中市| 灵宝市| 雷州市| 内江市| 深泽县| 襄垣县| 阳朔县| 漠河县| 稻城县| 桓仁| 达日县| 廉江市| 西吉县| 庆云县| 夹江县| 诏安县| 大余县| 澜沧| 平邑县| 隆昌县| 涞源县| 乡宁县| 长治县| 西吉县| 江华| 咸丰县| 扶沟县| 丹江口市| 梅州市| 公安县| 宁武县| 日照市| 天长市| 天峨县| 东城区| 肥城市| 临沭县| 阿克| 叙永县|