Mysql系列一:初識Mysql

Mysql系列一:初識Mysql

說到Mysql,肯定第一點想到的數據庫,而之所以會想到數據庫,是因爲程序中用到了各種各樣的數據,而這些數據又不能放到內存中,還要永久序列化保存到本地,要用的時候能夠方便的進行讀取和修改。下面就對數據庫進行一個簡單的介紹。

1.什麼是數據庫:

數據庫(DataBase),顧名思義是存儲數據的倉庫,而數據的格式和要求,依舊存儲數據庫的種類的不同而不同,針對Mysql而言,其是關係型數據庫,所以在對數據庫進行設計的時候,要遵循關係型數據庫的設計要求,即範式約束。而現在的數據庫設計技術也層出不窮,像NOSQL數據庫中的基於文檔的monggoDB,用於緩存的redis,面向大數據的Hbase等各種數據庫,現在就主要說一下Mysql數據庫,其他的若讀者有意,可以自行下去學習。

2.  關係型數據庫(Relatonal Database)於非關係型數據的比較:

數據庫
類型

特性

優點

缺點

關係型數據庫
SQLite

Oracle

mysql

1、以關係模型(二維表格模型)來組織數據的數據庫;
2
、最大特點就是事務的一致性;。

1、容易理解:二維表結構較網狀、層次等其他模型來說更容易理解;
2
、使用方便:支持SQL語言用於複雜查詢;
3
、易於維護:豐富的完整性(實體完整性、參照完整性和用戶定義的完整性)大大減低了數據冗餘和數據不一致的概率;

1、爲了維護一致性所付出的巨大代價就是其讀寫性能比較差;
2
、固定的表結構;
3
、高併發讀寫需求;
4
、海量數據的高效率讀寫;

非關係型數據庫
MongoDb

redis

HBase

1、使用鍵值對存儲數據;
2
、分佈式;
3
、一般不支持ACID特性;
4
、非關係型數據庫嚴格上不是一種數據庫,應該是一種數據結構化存儲方法的集合。

1、無需經過sql層的解析,讀寫性能很高;
2
、基於鍵值對,數據沒有耦合性,容易擴展;
3
、存儲數據的格式:nosql的存儲格式是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,而關係型數據庫則只支持基礎類型。

1、不提供sql支持,學習和使用成本較高;
2
、無事務處理,附加功能和報表等支持也不好;


備註:數據庫事務必須具備ACID特性,ACID是Atomic原子性,Consistency一致性,Isolation隔離性,Durability持久性。

3. 數據庫術語

    •  數據庫:一些相互關聯的數據的倉庫,關聯表的集合。
    •  數據表:數據庫中爲完成特定業務功能所建立的相關數據的集合,以二維表格的形式存儲。
    • 列:一列數據包含了具有相同單一屬性的數據,如果省份。
    • 行:一行數據是一組相關記錄,例如學生信息(學號,姓名、年齡、性別…)。
    • 冗餘:數據庫中因設計不當出現的過多的數據重複,但有時爲了業務需求,可以適當的添加數據冗餘,增加查詢速度。
    • 主鍵:數據庫中行記錄的唯一標識,一張數據表中只能包含一個主鍵,主鍵自帶索引,所以利用主鍵查詢數據的速度是很快的。
    • 外鍵:當業務需要一張表中的數據和另一張表中的數據時,外鍵便出現了,外鍵用於關聯兩張表中的記錄,即這兩張表中的數據存在某種對應關係(例如:一對一,一對多,多對一,多對多)。
    • 複合鍵:複合鍵(組合鍵)將多個列作爲一個索引值,一般用於符合索引。
    • 索引:建立索引的目的是爲了是數據的查詢更加方便,索引多建立在where字句後的查詢條件或者常用列中,只有適當的建立索引纔會大大的加速數據的查詢速度。
    • 參照完整性:參照完整性要求關係中不允許引用不存在的實體(即記錄),是關係型數據庫設計中必須滿足的條件之一。

4.Mysql簡介

Mysql數據庫是一個關係型數據庫管理系統,由瑞典的Mysql AB公司開發,目前屬於Oracle公司。Mysql是一種關聯數據庫管理系統,相互關聯的數據將會被保存在不同的表中,而不是將所有數據放在一個大倉庫中,這樣不僅增加了速度,也增加了靈活性。

    • Mysql是開源的,這就爲開發者提供了便利,對於自己學習來說,使用免費的Mysql就行了(據說部分版本要收費)。
    • Mysql支持大型的數據庫,可以處理擁有上千萬條記錄的大型數據庫。
    • Mysql使用標準的SQL語言來操作數據。
    • Mysql使用於多個系統,如Linux,CentOs,Windows等等,並且支持多種語言:C、C++、Python、Java…
    • Mysql是可定製的,採用了GPL協議,你可以通過修改源碼的方式來開發自己的Mysql系統。
    • Mysql支持大型數據庫,支持5000萬條記錄的數據倉庫,32位系統表文件最大可支持4GB,64位系統支持最大的表文件則爲8TB。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章