這篇文章主要介紹“MySQL PROXYSQL的基本原理是什么”,在日常操作中,相信很多人在MYSQL PROXYSQL的基本原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MYSQL PROXYSQL的基本原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
10多年的乳山網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整乳山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“乳山網(wǎng)站設(shè)計”,“乳山網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
PorxySQL 作為使用MYSQL的一種中間件,為什么是目前比較流行的中間件之一,個人總結(jié)有以下幾點。
1 友好的操作界面,操作PROXYSQL 基本上懂得MYSQL的語法即可,雖然是基于SQLLITE 數(shù)據(jù)庫,但基本上操作中大部分的配置都不涉及重啟,僅僅需要將配置上傳到內(nèi)存中即刻生效。
2 作為判斷MYSQL各種方式的高可用中的主,支持的種類很多,MGR, MHA,PXC, 基本上市面上的MYSQL 通用的高可用方式都支持,并且對于MGR的多主也有相關(guān)的配置選項。
3 配置簡單,如果不需要特殊的配置,則僅僅需要三步,PROXYSQL 就可以被配置成一個簡單的支持MYSQL高可用的訪問的通路。
既然PROXYSQL 有這么多的好處,并且前兩篇也講述了簡單的PROXYSQL FOR MHA , PROXYSQL FOR INNODB CLUSTER 兩種的配置的方式。今天就需要來看看到底PROXYSQL的一些原理和配置的一些細節(jié),以及最后做一個壓力方面的測試,看看PROXYSQL 本身可以承受的訪問壓力。
實際當中我們操作的命令大部分都在內(nèi)存中,而main這個數(shù)據(jù)庫就是人機交互的內(nèi)存的接口。大部分的命令都是在內(nèi)存中操作以后,上傳到內(nèi)存和寫入到磁盤當中的。Disk 其實就是proxySQL 的配置的保存數(shù)據(jù)的位置,如果丟失或損壞則在PROXYSQL 重啟后會遇到配置丟失的問題,所以定期的去備份數(shù)據(jù)庫對PROXYSQL是有必要的。
其中有四個重要的表
mysql_servers PROXYSQL 接受MYSQL的數(shù)據(jù)庫服務(wù)器的列表
mysql_users PROXYSQL 連接MYSQL的用戶列表,這些用戶必須已經(jīng)建立在MYSQL中。
mysql_query_rules PROXYSQL 對于查詢的一些設(shè)置的規(guī)則
global_variables 存儲展現(xiàn)當前系統(tǒng)正在應(yīng)用的系統(tǒng)的變量
相對于上面的四個表,下面的命令集合就是在配置完相關(guān)的表后,需要將內(nèi)存操作的數(shù)據(jù), download to disk 和 upload to run time
LOAD MYSQL USERS TO RUNTIME; SAVE MYSQL USERS TO DISK; LOAD MYSQL SERVERS TO RUNTIME; SAVE MYSQL SERVERS TO DISK; LOAD MYSQL QUERY RULES TO RUNTIME; SAVE MYSQL QUERY RULES TO DISK; LOAD MYSQL VARIABLES TO RUNTIME; SAVE MYSQL VARIABLES TO DISK; LOAD ADMIN VARIABLES TO RUNTIME; SAVE ADMIN VARIABLES TO DISK; |
另外一個問題是,什么變量是必須通過重啟PROXYSQL才能進行改變的
mysql-interface、mysql-threads和mysql-stacksize 這三個變量是必須通過重啟才能生效的。
關(guān)于query cache 實際上MYSQL本身在5.X時是有相關(guān)的 query cache但實際上使用的并不常見,基本上都屬于關(guān)閉的狀態(tài)。PROXYSQL 也具備query cache 主要是針對高頻的查詢中的結(jié)果的返回,有人可能要說,其實這個功能也是雞肋,其實我對這個看法是一半同意
一個功能是否是雞肋要看他應(yīng)用的場景和被需要的情況,底下圖中的情況在有
些場景中是常見的使用的方式, 那換一個思維的方式, 如果將前面的redis 換成 PROXYSQL query cache 如何,部分簡單的功能也是可以替換的。
MySQL查詢緩存為所有表提供了一個通用的緩存空間,與此不同的是,在proxyysql查詢緩存中,我們必須定義緩存的流量。這是通過定義查詢規(guī)則來完成的,這些規(guī)則匹配將被緩存的流量,并為緩存的結(jié)果設(shè)置一個“cache_ttl”。
通過下面的語句在proxysql 中查詢
SELECT count_star,sum_time,hostgroup,digest,digest_text FROM stats_mysql_query_digest_reset ORDER BY sum_time DESC;
我們找到頻繁運行語句
INSERT INTO mysql_query_rules (rule_id,active,digest,cache_ttl,apply) VALUES (1,1,'0xAC80A5EA0101522E',5000,1);
然后我們將這條語句輸入到proxysql中
LOAD MYSQL QUERY RULES TO RUNTIME; SAVE MYSQL QUERY RULES TO DISK;
然后運行加載的語句。
下次遇到同樣的語句會在系統(tǒng)5000ms內(nèi)使用PROXYSQL 內(nèi)存的結(jié)果對訪問者進行數(shù)據(jù)的輸出。
到此,關(guān)于“MYSQL PROXYSQL的基本原理是什么”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
當前文章:MYSQLPROXYSQL的基本原理是什么
文章網(wǎng)址:http://weahome.cn/article/gdodie.html