1. 程式人生 > >MySQL運維&開發規範

MySQL運維&開發規範

MySQL運維&開發規範

約定
  • MySQL, 通用稱謂,泛指MySQL這個服務軟體等相關代號
  • mysql, 沒有上下文語義時,等同上面的含義
  • mysqld, MySQL服務軟體的服務端程式、程序檔案
  • mysql,有上下文時,通常指MySQL服務軟體中的客戶端工具
  • 同上,也包括 mysqladmin/mysqldump/mysqlbinlog等其他工具
  • 不正確寫法
    • Mysql
    • MySql
    • MYSQL
    • mYSQL …
MySQL發展史
  • MySQL是全球最流行的開源關係型資料庫, 開源資料庫界佔有率第二
  • 伴隨著網際網路的發展而成長
  • 網際網路業務標配,好基友LA(N)MP組合
  • WEB2. 0時代後更是突飛猛進
歷史
  • 1999-2003年,3.23
  • 2002-2007年,4.0
  • 2003-2009年,4.1
  • 2004 - 2012年,5.0
  • 2006-2014年,5.1
  • 2010-2015年,5.5
  • 2011 年,5.6
  • 2013年,5.7
  • 2016年,8.0
主流分支
  • ORACLE MySQL
    • 官方正統
  • Percona Server
    • 基於InrnoDB增加提升效能及易管理性補丁後,形成XtraDB引擎
    • 工具:XtraBackup、pt-toolkit系列
    • 和官方保持一致,基本相容
  • MariaDB
    • MySQL創始人Monty建立,目標在於替換現有的MySQL,也包含了Percona 的XtraDB、TokuDB在內的多種實用引擎
    • 非主流分支,和官方版木區別越來越大,有很多不相容
Percona特色

取代企業版特有功能
- PAM Authentication
- Thread pool/執行緒池
- Audit/審計
其他
- 整合 TokuDB
- Extra Diagnostic Features
- Performance & Scalability Enhancements
- Extra Features for DBA/Operations Staff

MariaDB支援的引擎
  1. ColumnStore, a column oriented storage engine optimized for Data warehousing.
  2. MyRocks, a storage engine with great compression, in 10.2
  3. Aria, My ISAM replacement with better caching.
  4. FederatedX (drop-in replacement for Federated)
  5. OQGRAPH (In MariaDB 5.2 and later. Disabled in MariaDB 5.5 only.) — new in 5.2
  6. SphinxSE — new in 5.2
  7. TokuDB in MariaDB 5.5 and later.
  8. CONNECT in MariaDB 10.0 and later.
  9. SEQUENCE in MariaDB 10.0 and later.
  10. Spider in MariaDB 10.0 and later.
  11. Cassandra in MariaDB 10.0
MariaDB效能提升
  1. A lot of optimizer enhancements,子查詢&JOIN優化
  2. windows系統下的 InnoDB AIO優化
  3. checksum table效率更高
  4. 字符集轉換效率更高
  5. 更早實現了並行複製、多源複製、執行緒池、JSON、 虛擬列
  6. 比MySQL 5.7更早實現了客戶端連線效率提升
執行緒池作用

應對瞬間的高併發的短連線的場景,在MySQL 5.7 之前,處理高併發短連線請求,MySQL 效率較低。即瞬間大量的連線請求進來,會造成執行緒大量的上下文切換,導致CPU較高,執行緒池的功能可有效緩解這樣的問題,先將所有的請求放在一個佇列中,再從執行緒池的佇列中拿出一個執行緒去處理,避免大量的上下文切換

MariaDB新特性
  1. Microseconds in MariaDB 一 new in 5.3
  2. Number of supported decimals in DECIMAL has increased from 30 to 38.— new in 10.2
  3. Microsecond Precision in Processlist
  4. Table Elimination
  5. Virtual Columns — new in 5.2
  6. CHECK CONSTRAINT — new in 10.2
  7. DEFAULT expression, including DEFAULT for BLOB and TEXT. — new in 10.2
  8. Extended User Statistics -new in 5.2
  9. KILL all queries for a user -new in 5.3
  10. KILL QUERY ID - terminates the query by query_id, leaving the connection intact — new in 10.0.5,
  11. Pluggable Authentication — new in 5.2
  12. Storage-engine-specific CREATE TABLE — new in 5.2
  13. Enhancements to INFORMATION SCHEMA.PLUGINS table — new in 5.2
  14. Group commit for the binary log. This makes replication notably faster! — new in 5.3
  15. Added -rewrite-db mysqlbinlog option to change the used database — new in 5.2
  16. Progress reporting for ALTER TABLE and LOAD DATA INFILE. — new in 5.3
  17. Faster joins and subqueries. — new in 5.3
  18. HandlerSocket and faster HANDLER calls. — new in 5.3
  19. Dynamic Columns support. — new in 5.3
  20. GIS Functionality - new in 5.3
  21. Multi-source replication. — new in 10.0
  22. Global Transaction ID. - new in 10.0
    和官方GTID並不相容,與官方版本只能搭建基於檔案的複製
  23. SHOW EXPLAIN gives the EXPLAIN plan for a query running in another thread. 一 new in 10.0
  24. Roles.——new in 10.0
  25. PCRE Regular Expressions (including REGEXP_REPLACE〇). 一 new in 10.0
  26. DELETE … RETURNING. — new in 10.0
  27. See also a detailed breakdown of System variable differences between MariaDB 5.5 and MySQL 5.5 and System variable differences between MariaDB 10.0 and MySQL 5.6.
