MySQL之基礎一

一 簡介python

1. 數據(Data)mysql

描述事物的符號記錄稱爲數據,描述事物的符號既能夠是數字,也能夠是文字、圖片,圖像、聲音、語言等,數據由多種表現形式,它們均可以通過數字化後存入計算機

 

2. 數據庫(DataBase,簡稱DB)程序員

數據庫即存放數據的倉庫,只不過這個倉庫是在計算機存儲設備上,並且數據是按必定的格式存放的

過去人們將數據存放在文件櫃裏,如今數據量龐大,已經再也不適用

數據庫是長期存放在計算機內、有組織、可共享的數據

數據庫中的數據按必定的數據模型組織、描述和儲存,具備較小的冗餘度、較高的數據獨立性和易擴展性,並可爲各類 用戶共享

 

3.數據庫管理系統(DataBase Management System 簡稱DBMS)redis

在瞭解了Data與DB的概念後,如何科學地組織和存儲數據,如何高效獲取和維護數據成了關鍵。

這就用到了一個系統軟件
---數據庫管理系統 如MySQL、Oracle、SQLite、Access、MS SQL Server mysql 主要用於大型門戶,例如搜狗、新浪等,它主要的優點就是開放源代碼,由於開放源代碼這個數據庫是免費的,他如今是甲骨文公司的產品。 oracle 主要用於銀行、鐵路、飛機場等。該數據庫功能強大,軟件費用高。也是甲骨文公司的產品。 sql server 是微軟公司的產品,主要應用於大中型企業,如聯想、方正等。

 

4. 數據庫服務器、數據管理系統、數據庫、表與記錄的關係sql

記錄:1 tom 市場部 經理

表:employee,department,post(即文件)

數據庫:db1 (即文件夾)

數據庫管理系統:如MySQL(是一個軟件)

數據庫服務器:一臺計算機(對內存要求比較高)
#總結: 數據庫服務器:運行數據庫管理軟件 數據庫管理軟件:管理-數據庫 數據庫:即文件夾,用來組織文件/表 表:即文件,用來存放多行內容/多條記錄

 

二 數據模型mongodb

1.層次模型數據庫

按照層次結構的形式組織數據庫數據的模型
IMS
缺點:大量冗餘數據

 


2.網狀模型緩存

按照網狀結構的形式組織數據庫數據的模型
DBTG
缺點:後期維護困難

 

3.關係模型服務器

按照關係結構(行和列,表)的形式組織數據庫數據的模式
RDBMS(等於DBMS)  關係數據庫管理系統

 

# MySQL 是最流行的關係型數據庫管理系統,而在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System) 應用軟件之一數據結構

 

三 關係

#E-R模型
    實體:數據對象
    聯繫:一個或多個實體之間的關聯關係
    屬性:實體的某一特性

 

四 MySQL

mysql就是一個基於socket編寫的C/S架構的軟件

#客戶端軟件
  mysql自帶:如mysql命令,mysqldump命令等
  python模塊:如pymysql


數據庫管理軟件分類

#分兩大類:
  關係型:如sqllite,db2,oracle,access,sql server,MySQL   #注:sql語句通用
  非關係型:mongodb,redis,memcache

#能夠簡單的理解爲:
    關係型數據庫須要有表結構
    非關係型數據庫是key-value存儲的,沒有表結構

 

五 SQL類型

    有了mysql這個數據庫軟件,就能夠將程序員從對數據的管理中解脫出來,專一於對程序邏輯的編寫。mysql服務端軟件即mysqld幫咱們管理好文件夾以及文件,前提是做爲使用者的咱們,須要下載mysql的客戶端,或者其餘模塊來鏈接到mysqld,而後使用mysql軟件規定的語法格式去提交本身命令,實現對文件夾或文件的管理。該語法即sql(Structured Query Language 即結構化查詢語言)

SQL語言主要用於存取數據、查詢數據、更新數據和管理關係數據庫系統,SQL語言由IBM開發。
SQL語言分爲3種類型:

一、DDL語句    數據庫定義語言: 數據庫、表、視圖、索引、存儲過程,例如CREATE DROP ALTER            #Data Definition Languages
二、DML語句 數據庫操縱語言: 插入數據INSERT、刪除數據DELETE、更新數據UPDATE、查詢數據SELECT #Data Manipulation Language 三、DCL語句 數據庫控制語言: 例如控制用戶的訪問權限GRANT、REVOKE #Data Control Language

 


六 數據結構

文件的邏輯關係:

上層:文件
中層:文件系統
下層:磁盤中的數據塊

 

 
數據庫的邏輯關係:

上層:數據表
中層:存儲引擎
下層:文件


 #爲存儲數據,管理數據,查詢數據所創建的數據庫實現方法

 

七 MySQL存儲引擎

    MySQL最重要,最不同凡響的特性是它的 存儲引擎架構,這種架構的設計將查詢(Query Processing)及其餘系統任務(Server Task)和數據的存儲/提取相分離。這種處理和存儲分離的設計能夠在使用時根據性能,特性,以及其餘需求來選擇數據存儲的方式。

存儲引擎:
  a.MyISAM
      默認的數據庫引擎
      較高的寫入,查詢速度
      不支持事務,行級鎖以及外鍵約束等功能

  b.InnoDB
      支持事務,行級鎖,外鍵約束等功能

  c.Memory


#選擇合適的引擎

  MySQL最初基於ISAM構建(後被MyISAM取代),其後陸續添加了更多的存儲應請和事務支持。MySQL有些怪異的行爲是因爲歷史遺留致使的。例如,在執行ALTER TABLE時,MySQL
提交事務的方式是因爲存儲引擎的架構直接致使的,而且數據字典也保存在 .frm文件中(這並非說InnoDB會致使ALTER變成非事務型的。對於InnoDB來講,全部的操做都是事務)。 除非須要用到某些InnoDB不具有的特性,而且沒有其餘辦法能夠替代,不然都應該優先選擇InnoDB引擎。 若要用到 全文索引,建議優先考慮InnoDB加上Sphinx的組合,而不是使用支持全文索引的MyISAM

 


八 數據的存儲和查詢

a.存儲管理器
    專用的存儲組件,經過DDL來建立數據表的結構,再經過DML來保存SQL語句的處理結果
        權限及完整性管理器
        事務管理器
        文件管理器
        緩衝區管理器

b.查詢管理器
    負責接收用戶的查詢請求,理解用戶請求,並將結果交給存儲管理器來真正實現數據管理
        DDL,DML解釋器
        查詢執行引擎

 

九 數據庫的後臺工做模式

單進程多線程的工做模式

  a. 守護線程

  b. 應用線程
      每個用戶請求,分配一個應用線程

 

十 數據庫優化

a.緩存
    用戶請求不須要每次都消耗系統資源
b.線程重用 用戶退出後,不撤銷線程,分配給其餘用戶使用 c.內存 在實際中,並很少用 MySQL缺點: 不支持SMP 對稱多處理器架構 如主機 16CPU: 16SQL語句 1CPU 1SQL 1SQL語句 1CPU 15CPU閒置
相關文章
相關標籤/搜索