贊!7000 字學習筆記,一天搞定 MySQL

2022-07-04 21:30:22 字數 4112 閱讀 1795

mysql資料庫簡介

mysql近兩年一直穩居第二,隨時有可能超過oracle計晉公升為第一名,因為mysql的效能一直在被優化,同時安全機制也是逐漸成熟,更重要的是開源免費的。

mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性。

mysql所使用的 sql 語言是用於訪問資料庫的最常用標準化語言。mysql 軟體採用了雙授權政策,分為社群版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,一般中小型**的開發都選擇 mysql 作為**資料庫。

如果不會安裝mysql請移步:mysql服務安裝

mysql innodb儲存引擎

innodb儲存引擎的優勢:

1、事物(transaction)

2、mvcc(多版本併發控制)

3、行級鎖(row-level lock)

4、支援外來鍵

5、acsr(auto crrash safe recovery)自動的故障安全恢復

6、支援熱備份

mysql複製集群原理與實戰

mysql複製有兩種方法:

mysql資料庫主從同步實戰過程

mysql 主從同步架構中你不知道的「坑」

(上)mysql 主從同步架構中你不知道的「坑」(下)

資料備份多種方式:

送你乙份生產資料庫備份方案:高逼格企業級mysql資料庫備份方案

mysql資料庫物理備份方式:xtrabackup實現資料的備份與恢復

mysql複製有多種型別:

mysql主從複製延遲解決方案:高可用資料庫主從複製延時的解決方案

mysql高可用架構設計與實戰

先來了解一下mysql高可用架構簡介:**mysql集群高可用架構

mysql高可用方案:mysql 同步複製及高可用方案總結

官方也提供一種高可用方案:官方工具|mysql router 高可用原理與實戰

mhamha高可用方案實戰:mysql集群高可用架構之mha

mgrmysql效能優化

史上最全的mysql高效能優化實戰總結!

mysql索引原理:mysql 的索引是什麼?怎麼優化?

mysql表分割槽介紹:一文徹底搞懂mysql分割槽

mysql分庫分表

資料庫分庫分表概述:資料庫分庫分表,何時分?怎樣分?

mysql分庫分表方案:mysql 分庫分表方案,總結的非常好!

mysql分庫分表的思路:解救 dba—資料庫分庫分表思路及案例分析

mysql資料庫讀寫分離高可用

海量資料的儲存和訪問成為了系統設計的瓶頸問題,日益增長的業務資料,無疑對資料庫造成了相當大的負載,同時對於系統的穩定性和擴充套件性提出很高的要求。隨著時間和業務的發展,資料庫中的表會越來越多,表中的資料量也會越來越大,相應地,資料操作的開銷也會越來越大;另外,無論怎樣公升級硬體資源,單台伺服器的資源(cpu、磁碟、記憶體、網路io、事務數、連線數)總是有限的,最終資料庫所能承載的資料量、資料處理能力都將遭遇瓶頸。分表、分庫和讀寫分離可以有效地減小單台資料庫的壓力。

mysql讀寫分離高可用架構實戰案例:

proxysql+mysql實現資料庫讀寫分離實戰

mysql+mycat實現資料庫主從同步與讀寫分離

mysql效能監控

mysql效能監控的指標大體可以分為以下4大類:

[root@db01 ~]# yum -y install php php-mysql

[root@db01 ~]# wget

[root@db01 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm

warning: percona-zabbix-templates-1.1.8-1.noarch.rpm: header v4 dsa/sha1 signature, key id cd2efd2a: nokey

preparing... ################################# [100%]

updating / installing...

1:percona-zabbix-templates-1.1.8-1 ################################# [100%]

scripts are installed to /var/lib/zabbix/percona/scripts

templates are installed to /var/lib/zabbix/percona/templates

最後,可以配合其它監控工具來實現對mysql的效能監控。

mysql伺服器配置外掛程式:

[root@db01 ~]# sed -i '

30c $mysql_user = "monitor";

' /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php

[root@db01 ~]# sed -i '

31c $mysql_pass = "123456";

' /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php

[root@db01 ~]# sed -i '

33c $mysql_socket = "/tmp/mysql.sock";

' /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php

測試是否可用( 可以從mysql中獲取到監控值 )

[root@db01 ~]# /usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg

gg:12

# 確保當前檔案的 屬主 屬組 是zabbix,否則zabbix監控取值錯誤。

[root@db01 ~]# ll -sh /tmp/localhost-mysql_cacti_stats.txt

4.0k -rw-rw-r-- 1 zabbix zabbix 1.3k dec 5

17:34 /tmp/localhost-mysql_cacti_stats.txt

移動zabbix-agent配置檔案到 /etc/zabbix/zabbix_agentd.d/目錄

[root@db01 ~]# mv /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/[root@db01 ~]# systemctl restart zabbix-agent.service

匯入並配置zabbix模板與主機:

預設模板監控時間為 5分鐘 ( 當前測試修改為 30s) 同時也要修改zabbix模板時間

# 如果要修改監控獲取值的時間不但要在zabbix面板修改取值時間,bash指令碼也要修改。

[root@db01 scripts]# sed -n '

/timeflm/p

timeflm=`stat -c %y /tmp/$host-mysql_cacti_stats.txt`

if [ `expr $timenow - $timeflm` -gt 300

]; then

# 這個

300 代表 300s 同時也要修改。

預設模板版本為 2.0.9,無法在4.0版本使用,可以先從3.0版本匯出,然後再匯入4.0版本 。

mysql使用者行為安全

學完了就需要出去練一練,最後給大家一些企業面試題供大家練練手:24 個必須掌握的資料庫面試問題!

機器學習 學習筆記第一天

所有機器學習的演算法可以分為4到5 類 監督學習 supervised learning 如果在學習的過程中,我們不斷的向計算機提供資料和這些資料所對應的值 標籤 通過指引的方式,讓計算機學習我們是如何把這些資料對應上所代表的物體,也就是讓計算機學習這些標籤可以代表那些,這種方式就叫做 監督學習 s...

effective C 學習筆記第一天

1.視c 為乙個語言聯邦 為了理解c 必須認識其主要的次語言。幸運的是總共只有四個 1 c 說到底c 仍是以c 為基礎。blocks,statements,preprocessor,built in data types,arrays,pointers 2 object oriented c 這部分...

rails 學習第一天筆記

在rails 專案中,從瀏覽器中發起乙個請求時,先到public 資料夾下檢查是否有index.html 檔案,有的話直接顯示。沒有的話在到config下的路由檔案 route.rb 中,根據路由規則執行相關操作。在rout.rb 檔案中定義了 root page welcome 表示訪問該項目的主...