MariaDB 相容性

Incompatibilities between MariaDB 10.0 and MySQL 5.6
- MariaDB GTID is not compatible with MySQL 5.6
- MariaDB 10.0 multi-source replication, not MySQL 5.6
- MariaDB 10.0 dynamic columns, not MySQL 5.6
- CREATE TABLE … SELECT在 slave 上改造成CREATE OR REPLACE TABLE
- can not support the MySQL Memcached plugin
- not Users created with MySQL’s SHA256 password algorithm
- does not support delayed replication
- MariaDB 10.1 does not support MySQL 5.7’s JSON.
- MariaDB 10.1’s InnoDB encryption is implemented differently than MySQL 5.7’s InnoDB encryption.
- MariaDB 10.1 does not support the ngram and MeCab full-text parser plugins - MDEV-10267, MDEV-10268.
- MariaDB 10.1 does not support multiple triggers for a table-MDEV-6112.
- Note: Multiple triggers per table was added in 10.2
- MariaDB stores JSON as true text, not in binary format as MySQL. The reason is that our JSON functions are much faster than MySQL’s so we didn’t need to see a need for storing things in binary format as it adds a lot of complexity when manipulating JSON objects.
- MariaDB 10.2 does not support the ngram and MeCab full-text parser plugins - MDEV-10267, MDEV-10268.
- MariaDB 10.2 does not support the MySQL X plugin.
- MariaDB 10.2 does not support the MySQL general table spaces.

關於MySQL DBA
  • 運維DBA
    • 日常管理,備份、恢復、故障處理、高可用保障等
    • 整體優化,伺服器、網路、MySQL、架構
  • 開發DBA
    • 深入理解業務需求
    • SQL優化,編寫儲存過程、觸發器等業務SQL程式碼
  • DB架構師
    • 整體架構設計、優化

相關推薦

MySQL&開發規範

MySQL運維&開發規範 約定 MySQL, 通用稱謂,泛指MySQL這個服務軟體等相關代號 mysql, 沒有上下文語義時,等同上面的含義 mysqld, MySQL服務軟體的服務端程式、程序檔案 mysql,有上下文時,通常指

MySQL命令大全

mysql命令大全 mysql運維 關系型數據庫DML: Data Manapulate Lanauage 數據操作語言 INSERT, REPALCE, UPDATE, DELETEDDL: Data Definition Lanauage 數據定義語言 CREATE, ALT

讀書筆記-MySQL內參08-索引實現原理1

復雜 ges ron 神奇 定位 覆蓋 image sql png B樹和B+樹的區別 1,B樹的葉子節點和內節點存在的都是數據行的所有信息,B+樹的內節點值存放鍵(索引)信息,數據都在葉子節點上。 2,由於B樹鍵和值的所有信息,所以每頁的存儲的數據行相對較少,隨數據發

讀書筆記-MySQL內參07-InnoDB數據存儲結構

增長 連接 數據存儲 會有 ibdata1 固定 個數 如果 columns 表空間文件組成結構 InnoDB存儲引擎按照表空間進行管理。 在新建一個數據時,InnoDB存儲引擎會初始化一個名為ibdata1的表空間文件。 默認情況下,這個文件會存儲所有表的數據,以及

讀書筆記-MySQL內參08-索引實現原理2

自己 新節點 .cn 記錄 產生 連接 -m 父節點 alt 我們已經知道B+樹的組織結構及不同層之間是如何關聯的了。 現在我們模擬一個B+樹是如何從小到大,從無到有,從簡到繁的過程。 首先我們來做一些假設: 1,每個頁面包括內節點和葉子節點最多可以

Python 開發個人微信號在開發中的使用

