MySQL水平分區代理Spock Proxy(一)

為什么80%的碼農都做不了架構師?>>> ??hot3.png

MySQL水平分區代理Spock Proxy 水平分區(sharding)將同一數據表中的數據通過特定的算法進行分離,分別保存在不同的數據表中,從而部署到不同的數據庫服務器上。 水平分區后,數據拆分到不同的服務器上,面臨的最重要的問題是應用程序如何正確的找到它們。可以通過使用Spock Proxy來幫助應用程序實現水平分區的訪問調度。意味著不需要在應用程序中維護那些分區對應關系。 Spock Proxy項目:http://spockproxy.sourceforge.net/ ? 一.Spock Proxy介紹 1.Spock Proxy支持基于水平范圍分區(range-based horizontal partioning)。將單個數據庫分片到多個,以提高性能和可擴展性。 2.從客戶端截取SQL語句,將查詢發送到正確分區數據庫服務器上,然后聚集從每個數據庫查詢到的結果返回給客戶端,作為一個普通的MySQL結果集。 3.對應用程序透明,避免修改應用程序。 4.Spock基于Rails和ActiveRecord。Spock Proxy基于MySQL Proxy開發,是MySQL Proxy的一個分支。對MySQLProxy做的改進有: a.不使用lua腳本。提升性能,多個數據庫返回的結果合并需要與lua腳本交互,開銷大。 b.客戶端登陸驗證。MySQL Proxy支持客戶端與各個服務器直接進行登錄驗證。而Spock Proxy統一管理,分離客戶端與服務器的連接。自動驗證客戶端使用的用戶名/密碼(啟動spockproxy指定的). c.動態連接池。Spock Proxy分離客戶端與服務器的連接,允許最小和最大連接數的管理。spockproxy啟動后建立了一個連接池的最小連接數。 d.多服務器發送/接收。請求發送到多臺服務器上。為了確保速度,所有的請求廣播一次,異步執行讀操作。當從每個服務器獲取結果完成后,如果計數器大于1,將執行合并操作。如果只有一個結果集,數據將被自動轉發給客戶端。如果從任何一個數據庫返回任何錯誤,錯誤將會被發送到客戶端。 5.Spock Proxy架構圖 二.Spock Proxy局限性 并非所有支持MySQL的查詢完全支持Spock Proxy。當spockproxy解析查詢語句失敗,調用端將得到一個錯誤。 已知的限制有: 1.SQL管理語句,如create。 2.支持有限的存儲過程和事務。 3.跨數據庫的join操作無法執行。 4.不支持嵌套查詢。 5.對于SELECT ,支持最多2表聯接。但不支持GROUP BY。 6.對于INSERT,列清單總是預期。 7.如果查詢涉及多個分區中的數據,對于查詢使用mysql函數,只支持MAX, MIN, SUM, AVERAGE 函數。 8.不正確的INSERT_ID和分裂一個自動遞增的主鍵與外鍵的表,ID沖突是可能的。 9.LOAD DATA INFILE沒有測試。

轉載于:https://my.oschina.net/766/blog/211489

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448624.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448624.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448624.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OO第四單元作業

1.作業的架構設計 (1)對于第一次作業中,要求我們實現關于類圖的查詢指令。 在這次作業中,主要采用的儲存方法是哈希表。 在查詢方法上,大多數要求諸如共有多少類等,利用哈希表進行查詢即可。 比較困難的一些…

傷錢傷感情 10件不能和親戚一起干的事兒

關于親戚和理財,網友小盒總結了下十大別和親戚干的事兒,干了之后保管既傷錢又傷感情: 1、別幫親戚炒股 賺了覺得你賺得不如以前吹的那么多,賠了就剩翻臉了,搭時間搭功夫還不落好。 2、別和親戚一起做生意 道理同…

李洋瘋狂C語言之選擇排序

選擇排序法 原理: 選擇法循環過程與冒泡法一致,它還定義了記號mini,然后依次把a[min]同后面的元素比較,若a[min]>a[j],則使kj. 最后看看ki是否還成立,不成立則交換a[k], a[i],這樣就比冒泡法省下許多無用的交換&a…

利用 git 提交代碼、git 簡單使用(拉取、推送、分支、合并)

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1.安裝 git sudo apt-get install git 2.查看版本: git --version 我的版本信息: 3. 配置用戶名和郵箱 : …

如何在android studio中設置sdk path?

為什么80%的碼農都做不了架構師?>>> Press F4 into Project StructureLeft > SDKsPress , add another sdk轉載于:https://my.oschina.net/itfanr/blog/195714

面試題之第一部分(Python基礎篇) 80題

