MySQL 數(shù)據(jù)庫介紹
人類在進化的過程中,創(chuàng)造了數(shù)字、文字、符號等來進行數(shù)據(jù)的記錄,但是隨著認知能力和創(chuàng)造能力的提升,數(shù)據(jù)量越來越大,對于數(shù)據(jù)的記錄和準確查找,成為了一個重大難題。
計算機誕生后,數(shù)據(jù)開始在計算機中存儲并計算,并設(shè)計出了數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫系統(tǒng)解決的問題:持久化存儲,優(yōu)化讀寫,保證數(shù)據(jù)的有效性。
當前使用的數(shù)據(jù)庫,主要分為兩類:
- 文檔型,如Sqlite,就是一個文件,通過對文件的復(fù)制完成數(shù)據(jù)庫的復(fù)制
- 服務(wù)型,如Mysql、Postgre,數(shù)據(jù)存儲在一個物理文件中,但是需要使用終端以Tcp/Ip協(xié)議連接,進行數(shù)據(jù)庫的讀寫操作。
E-R模型
當前物理的數(shù)據(jù)庫都是按照E-R模型進行設(shè)計的
E表示entry,實體
R表示relationship,關(guān)系
一個實體轉(zhuǎn)換為數(shù)據(jù)庫中的一個表
-
關(guān)系描述兩個實體之間的對應(yīng)規(guī)則(關(guān)系),包括
1、一對一
- 角色表中的一條數(shù)據(jù) 對應(yīng) 員工表中 的一條員工的數(shù)據(jù)
2、一對多
- 一個班級表的一條數(shù)據(jù)可以對應(yīng)學(xué)生表中多條數(shù)據(jù)
3、反之就是 多對一
4、多對多(擴展)
- 一個老師可以教授多個班級,一個班級可以有多個老師。
此時,就需要三個表。
1、老師表
2、班級表
3、用來表示他們關(guān)系的表
這個第三張表就是多對多關(guān)系需要的表 關(guān)系點表示被轉(zhuǎn)換為數(shù)據(jù)庫表中的一個列 ,在關(guān)系型數(shù)據(jù)庫中一行就是一個對象。
RDBMS
- RDBMS 指的是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。
- RDBMS 是 SQL 的基礎(chǔ),同樣也是所有現(xiàn)代數(shù)據(jù)庫系統(tǒng)的基礎(chǔ),比如 微軟的 SQL Server和 Microsoft Access, IBM DB2, 甲骨文的Oracle以及開源的 MySQL和PostgreSQL(讀作:post - gress - Q - L, 簡略念為"postgres") 。
- RDBMS 中的數(shù)據(jù)存儲在被稱為表(tables)的數(shù)據(jù)庫對象中。
- 表是相關(guān)的數(shù)據(jù)項的集合,它由列和行組成。
MySQL 5.7主要特性
- 更好的性能:對于多核CPU、固態(tài)硬盤、鎖有著更好的優(yōu)化,每秒100W QPS已不再是MySQL的追求,下個版本能否上200W QPS才是吾等用戶更關(guān)心的
- 更好的InnoDB存儲引擎
- 更為健壯的復(fù)制功能:復(fù)制帶來了數(shù)據(jù)完全不丟失的方案,傳統(tǒng)金融客戶也可以選擇使用MySQL數(shù)據(jù)庫。此外,GTID在線平滑升級也變得可能
- 更好的優(yōu)化器:優(yōu)化器代碼重構(gòu)的意義將在這個版本及以后的版本中帶來巨大的改進,Oracle官方正在解決MySQL之前最大的難題
- 原生JSON類型的支持
- 更好的地理信息服務(wù)支持:InnoDB原生支持地理位置類型,支持GeoJSON,GeoHash特性
- 新增sys庫:以后這會是DBA訪問最頻繁的庫
名詞解釋
QPS:Queries Per Second意思是 每秒查詢率,是一臺服務(wù)器每秒能夠響應(yīng)的查詢次數(shù),是對一個特定的查詢服務(wù)器在規(guī)定時間內(nèi)所處理流量多少的衡量標準。