模塊開發 padding 效果 用處 微信網頁版 企業 微信 技術分享 body 一、主題:Python 開發個人微信號在運維開發中的使用 二、內容: 企業公眾號 介紹開發微信公眾號的後臺邏輯,包括服務器驗證邏輯、用戶認證邏輯 個人微信號 面對企業微信的種種限制,可

mysql必會的一些知識點整理

全局 stat mysql多實例 多實例 無限 statement 並發 log日誌 chan (1)基礎筆試命令考察 1.開啟MySQL服務 /etc/init.d/mysqld start service mysqld start systemctl star

Mysql 管理-Mysql數據庫的多種安裝方法

row safe min tps script ets 筆記 初始化 啟動mysql MySQL數據庫的安裝 1 yum/rpm方式安裝 註意:yum/rpm方式安裝MySQL適合所有MySQL軟件產品系列。 (1)rpm包方式安裝mysql我們必須安裝Mysql-serv

Mysql管理-初步增量恢復mysql數據庫10

exec 增量 ibdata1 mat logfile warn ces success 數據文件 初步增量恢復MySQL數據實戰 a.配置my.cnf配置文件 先把my.cnf配置文件中的log-bin參數打開重命名為mysqlbin_zbf,這樣在mysql數據庫中更新

Mysql管理-創建索引知識及創建索引的多種方法實戰9

HA tiny dex class tab 大表 show art extra 為表的字段創建索引 索引就像書的目錄一樣,如果在字段上建立索引,那麽以索引為條件時可以加快查詢數據的速度。 1 創建主鍵索引 查詢數據庫的內容,按主鍵查詢是最快的,每個表只能有一個主鍵,但是可

Mysql管理-MySQL備份與恢復實戰案例及生產方案17

inno 主鍵 文件 黑名單 con dem into info l數據庫 1.全量備份與增量備份 1.1 全量備份 全量數據就是數據庫中所有的數據,全量備份就是把數據庫中所有的數據進行備份。 備份所有庫:mysqldump -uroot -p123456 -S /data

mysql管理-mysqldump 備份與恢復數據庫20

oca 導出數據 -h sql數據庫 oot 指定 令行 恢復數據 all mysqldump 備份與恢復數據庫 備份: 1、備份全部數據庫的數據和結構 mysqldump -uroot -pjsb -A > /bk/all.sql -A: 備份所有數據庫=--al

mysql管理-Heartbeat實現web服務的高可用案例及維護要點

server exp lec disabled urn tool distrib model recover 1.DRBD介紹 Distributed Replicated Block Device (DRBD)是基於塊設備在不同的高可用服務器對之間同步和鏡像數據的軟件,通

MySQL常用的SQL語句

ja###################分析類###############################################################-- 查詢表中數據超過1000行的表select concat(table_schema,'.',table_name)

雲計算Python自動化開發實戰: 交互模式編程

雲計算所謂交互就是跟用戶也就是我們使用python的人交互,你給出指令或代碼,python解釋器給出結果。 調用解釋器不經過腳本文件作為參數,顯示以下提示: python Python 2.7.10 (default, Jul 14 2015, 19:46:27) [GCC 4.2.1 Compatible

2018年企業開發經典面試題

楊文 運維開發 面試題 devops python 【崗位職責】負責DevOps業務線項目的實施交付工作負責idc機房、私有雲、公有雲的私有化部署工作負責公司產品的測試、生產環境搭建、維護完善各環境中服務穩定性、監控、日誌、部署、安全等需求??【任職要求】計算機相關專業本科畢業,2年以上的

mysql必備知識點(轉載至其他作者)

evo 計劃 AD lec reat gin 結構 服務 after (1)基礎筆試命令考察 1.開啟MySQL服務 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.檢測

mysql 常見操作

localhost show 步驟 select evo lec 連接 能夠 oot 初始安裝並賦予密碼: [root@Alinx html]# yum install -y mysql mysql-server #安裝

Python3自動化開發全程培訓課程 18G 4大階段課程 含視頻+電子書+軟件包等內容

Python3 自動化運維 python自動化運維 Python3自動化運維開發全程培訓課程 18G 4大階段課程 含視頻+電子書+軟件包等內容 視頻下載地址:https://pan.baidu.com/s/10ZMuERQbKtyDucjpL2oRzg ===============課程目錄=

MySQL進階-MySQL雙主(master-master)+半同步(Semisync Repl

MySQL運維進階-MySQL雙主(maMySQL --> MariaDB --> Percona-Server MySQL: oracle ,commutity : 社區版 5.5 5.6 5.7 8.0MariaDB:5.5 10.xPercona:Percona-Ser