第一部分(python基礎篇)80題 為什么學習Python?* # 1. python應用于很多領域,比如后端,前端,爬蟲,機器學習(人工智能)等方面,幾乎能涵蓋各個開發語言的領域&a…

OpenCL的安裝與配置

Windows 步驟 1:在 http://developer.amd.com/pages/default.aspx根據相應的操作系統,下載最新的 AMD driver, AMD APP SDK。AMD APP SDK目前支持Windows VISTA[32][64]bit,Windows 7[32][64]bit操作系統。 步驟 2:如果已經安裝了…

解決:java.lang.IllegalStateException: ApplicationEventMulticaster not initialized

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1. springboot 項目啟動時報錯: java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call …

李洋瘋狂C語言之求素數的方法

今天課上李洋老師講到求素數時,講了一種新的方法,一開始聽得我一臉懵逼,但當我理解的時候,眼前一亮,老師的算法省去了不少步驟,話不多說,附上題目:求100到200之間的素數。 輸入&…

面試官問我:平常如何對你的 Java 程序進行調優?

閱讀本文大概需要 10 分鐘。作者:張俊城, 郭理勇, 劉建來源:http://t.cn/AiCTERJzJava 應用性能優化是一個老生常談的話題,典型的性能問題如頁面響應慢、接口超時,服務器負載高、并發數低,數據庫頻繁死鎖等。尤其是在“…

c語言—變量

變量 存儲類型auto register static extern 變量在內存空間中的首地址&#xff0c;稱為變量的地址。 變量的定義形式&#xff1a;<存儲類型> <數據類型> <變量名> 存儲類型&#xff1a;auto register static extern auto (不寫默認是auto)局部變量auto 變量的…

李洋瘋狂C語言之關于自增自減遇到的一些問題

今天講到自增的時候&#xff0c;遇到個難點&#xff0c;單個的自增自減運算還是挺簡單的&#xff0c;但是如果是多個自增自減&#xff0c;就會變得比較麻煩&#xff0c;在windows環境和Linux環境中也會得到不一樣的結果&#xff0c;windows中比較簡單&#xff0c;他會將所有前綴…

Servlet的入門

什么是Servlet? Servlet是運行在服務端的java小程序,是sun公司提供的一套規范,用來處理客戶端請求.響應給瀏覽器的動態資源.Servlet是JavaWeb三大組件之一(Setvlet.Filter.Listener),且最重要. Servlet的作用? 用來處理從客戶端發送過來的請求,并對該請求做出響應. Servlet的…

快速部署ldap服務

快速部署ldap服務 作者&#xff1a;尹正杰 版權聲明&#xff1a;原創作品&#xff0c;謝絕轉載&#xff01;否則將追究法律責任。 一.LDAP概述 1.什么是目錄服務(1)目錄是一類為了瀏覽和搜索數據二十幾的特殊的數據庫&#xff0c;例如&#xff1a;最知名的的微軟公司的活動目錄…

expected at least 1 bean which qualifies as autowire candidate. Dependency a...

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 啟動 sringboot 項目報錯&#xff1a; expected at least 1 bean which qualifies as autowire candidate for this dependency. 原因…

李洋瘋狂C語言之break和continue的區別

1、break (1) 只能在循環體內和switch語句體內使用break語句。 (2) 當break出現在循環體中的switch語句體內時&#xff0c;其作用只是跳出該switch語句體。 (3) 當break出現在循環體中&#xff0c;但并不在switch語句體內時&#xff0c;則在執行break后&#xff0c;跳出本層…

Install OpenCL on Debian, Ubuntu and Mint orderly

Libraries – can’t have enough If you read different types of manuals how to compile OpenCL software on Linux, then you can get dizzy of all the LD-parameters. Also when installing the SDKs from AMD, Intel and NVIDIA, you get different locations for libra…

linux7 配置mysql5.7字符集編碼

linux 安裝后 mysql5.7 字符集默認是拉丁&#xff0c;不能存儲中文&#xff0c;修改步驟如下&#xff1a; 在 vim /etc/mysql/my.cnf 修改配置文件 在[mysqld] 下添加如下配置 character-set-serverutf8 init_connectSET NAMES utf8 重啟mysql服務 systemctl restart mysqld.…

解決:java.io.IOException: invalid constant type: 15

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 啟動 dubbo 服務報錯&#xff1a; java.io.IOException: invalid constant type: 15 我的情況是項目本身 是用的1.7 。而我自己用的…

liunx常用命令筆記

安裝軟件教程 linux安裝java&#xff1a;https://www.cnblogs.com/lamp01/p/8932740.html linux安裝mysql&#xff1a;https://www.cnblogs.com/daemon-/p/9009360.html linux安裝redis&#xff1a;https://blog.csdn.net/qq_30764991/article/details/81564652 linux安裝nginx…