一、概念
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、網(wǎng)站設(shè)計、藤縣網(wǎng)絡(luò)推廣、小程序定制開發(fā)、藤縣網(wǎng)絡(luò)營銷、藤縣企業(yè)策劃、藤縣品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供藤縣建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
SQL?(Structured?Query?Language)?數(shù)據(jù)庫,指關(guān)系型數(shù)據(jù)庫。主要代表:SQL?Server,Oracle,MySQL(開源),PostgreSQL(開源)。
NoSQL(Not?Only?SQL)泛指非關(guān)系型數(shù)據(jù)庫。主要代表:MongoDB,Redis,CouchDB。
二、區(qū)別
1、存儲方式
SQL數(shù)據(jù)存在特定結(jié)構(gòu)的表中;而NoSQL則更加靈活和可擴(kuò)展,存儲方式可以省是JSON文檔、哈希表或者其他方式。SQL通常以數(shù)據(jù)庫表形式存儲數(shù)據(jù)。舉個栗子,存?zhèn)€學(xué)生借書數(shù)據(jù):
而NoSQL存儲方式比較靈活,比如使用類JSON文件存儲上表中熊大的借閱數(shù)據(jù):
2、表/數(shù)據(jù)集合的數(shù)據(jù)的關(guān)系
在SQL中,必須定義好表和字段結(jié)構(gòu)后才能添加數(shù)據(jù),例如定義表的主鍵(primary?key),索引(index),觸發(fā)器(trigger),存儲過程(stored?procedure)等。表結(jié)構(gòu)可以在被定義之后更新,但是如果有比較大的結(jié)構(gòu)變更的話就會變得比較復(fù)雜。在NoSQL中,數(shù)據(jù)可以在任何時候任何地方添加,不需要先定義表。例如下面這段代碼會自動創(chuàng)建一個新的"借閱表"數(shù)據(jù)集合:
NoSQL也可以在數(shù)據(jù)集中建立索引。以MongoDB為例,會自動在數(shù)據(jù)集合創(chuàng)建后創(chuàng)建唯一值_id字段,這樣的話就可以在數(shù)據(jù)集創(chuàng)建后增加索引。
從這點來看,NoSQL可能更加適合初始化數(shù)據(jù)還不明確或者未定的項目中。
3、外部數(shù)據(jù)存儲
SQL中如何需要增加外部關(guān)聯(lián)數(shù)據(jù)的話,規(guī)范化做法是在原表中增加一個外鍵,關(guān)聯(lián)外部數(shù)據(jù)表。例如需要在借閱表中增加審核人信息,先建立一個審核人表:
再在原來的借閱人表中增加審核人外鍵:
這樣如果我們需要更新審核人個人信息的時候只需要更新審核人表而不需要對借閱人表做更新。而在NoSQL中除了這種規(guī)范化的外部數(shù)據(jù)表做法以外,我們還能用如下的非規(guī)范化方式把外部數(shù)據(jù)直接放到原數(shù)據(jù)集中,以提高查詢效率。缺點也比較明顯,更新審核人數(shù)據(jù)的時候?qū)容^麻煩。
4、SQL中的JOIN查詢
SQL中可以使用JOIN表鏈接方式將多個關(guān)系數(shù)據(jù)表中的數(shù)據(jù)用一條簡單的查詢語句查詢出來。NoSQL暫未提供類似JOIN的查詢方式對多個數(shù)據(jù)集中的數(shù)據(jù)做查詢。所以大部分NoSQL使用非規(guī)范化的數(shù)據(jù)存儲方式存儲數(shù)據(jù)。
5、數(shù)據(jù)耦合性
SQL中不允許刪除已經(jīng)被使用的外部數(shù)據(jù),例如審核人表中的"熊三"已經(jīng)被分配給了借閱人熊大,那么在審核人表中將不允許刪除熊三這條數(shù)據(jù),以保證數(shù)據(jù)完整性。而NoSQL中則沒有這種強耦合的概念,可以隨時刪除任何數(shù)據(jù)。
6、事務(wù)
SQL中如果多張表數(shù)據(jù)需要同批次被更新,即如果其中一張表更新失敗的話其他表也不能更新成功。這種場景可以通過事務(wù)來控制,可以在所有命令完成后再統(tǒng)一提交事務(wù)。而NoSQL中沒有事務(wù)這個概念,每一個數(shù)據(jù)集的操作都是原子級的。
7、增刪改查語法
8、查詢性能
在相同水平的系統(tǒng)設(shè)計的前提下,因為NoSQL中省略了JOIN查詢的消耗,故理論上性能上是優(yōu)于SQL的。
前言:
MYSQL 應(yīng)該是最流行了 WEB 后端數(shù)據(jù)庫。雖然 NOSQL 最近越來越多的被提到,但是相信大部分架構(gòu)師還是會選擇 MYSQL 來做數(shù)據(jù)存儲。本文作者總結(jié)梳理MySQL性能調(diào)優(yōu)的15個重要變量,又不足需要補充的還望大佬指出。
1.DEFAULT_STORAGE_ENGINE
如果你已經(jīng)在用MySQL 5.6或者5.7,并且你的數(shù)據(jù)表都是InnoDB,那么表示你已經(jīng)設(shè)置好了。如果沒有,確保把你的表轉(zhuǎn)換為InnoDB并且設(shè)置default_storage_engine為InnoDB。
為什么?簡而言之,因為InnoDB是MySQL(包括Percona Server和MariaDB)最好的存儲引擎 – 它支持事務(wù),高并發(fā),有著非常好的性能表現(xiàn)(當(dāng)配置正確時)。這里有詳細(xì)的版本介紹為什么
2.INNODB_BUFFER_POOL_SIZE
這個是InnoDB最重要變量。實際上,如果你的主要存儲引擎是InnoDB,那么對于你,這個變量對于MySQL是最重要的。
基本上,innodb_buffer_pool_size指定了MySQL應(yīng)該分配給InnoDB緩沖池多少內(nèi)存,InnoDB緩沖池用來存儲緩存的數(shù)據(jù),二級索引,臟數(shù)據(jù)(已經(jīng)被更改但沒有刷新到硬盤的數(shù)據(jù))以及各種內(nèi)部結(jié)構(gòu)如自適應(yīng)哈希索引。
根據(jù)經(jīng)驗,在一個獨立的MySQL服務(wù)器應(yīng)該分配給MySQL整個機(jī)器總內(nèi)存的80%。如果你的MySQL運行在一個共享服務(wù)器,或者你想知道InnoDB緩沖池大小是否正確設(shè)置,詳細(xì)請看這里。
3.INNODB_LOG_FILE_SIZE
InnoDB重做日志文件的設(shè)置在MySQL社區(qū)也叫做事務(wù)日志。直到MySQL 5.6.8事務(wù)日志默認(rèn)值innodb_log_file_size=5M是唯一最大的InnoDB性能殺手。從MySQL 5.6.8開始,默認(rèn)值提升到48M,但對于許多稍繁忙的系統(tǒng),還遠(yuǎn)遠(yuǎn)要低。
根據(jù)經(jīng)驗,你應(yīng)該設(shè)置的日志大小能在你服務(wù)器繁忙時能存儲1-2小時的寫入量。如果不想這么麻煩,那么設(shè)置1-2G的大小會讓你的性能有一個不錯的表現(xiàn)。這個變量也相當(dāng)重要,更詳細(xì)的介紹請看這里。
當(dāng)然,如果你有大量的大事務(wù)更改,那么,更改比默認(rèn)innodb日志緩沖大小更大的值會對你的性能有一定的提高,但是你使用的是autocommit,或者你的事務(wù)更改小于幾k,那還是保持默認(rèn)的值吧。
4.INNODB_FLUSH_LOG_AT_TRX_COMMIT
默認(rèn)下,innodb_flush_log_at_trx_commit設(shè)置為1表示InnoDB在每次事務(wù)提交后立即刷新同步數(shù)據(jù)到硬盤。如果你使用autocommit,那么你的每一個INSERT, UPDATE或DELETE語句都是一個事務(wù)提交。
同步是一個昂貴的操作(特別是當(dāng)你沒有寫回緩存時),因為它涉及對硬盤的實際同步物理寫入。所以如果可能,并不建議使用默認(rèn)值。
兩個可選的值是0和2:
* 0表示刷新到硬盤,但不同步(提交事務(wù)時沒有實際的IO操作)
* 2表示不刷新和不同步(也沒有實際的IO操作)
所以你如果設(shè)置它為0或2,則同步操作每秒執(zhí)行一次。所以明顯的缺點是你可能會丟失上一秒的提交數(shù)據(jù)。具體來說,你的事務(wù)已經(jīng)提交了,但服務(wù)器馬上斷電了,那么你的提交相當(dāng)于沒有發(fā)生過。
顯示的,對于金融機(jī)構(gòu),如銀行,這是無法忍受的。不過對于大多數(shù)網(wǎng)站,可以設(shè)置為innodb_flush_log_at_trx_commit=0|2,即使服務(wù)器最終崩潰也沒有什么大問題。畢竟,僅僅在幾年前有許多網(wǎng)站還是用MyISAM,當(dāng)崩潰時會丟失30s的數(shù)據(jù)(更不要提那令人抓狂的慢修復(fù)進(jìn)程)。
那么,0和2之間的實際區(qū)別是什么?性能明顯的差異是可以忽略不計,因為刷新到操作系統(tǒng)緩存的操作是非??斓摹K院苊黠@應(yīng)該設(shè)置為0,萬一MySQL崩潰(不是整個機(jī)器),你不會丟失任何數(shù)據(jù),因為數(shù)據(jù)已經(jīng)在OS緩存,最終還是會同步到硬盤的。
5.SYNC_BINLOG
已經(jīng)有大量的文檔寫到sync_binlog,以及它和innodb_flush_log_at_trx_commit的關(guān)系,下面我們來簡單的介紹下:
a) 如果你的服務(wù)器沒有設(shè)置從服務(wù)器,而且你不做備份,那么設(shè)置sync_binlog=0將對性能有好處。
b) 如果你有從服務(wù)器并且做備份,但你不介意當(dāng)主服務(wù)器崩潰時在二進(jìn)制日志丟失一些事件,那么為了更好的性能還是設(shè)置為sync_binlog=0.
c) 如果你有從服務(wù)器并且備份,你非常在意從服務(wù)器的一致性,以及能及時恢復(fù)到一個時間點(通過使用最新的一致性備份和二進(jìn)制日志將數(shù)據(jù)庫恢復(fù)到特定時間點的能力),那么你應(yīng)該設(shè)置innodb_flush_log_at_trx_commit=1,并且需要認(rèn)真考慮使用sync_binlog=1。
問題是sync_binlog=1代價比較高 – 現(xiàn)在每個事務(wù)也要同步一次到硬盤。你可能會想為什么不把兩次同步合并成一次,想法正確 – 新版本的MySQL(5.6和5.7,MariaDB和Percona Server)已經(jīng)能合并提交,那么在這種情況下sync_binlog=1的操作也不是這么昂貴了,但在舊的mysql版本中仍然會對性能有很大影響。
6.INNODB_FLUSH_METHOD
將innodb_flush_method設(shè)置為O_DIRECT以避免雙重緩沖.唯一一種情況你不應(yīng)該使用O_DIRECT是當(dāng)你操作系統(tǒng)不支持時。但如果你運行的是Linux,使用O_DIRECT來激活直接IO。
不用直接IO,雙重緩沖將會發(fā)生,因為所有的數(shù)據(jù)庫更改首先會寫入到OS緩存然后才同步到硬盤 – 所以InnoDB緩沖池和OS緩存會同時持有一份相同的數(shù)據(jù)。特別是如果你的緩沖池限制為總內(nèi)存的50%,那意味著在寫密集的環(huán)境中你可能會浪費高達(dá)50%的內(nèi)存。如果沒有限制為50%,服務(wù)器可能由于OS緩存的高壓力會使用到swap。
簡單地說,設(shè)置為innodb_flush_method=O_DIRECT。
7.INNODB_BUFFER_POOL_INSTANCES
MySQL 5.5引入了緩沖實例作為減小內(nèi)部鎖爭用來提高M(jìn)ySQL吞吐量的手段。
在5.5版本這個對提升吞吐量幫助很小,然后在MySQL 5.6版本這個提升就非常大了,所以在MySQL5.5中你可能會保守地設(shè)置innodb_buffer_pool_instances=4,在MySQL 5.6和5.7中你可以設(shè)置為8-16個緩沖池實例。
你設(shè)置后觀察會覺得性能提高不大,但在大多數(shù)高負(fù)載情況下,它應(yīng)該會有不錯的表現(xiàn)。
對了,不要指望這個設(shè)置能減少你單個查詢的響應(yīng)時間。這個是在高并發(fā)負(fù)載的服務(wù)器上才看得出區(qū)別。比如多個線程同時做許多事情。
8.INNODB_THREAD_CONCURRENCY
InnoDB有一種方法來控制并行執(zhí)行的線程數(shù) – 我們稱為并發(fā)控制機(jī)制。大部分是由innodb_thread_concurrency值來控制的。如果設(shè)置為0,并發(fā)控制就關(guān)閉了,因此InnoDB會立即處理所有進(jìn)來的請求(盡可能多的)。
在你有32CPU核心且只有4個請求時會沒什么問題。不過想像下你只有4CPU核心和32個請求時 – 如果你讓32個請求同時處理,你這個自找麻煩。因為這些32個請求只有4 CPU核心,顯然地會比平常慢至少8倍(實際上是大于8倍),而然這些請求每個都有自己的外部和內(nèi)部鎖,這有很大可能堆積請求。
下面介紹如何更改這個變量,在mysql命令行提示符執(zhí)行:
對于大多數(shù)工作負(fù)載和服務(wù)器,設(shè)置為8是一個好開端,然后你可以根據(jù)服務(wù)器達(dá)到了這個限制而資源使用率利用不足時逐漸增加??梢酝ㄟ^show engine innodb status\G來查看目前查詢處理情況,查找類似如下行:
9.SKIP_NAME_RESOLVE
這一項不得不提及,因為仍然有很多人沒有添加這一項。你應(yīng)該添加skip_name_resolve來避免連接時DNS解析。
大多數(shù)情況下你更改這個會沒有什么感覺,因為大多數(shù)情況下DNS服務(wù)器解析會非???。不過當(dāng)DNS服務(wù)器失敗時,它會出現(xiàn)在你服務(wù)器上出現(xiàn)“unauthenticated connections” ,而就是為什么所有的請求都突然開始慢下來了。
所以不要等到這種事情發(fā)生才更改?,F(xiàn)在添加這個變量并且避免基于主機(jī)名的授權(quán)。
10.INNODB_IO_CAPACITY, INNODB_IO_CAPACITY_MAX
* innodb_io_capacity:用來當(dāng)刷新臟數(shù)據(jù)時,控制MySQL每秒執(zhí)行的寫IO量。
* innodb_io_capacity_max: 在壓力下,控制當(dāng)刷新臟數(shù)據(jù)時MySQL每秒執(zhí)行的寫IO量
首先,這與讀取無關(guān) – SELECT查詢執(zhí)行的操作。對于讀操作,MySQL會盡最大可能處理并返回結(jié)果。至于寫操作,MySQL在后臺會循環(huán)刷新,在每一個循環(huán)會檢查有多少數(shù)據(jù)需要刷新,并且不會用超過innodb_io_capacity指定的數(shù)來做刷新操作。這也包括更改緩沖區(qū)合并(在它們刷新到磁盤之前,更改緩沖區(qū)是輔助臟頁存儲的關(guān)鍵)。
第二,我需要解釋一下什么叫“在壓力下”,MySQL中稱為”緊急情況”,是當(dāng)MySQL在后臺刷新時,它需要刷新一些數(shù)據(jù)為了讓新的寫操作進(jìn)來。然后,MySQL會用到innodb_io_capacity_max。
那么,應(yīng)該設(shè)置innodb_io_capacity和innodb_io_capacity_max為什么呢?
最好的方法是測量你的存儲設(shè)置的隨機(jī)寫吞吐量,然后給innodb_io_capacity_max設(shè)置為你的設(shè)備能達(dá)到的最大IOPS。innodb_io_capacity就設(shè)置為它的50-75%,特別是你的系統(tǒng)主要是寫操作時。
通常你可以預(yù)測你的系統(tǒng)的IOPS是多少。例如由8 15k硬盤組成的RAID10能做大約每秒1000隨機(jī)寫操作,所以你可以設(shè)置innodb_io_capacity=600和innodb_io_capacity_max=1000。許多廉價企業(yè)SSD可以做4,000-10,000 IOPS等。
這個值設(shè)置得不完美問題不大。但是,要注意默認(rèn)的200和400會限制你的寫吞吐量,因此你可能偶爾會捕捉到刷新進(jìn)程。如果出現(xiàn)這種情況,可能是已經(jīng)達(dá)到你硬盤的寫IO吞吐量,或者這個值設(shè)置得太小限制了吞吐量。
11.INNODB_STATS_ON_METADATA
如果你跑的是MySQL 5.6或5.7,你不需要更改innodb_stats_on_metadata的默認(rèn)值,因為它已經(jīng)設(shè)置正確了。
不過在MySQL 5.5或5.1,強烈建議關(guān)閉這個變量 – 如果是開啟,像命令show table status會立即查詢INFORMATION_SCHEMA而不是等幾秒再執(zhí)行,這會使用到額外的IO操作。
從5.1.32版本開始,這個是動態(tài)變量,意味著你不需要重啟MySQL服務(wù)器來關(guān)閉它。
12.INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN INNODB_BUFFER_POOL_LOAD_AT_STARTUP
innodb_buffer_pool_dump_at_shutdown和innodb_buffer_pool_load_at_startup這兩個變量與性能無關(guān),不過如果你偶爾重啟mysql服務(wù)器(如生效配置),那么就有關(guān)。當(dāng)兩個都激活時,MySQL緩沖池的內(nèi)容(更具體地說,是緩存頁)在停止MySQL時存儲到一個文件。當(dāng)你下次啟動MySQL時,它會在后臺啟動一個線程來加載緩沖池的內(nèi)容以提高預(yù)熱速度到3-5倍。
兩件事:
第一,它實際上沒有在關(guān)閉時復(fù)制緩沖池內(nèi)容到文件,僅僅是復(fù)制表空間ID和頁面ID – 足夠的信息來定位硬盤上的頁面了。然后它就能以大量的順序讀非??焖俚募虞d那些頁面,而不是需要成千上萬的小隨機(jī)讀。
第二,啟動時是在后臺加載內(nèi)容,因為MySQL不需要等到緩沖池內(nèi)容加載完成再開始接受請求(所以看起來不會有什么影響)。
從MySQL 5.7.7開始,默認(rèn)只有25%的緩沖池頁面在mysql關(guān)閉時存儲到文件,但是你可以控制這個值 – 使用innodb_buffer_pool_dump_pct,建議75-100。
這個特性從MySQL 5.6才開始支持。
13.INNODB_ADAPTIVE_HASH_INDEX_PARTS
如果你運行著一個大量SELECT查詢的MySQL服務(wù)器(并且已經(jīng)盡可能優(yōu)化),那么自適應(yīng)哈希索引將下你的下一個瓶頸。自適應(yīng)哈希索引是InnoDB內(nèi)部維護(hù)的動態(tài)索引,可以提高最常用的查詢模式的性能。這個特性可以重啟服務(wù)器關(guān)閉,不過默認(rèn)下在mysql的所有版本開啟。
這個技術(shù)非常復(fù)雜,在大多數(shù)情況下它會對大多數(shù)類型的查詢直到加速的作用。不過,當(dāng)你有太多的查詢往數(shù)據(jù)庫,在某一個點上它會花過多的時間等待AHI鎖和閂鎖。
如果你的是MySQL 5.7,沒有這個問題 – innodb_adaptive_hash_index_parts默認(rèn)設(shè)置為8,所以自適應(yīng)哈希索引被切割為8個分區(qū),因為不存在全局互斥。
不過在mysql 5.7前的版本,沒有AHI分區(qū)數(shù)量的控制。換句話說,有一個全局互斥鎖來保護(hù)AHI,可能導(dǎo)致你的select查詢經(jīng)常撞墻。
所以如果你運行的是5.1或5.6,并且有大量的select查詢,最簡單的方案就是切換成同一版本的Percona Server來激活A(yù)HI分區(qū)。
14.QUERY_CACHE_TYPE
如果人認(rèn)為查詢緩存效果很好,肯定應(yīng)該使用它。好吧,有時候是有用的。不過這個只在你在低負(fù)載時有用,特別是在低負(fù)載下大多數(shù)是讀取,小量寫或者沒有。
如果是那樣的情況,設(shè)置query_cache_type=ON和query_cache_size=256M就好了。不過記住不能把256M設(shè)置更高的值了,否則會由于查詢緩存失效時,導(dǎo)致引起嚴(yán)重的服務(wù)器停頓。
如果你的MySQL服務(wù)器高負(fù)載動作,建議設(shè)置query_cache_size=0和query_cache_type=OFF,并重啟服務(wù)器生效。那樣Mysql就會停止在所有的查詢使用查詢緩存互斥鎖。
15.TABLE_OPEN_CACHE_INSTANCES
從MySQL 5.6.6開始,表緩存能分割到多個分區(qū)。
表緩存用來存放目前已打開表的列表,當(dāng)每一個表打開或關(guān)閉互斥體就被鎖定 – 即使這是一個隱式臨時表。使用多個分區(qū)絕對減少了潛在的爭用。
從MySQL 5.7.8開始,table_open_cache_instances=16是默認(rèn)的配置。
歡迎做Java的工程師朋友們私信我資料免費獲取免費的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構(gòu)資料)
其中覆蓋了互聯(lián)網(wǎng)的方方面面,期間碰到各種產(chǎn)品各種場景下的各種問題,很值得大家借鑒和學(xué)習(xí),擴(kuò)展自己的技術(shù)廣度和知識面。
mysql8 可以說是一個質(zhì)的飛越。增加了很多新特性,以及提高了各方面的速度。增加了開窗函數(shù)
Ⅱ InnoDB增強
自增列方面
自增列方面?,F(xiàn)在自增列計數(shù)器會在每次值修改時,將值寫到REDO LOG中,并且在CHECKPOINT時寫到存儲引擎私有的系統(tǒng)表中。
這就消除了以往重啟實例自增列不連續(xù)的問題(這也可能形成了一個新的競爭點(蓋國強會上提問InnoDB開發(fā)者))。
Btree索引方面
Btree索引被損壞。InnoDB會向REDO LOG中寫入一個損壞標(biāo)志。同時也會CHECKPOINT時將內(nèi)存中損壞頁的數(shù)據(jù)記錄到存儲引擎私有的系統(tǒng)表中。
這也就促成了恢復(fù)時。兩邊一致的情形。索引不可用,并不會造成實例起不來。這很大程度上降低了之前使用innodb_force_recovery和innodb_fast_shutdown的必要。
提升了一致性。(對于一般DBA來說透明,知道有這么回事就好)
NoSQl操作
InnoDB memcached插件支持多個get操作(在單個memcached查詢中獲取多個鍵/值對)
和范圍查詢。(個人認(rèn)為這個挺牛逼,有點像NoSQL,不僅僅是NoSQL)。
需要安裝daemon_memcached插件,其中多了一個innodb_memcache schema,這個schema中有幾張表,其中一張containers用來與InnoDB表之間做映射,,
然后通過接口訪問Innodb表。然后會有一個11211的端口打開,用于建立連接。
好處是通過減少客戶端和服務(wù)器之間的通信流量,在單個memcached查詢中獲取多個鍵/值對的功能可以提高讀取性能。
對于InnoDB來說,也意味著更少的事務(wù)和開放式表操作。
死鎖檢測
新的動態(tài)配置選項innodb_deadlock_detect可用于禁用死鎖檢測,默認(rèn)打開。 在高并發(fā)系統(tǒng)上,當(dāng)大量線程等待相同的鎖時,死鎖檢測會導(dǎo)致速度下降。 有時,在死鎖發(fā)生時,
禁用死鎖檢測并依賴innodb_lock_wait_timeout設(shè)置進(jìn)行事務(wù)回滾可能更有效。記得之前版本遇到死鎖會自動回滾。以下截圖來自MySQL5.7,與8.0默認(rèn)相同。
(也就是說即便MySQL5.7也是有死鎖檢測的,并且自動回滾權(quán)重較小的事務(wù)(套死除外))。
嘗試更改innodb_deadlock_detect參數(shù)為OFF。則遇到死鎖時兩個工作線程都會被堵塞。直到innodb_lock_wait_timeout設(shè)定的鎖超時。
新的INFORMATION_SCHEMA.INNODB_CACHED_INDEXES表保存了Innodb索引緩存在Innodb buffer pool中的頁數(shù)。
現(xiàn)在,所有InnoDB臨時表都將在共享臨時表空間ibtmp1中創(chuàng)建。
加密特性
支持REDO和UNDO表空間加密。
共享鎖方面
InnoDB在?SELECT ... FOR SHARE?和?SELECT ... FOR UPDATE鎖定讀語句上?支持不等待(?NOWAIT)和跳過鎖(SKIP LOCKED)的選項。也就是說以往加了共享鎖之后必須手動釋放。
這里如果沒有鎖就返回結(jié)果,如果有就報下面錯誤。
如果是用有鎖就跳過,則無數(shù)據(jù)。
根據(jù)場景使用。反正都是秒回。降低了排查數(shù)據(jù)庫超時的可能。
本期目錄
DB-Engines數(shù)據(jù)庫排行榜
新聞快訊
一、RDBMS家族
二、NoSQL家族
三、NewSQL家族
四、時間序列
五、大數(shù)據(jù)生態(tài)圈
六、國產(chǎn)數(shù)據(jù)庫概覽
七、云數(shù)據(jù)庫
八、推出dbaplus Newsletter的想法
九、感謝名單
為方便閱讀、重點呈現(xiàn),本期Newsletter(2019年1月)將對各個板塊的內(nèi)容進(jìn)行精簡。需要閱讀全文的同學(xué)可點擊文末 【閱讀原文】 或登錄
進(jìn)行下載。
DB-Engines數(shù)據(jù)庫排行榜
以下取自2019年1月的數(shù)據(jù),具體信息可以參考,數(shù)據(jù)僅供參考。
DB-Engines排名的數(shù)據(jù)依據(jù)5個不同的因素:
新聞快訊
1、2018年9月24日,微軟公布了SQL Server2019預(yù)覽版,SQL Server 2019將結(jié)合Spark創(chuàng)建統(tǒng)一數(shù)據(jù)平臺。
2、2018年10月5日,ElasticSearch在美國紐約證券交易所上市。
3、亞馬遜放棄甲骨文數(shù)據(jù)庫軟件,導(dǎo)致最大倉庫之一在黃金時段宕機(jī)。受此消息影響,亞馬遜盤前股價小幅跳水,跌超2%。
4、2018年10月31日,Percona發(fā)布了Percona Server 8.0 RC版本,發(fā)布對MongoDB 4.0的支持,發(fā)布對XtraBackup測試第二個版本。
5、2018年10月31日,Gartner陸續(xù)發(fā)布了2018年的數(shù)據(jù)庫系列報告,包括《數(shù)據(jù)庫魔力象限》、《數(shù)據(jù)庫核心能力》以及《數(shù)據(jù)庫推薦報告》。
今年的總上榜數(shù)據(jù)庫產(chǎn)品達(dá)到了5家,分別來自:阿里云,華為,巨杉數(shù)據(jù)庫,騰訊云,星環(huán) 科技 。其中阿里云和巨杉數(shù)據(jù)庫已經(jīng)連續(xù)兩年入選。
6、2018年11月初,Neo4j宣布完成E輪8000萬美元融資。11月15日,Neo4j宣布企業(yè)版徹底閉源:
7、2019年1月8日,阿里巴巴以1.033億美元(9000萬歐元)的價格收購了Apache Flink商業(yè)公司DataArtisans。
8、2019年1月11日早間消息,亞馬遜宣布推出云數(shù)據(jù)庫軟件,亞馬遜和MongoDB將會直接競爭。
RDBMS家族
Oracle 發(fā)布18.3版本
2018年7月,Oracle Database 18.3通用版開始提供下載。我們可以將Oracle Database 18c視為采用之前發(fā)布模式的Oracle Database 12c第2版的第一個補丁集。未來,客戶將不再需要等待多年才能用上最新版Oracle數(shù)據(jù)庫,而是每年都可以期待新數(shù)據(jù)庫特性和增強。Database 19c將于2019年Q1率先在Oracle cloud上發(fā)布云版本。
Oracle Database 18c及19c部分關(guān)鍵功能:
1、性能
2、多租戶,大量功能增強及改進(jìn),大幅節(jié)省成本和提高敏捷性
3、高可用
4、數(shù)據(jù)倉庫和大數(shù)據(jù)
MySQL發(fā)布8.0.13版本
1、賬戶管理
經(jīng)過配置,修改密碼時,必須帶上原密碼。在之前的版本,用戶登錄之后,就可以修改自己的密碼。這種方式存在一定安全風(fēng)險。比如用戶登錄上數(shù)據(jù)庫后,中途離開一段時間,那么非法用戶可能會修改密碼。由參數(shù)password_require_current控制。
2、配置
Innodb表必須有主鍵。在用戶沒有指定主鍵時,系統(tǒng)會生成一個默認(rèn)的主鍵。但是在主從復(fù)制的場景下,默認(rèn)的主鍵,會對叢庫應(yīng)用速度帶來致命的影響。如果設(shè)置sql_require_primary_key,那么數(shù)據(jù)庫會強制用戶在創(chuàng)建表、修改表時,加上主鍵。
3、字段默認(rèn)值
BLOB、TEXT、GEOMETRY和JSON字段可以指定默認(rèn)值了。
4、優(yōu)化器
1)Skip Scan
非前綴索引也可以用了。
之前的版本,任何沒有帶上f1字段的查詢,都沒法使用索引。在新的版本中,它可以忽略前面的字段,讓這個查詢使用到索引。其實現(xiàn)原理就是把(f1 = 1 AND f2 40) 和(f1 = 2 AND f2 40)的查詢結(jié)果合并。
2)函數(shù)索引
之前版本只能基于某個列或者多個列加索引,但是不允許在上面做計算,如今這個限制消除了。
5、SQL語法
GROUP BY ASC和GROUP BY DESC語法已經(jīng)被廢棄,要想達(dá)到類似的效果,請使用GROUP BY ORDER BY ASC和GROUP BY ORDER BY DESC。
6、功能變化
1)設(shè)置用戶變量,請使用SET語句
如下類型語句將要被廢棄SELECT @var, @var:=@var+1。
2)新增innodb_fsync_threshold
該變量是控制文件刷新到磁盤的速率,防止磁盤在短時間內(nèi)飽和。
3)新增會話級臨時表空間
在以往的版本中,當(dāng)執(zhí)行SQL時,產(chǎn)生的臨時表都在全局表空間ibtmp1中,及時執(zhí)行結(jié)束,臨時表被釋放,空間不會被回收。新版本中,會為session從臨時表空間池中分配一個臨時表空間,當(dāng)連接斷開時,臨時表空間的磁盤空間被回收。
4)在線切換Group Replication的狀態(tài)
5)新增了group_replication_member_expel_timeout
之前,如果某個節(jié)點被懷疑有問題,在5秒檢測期結(jié)束之后,那么就直接被驅(qū)逐出這個集群。即使該節(jié)點恢復(fù)正常時,也不會再被加入集群。那么,瞬時的故障,會把某些節(jié)點驅(qū)逐出集群。
group_replication_member_expel_timeout讓管理員能更好的依據(jù)自身的場景,做出最合適的配置(建議配置時間小于一個小時)。
MariaDB 10.3版本功能展示
1、MariaDB 10.3支持update多表ORDER BY and LIMIT
1)update連表更新,limit語句
update t1 join t2 on t1.id=t2.id set t1.name='hechunyang' limit 3;
MySQL 8.0直接報錯
MariaDB 10.3更新成功
2)update連表更新,ORDER BY and LIMIT語句
update t1 join t2 on t1.id=t2.id set t1.name='HEchunyang' order by t1.id DESC limit 3;
MySQL 8.0直接報錯
MariaDB 10.3更新成功
參考:
2、MariaDB10.3增補AliSQL補丁——安全執(zhí)行Online DDL
Online DDL從名字上看很容易誤導(dǎo)新手,以為不論什么情況,修改表結(jié)構(gòu)都不會鎖表,理想很豐滿,現(xiàn)實很骨感,注意這個坑!
有以下兩種情況執(zhí)行DDL操作會鎖表的,Waiting for table metadata lock(元數(shù)據(jù)表鎖):
針對第二種情況,MariaDB10.3增補AliSQL補丁-DDL FAST FAIL,讓其DDL操作快速失敗。
例:
如果線上有某個慢SQL對該表進(jìn)行操作,可以使用WAIT n(以秒為單位設(shè)置等待)或NOWAIT在語句中顯式設(shè)置鎖等待超時,在這種情況下,如果無法獲取鎖,語句將立即失敗。 WAIT 0相當(dāng)于NOWAIT。
參考:
3、MariaDB Window Functions窗口函數(shù)分組取TOP N記錄
窗口函數(shù)在MariaDB10.2版本里實現(xiàn),其簡化了復(fù)雜SQL的撰寫,提高了可讀性。
參考:
Percona Server發(fā)布8.0 GA版本
2018年12月21日,Percona發(fā)布了Percona Server 8.0 GA版本。
在支持MySQL8.0社區(qū)的基礎(chǔ)版上,Percona Server for MySQL 8.0版本中帶來了許多新功能:
1、安全性和合規(guī)性
2、性能和可擴(kuò)展性
3、可觀察性和可用性
Percona Server for MySQL 8.0中將要被廢用功能:
Percona Server for MySQL 8.0中刪除的功能:
RocksDB發(fā)布V5.17.2版本
2018年10月24日,RocksDB發(fā)布V5.17.2版本。
RocksDB是Facebook在LevelDB基礎(chǔ)上用C++寫的高效內(nèi)嵌式K/V存儲引擎。相比LevelDB,RocksDB提供了Column-Family,TTL,Transaction,Merge等方面的支持。目前MyRocks,TiKV等底層的存儲都是基于RocksDB來構(gòu)建。
PostgreSQL發(fā)布11版本
2018年10月18日,PostgreSQL 11發(fā)布。
1、PostgreSQL 11的重大增強
2、PostgreSQL 插件動態(tài)
1)分布式插件citus發(fā)布 8.1
citus是PostgreSQL的一款sharding插件,目前國內(nèi)蘇寧、鐵總、探探有較大量使用案例。
2)地理信息插件postgis發(fā)布2.5.1
PostGIS是專業(yè)的時空數(shù)據(jù)庫插件,在測繪、航天、氣象、地震、國土資源、地圖等時空專業(yè)領(lǐng)域應(yīng)用廣泛。同時在互聯(lián)網(wǎng)行業(yè)也得到了對GIS有性能、功能深度要求的客戶青睞,比如共享出行、外賣等客戶。
3)時序插件timescale發(fā)布1.1.1
timescale是PostgreSQL的一款時序數(shù)據(jù)庫插件,在IoT行業(yè)中有非常好的應(yīng)用。github star數(shù)目前有5000多,是一個非?;鸨牟寮?。
4)流計算插件 pipelinedb 正式插件化
Pipelinedb是PostgreSQL的一款流計算插件,使用這個創(chuàng)建可以對高速寫入的數(shù)據(jù)進(jìn)行實時根據(jù)定義的聚合規(guī)則進(jìn)行聚合(支持概率計算),實時根據(jù)定義的規(guī)則觸發(fā)事件(支持事件處理函數(shù)的自定義)??捎糜贗oT,監(jiān)控,F(xiàn)EED實時計算等場景。
3、PostgreSQL衍生開源產(chǎn)品動態(tài)
1)agensgraph發(fā)布 2.0.0版本
agensgraph是兼容PostgreSQL、opencypher的專業(yè)圖數(shù)據(jù)庫,適合圖式關(guān)系的管理。
2)gpdb發(fā)布5.15
gpdb是兼容PostgreSQL的mpp數(shù)據(jù)庫,適合OLAP場景。近兩年,gpdb一直在追趕PostgreSQL的社區(qū)版本,預(yù)計很快會追上10的PostgreSQL,在TP方面的性能也會得到顯著提升。
3)antdb發(fā)布3.2
antdb是以Postgres-XC為基礎(chǔ)開發(fā)的一款PostgreSQL sharding數(shù)據(jù)庫,亞信主導(dǎo)開發(fā),開源,目前主要服務(wù)于亞信自有客戶。
4)遷移工具M(jìn)TK發(fā)布52版本
MTK是EDB提供的可以將Oracle、PostgreSQL、MySQL、MSSQL、Sybase數(shù)據(jù)庫遷移到PostgreSQL, PPAS的產(chǎn)品,遷移速度可以達(dá)到100萬行/s以上。
DB2發(fā)布 11.1.4.4版本
DB2最新發(fā)布Mod Pack 4 and Fix Pack 4,包含以下幾方面的改動及增強:
1、性能
2、高可用
3、管理視圖
4、應(yīng)用開發(fā)方面
5、聯(lián)邦功能
6、pureScale
NoSQL家族
Redis發(fā)布5.0.3版本
MongoDB升級更新MongoDB Mobile和MongoDB Stitch
2018年11月21日,MongoDB升級更新MongoDB Mobile和MongoDB Stitch,助力開發(fā)人員提升工作效率。
MongoDB 公司日前發(fā)布了多項新產(chǎn)品功能,旨在更好地幫助開發(fā)人員在世界各地管理數(shù)據(jù)。通過利用存儲在移動設(shè)備和后臺數(shù)據(jù)庫的數(shù)據(jù)之間的實時、自動的同步特性,MongoDB Mobile通用版本助力開發(fā)人員構(gòu)建更快捷、反應(yīng)更迅速的應(yīng)用程序。此前,這只能通過在移動應(yīng)用內(nèi)部安裝一個可供選擇或限定功能的數(shù)據(jù)庫來實現(xiàn)。
MongoDB Mobile在為客戶提供隨處運行的自由度方面更進(jìn)了一步。用戶在iOS和安卓終端設(shè)備上可擁有MongoDB所有功能,將網(wǎng)絡(luò)邊界擴(kuò)展到其物聯(lián)網(wǎng)資產(chǎn)范疇。應(yīng)用系統(tǒng)還可以使用MongoDB Stitch的軟件開發(fā)包訪問移動客戶端或后臺數(shù)據(jù),幫助開發(fā)人員通過他們希望的任意方式查詢移動終端數(shù)據(jù)和物聯(lián)網(wǎng)數(shù)據(jù),包括本地讀寫、本地JSON存儲、索引和聚合。通過Stitch移動同步功能(現(xiàn)可提供beta版),用戶可以自動對保存在本地的數(shù)據(jù)以及后臺數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行同步。
本期新秀:Cassandra發(fā)布3.11.3版本
2018年8月11日,Cassandra發(fā)布正式版3.11.3。
Apache Cassandra是一款開源分布式NoSQL數(shù)據(jù)庫系統(tǒng),使用了基于Google BigTable的數(shù)據(jù)模型,與面向行(row)的傳統(tǒng)關(guān)系型數(shù)據(jù)庫或鍵值存儲key-value數(shù)據(jù)庫不同,Cassandra使用的是寬列存儲模型(Wide Column Stores)。與BigTable和其模仿者HBase不同,數(shù)據(jù)并不存儲在分布式文件系統(tǒng)如GFS或HDFS中,而是直接存于本地。
Cassandra的系統(tǒng)架構(gòu)與Amazon DynamoDB類似,是基于一致性哈希的完全P2P架構(gòu),每行數(shù)據(jù)通過哈希來決定應(yīng)該存在哪個或哪些節(jié)點中。集群沒有master的概念,所有節(jié)點都是同樣的角色,徹底避免了整個系統(tǒng)的單點問題導(dǎo)致的不穩(wěn)定性,集群間的狀態(tài)同步通過Gossip協(xié)議來進(jìn)行P2P的通信。
3.11.3版本的一些bug fix和改進(jìn):
NewSQL家族
TiDB 發(fā)布2.1.2版本
2018 年 12 月 22 日,TiDB 發(fā)布 2.1.2 版,TiDB-Ansible 相應(yīng)發(fā)布 2.1.2 版本。該版本在 2.1.1 版的基礎(chǔ)上,對系統(tǒng)兼容性、穩(wěn)定性做出了改進(jìn)。
TiDB 是一款定位于在線事務(wù)處理/在線分析處理( HTAP: Hybrid Transactional/Analytical Processing)的融合型數(shù)據(jù)庫產(chǎn)品。除了底層的 RocksDB 存儲引擎之外,分布式SQL層、分布式KV存儲引擎(TiKV)完全自主設(shè)計和研發(fā)。
TiDB 完全開源,兼容MySQL協(xié)議和語法,可以簡單理解為一個可以無限水平擴(kuò)展的MySQL,并且提供分布式事務(wù)、跨節(jié)點 JOIN、吞吐和存儲容量水平擴(kuò)展、故障自恢復(fù)、高可用等優(yōu)異的特性;對業(yè)務(wù)沒有任何侵入性,簡化開發(fā),利于維護(hù)和平滑遷移。
TiDB:
PD:
TiKV:
Tools:
1)TiDB-Lightning
2)TiDB-Binlog
EsgynDB發(fā)布R2.5版本
2018年12月22日,EsgynDB R2.5版本正式發(fā)布。
作為企業(yè)級產(chǎn)品,EsgynDB 2.5向前邁進(jìn)了一大步,它擁有以下功能和改進(jìn):
CockroachDB發(fā)布2.1版本
2018年10月30日,CockroachDB正式發(fā)布2.1版本,其新增特性如下:
新增企業(yè)級特性:
新增SQL特性:
新增內(nèi)核特性:
Admin UI增強:
時間序列
本期新秀:TimescaleDB發(fā)布1.0版本
10月底,TimescaleDB 1.0宣布正式推出,官方表示該版本已可用于生產(chǎn)環(huán)境,支持完整SQL和擴(kuò)展。
TimescaleDB是基于PostgreSQL數(shù)據(jù)庫開發(fā)的一款時序數(shù)據(jù)庫,以插件化的形式打包提供,隨著PostgreSQL的版本升級而升級,不會因為另立分支帶來麻煩。
TimescaleDB架構(gòu):
數(shù)據(jù)自動按時間和空間分片(chunk)
更新亮點:
大數(shù)據(jù)生態(tài)圈
Hadoop發(fā)布2.9.2版本
2018年11月中旬,Hadoop在2.9分支上發(fā)布了新的2.9.2版本,該版本進(jìn)行了204個大大小小的變更,主要變更如下:
Greenplum 發(fā)布5.15版本
Greenplum最新的5.15版本中發(fā)布了流式數(shù)據(jù)加載工具。
該版本中的Greenplum Streem Server組件已經(jīng)集成了Kafka流式加載功能,并通過了Confluent官方的集成認(rèn)證,其支持的主要功能如下:
國產(chǎn)數(shù)據(jù)庫概覽
K-DB發(fā)布數(shù)據(jù)庫一體機(jī)版
2018年11月7日,K-DB發(fā)布了數(shù)據(jù)庫一體機(jī)版。該版本更新情況如下:
OceanBase遷移服務(wù)發(fā)布1.0版本
1月4日,OceanBase 正式發(fā)布OMS遷移服務(wù)1.0版本。
以下內(nèi)容包含 OceanBase 遷移服務(wù)的重要特性和功能:
SequoiaDB發(fā)布3.0.1新版本
1、架構(gòu)
1)完整計算存儲分離架構(gòu),兼容MySQL協(xié)議、語法
計算存儲分離體系以松耦合的方式將計算與存儲層分別部署,通過標(biāo)準(zhǔn)接口或插件對各個模塊和組件進(jìn)行無縫替換,在計算層與存儲層均可實現(xiàn)自由的彈性伸縮。
SequoiaDB巨杉數(shù)據(jù)庫“計算-存儲分離”架構(gòu)詳細(xì)示意
用戶可以根據(jù)自身業(yè)務(wù)特征選擇面向交易的SQL解析器(例如MySQL或PGSQL)或面向統(tǒng)計分析的執(zhí)行引擎(例如SparkSQL)。眾所周知,使用不同的SQL優(yōu)化與執(zhí)行方式,數(shù)據(jù)庫的訪問性能可能會存在上千上萬倍的差距。計算存儲分離的核心思想便是在數(shù)據(jù)存儲層面進(jìn)行一體化存儲,在計算層面則利用每種執(zhí)行引擎的特點針對不同業(yè)務(wù)場景進(jìn)行選擇和優(yōu)化,用戶可以在存儲層進(jìn)行邏輯與物理的隔離,將面向高頻交易的前端業(yè)務(wù)與面向高吞吐量的統(tǒng)計分析使用不同的硬件進(jìn)行存儲,確保在多類型數(shù)據(jù)訪問時互不干擾,以真正達(dá)到生產(chǎn)環(huán)境可用的多租戶與HTAP能力。
2、其他更新信息
1)接口變更:
2)主要特性:
云數(shù)據(jù)庫
本期新秀:騰訊發(fā)布數(shù)據(jù)庫CynosDB,開啟公測
1、News
1)騰訊云數(shù)據(jù)庫MySQL2018年重大更新:
2)騰訊云數(shù)據(jù)庫MongoDB2018年重大更新:
3)騰訊云數(shù)據(jù)庫Redis/CKV+2018年重大更新:
4)騰訊云數(shù)據(jù)庫CTSDB2018年重大更新:
2、Redis 4.0集群版商業(yè)化上線
2018年10月,騰訊云數(shù)據(jù)庫Redis 4.0集群版完成邀測、公測、商業(yè)化三個迭代,在廣州、上海、北京正式全量商業(yè)化上線。
產(chǎn)品特性:
使用場景:
官網(wǎng)文檔:
3、騰訊自研數(shù)據(jù)庫CynosDB發(fā)布,開啟公測
2018年11月22日,騰訊云召開新一代自研數(shù)據(jù)庫CynosDB發(fā)布會,業(yè)界第一款全面兼容市面上兩大最主流的開源數(shù)據(jù)庫MySQL和PostgreSQL的高性能企業(yè)級分布式云數(shù)據(jù)庫。
本期新秀:京東云DRDS發(fā)布1.0版本
12月24日,京東云分布式關(guān)系型數(shù)據(jù)庫DRDS正式發(fā)布1.0版本。
DRDS是京東云精心自研的數(shù)據(jù)庫中間件產(chǎn)品,獲得了2018年 ”可信云技術(shù)創(chuàng)新獎”。DRDS可實現(xiàn)海量數(shù)據(jù)下的自動分庫分表,具有高性能,分布式,彈性升級,兼容MySQL等優(yōu)點,適用于高并發(fā)、大規(guī)模數(shù)據(jù)的在線交易, 歷史 數(shù)據(jù)查詢,自動數(shù)據(jù)分片等業(yè)務(wù)場景,歷經(jīng)多次618,雙十一的考驗,已經(jīng)在京東集團(tuán)內(nèi)大規(guī)模使用。
京東云DRDS產(chǎn)品有以下主要特性
1)自動分庫分表
通過簡單的定義即可自動實現(xiàn)分庫分表,將數(shù)據(jù)實際存放在多個MySQL實例的數(shù)據(jù)庫中,但呈現(xiàn)給應(yīng)用程序的依舊是一張表,對業(yè)務(wù)透明,應(yīng)用程序幾乎無需改動,實現(xiàn)了對數(shù)據(jù)庫存儲和處理能力的水平擴(kuò)展。
2)分布式架構(gòu)
基于分布式架構(gòu)的集群方案,多個對等節(jié)點同時對外提供服務(wù),不但可有效規(guī)避服務(wù)的單點故障,而且更加容易擴(kuò)展。
3)超強性能
具有極高的處理能力,雙節(jié)點即可支持?jǐn)?shù)萬QPS,滿足用戶超大規(guī)模處理能力的需求。
4)兼容MySQL
兼容絕大部分MySQL語法,包括MySQL語法、數(shù)據(jù)類型、索引、常用函數(shù)、排序、關(guān)聯(lián)等DDL,DML語句,使用成本低。
參考鏈接:
RadonDB發(fā)布1.0.3版本
2018年12月26日,MyNewSQL領(lǐng)域的RadonDB云數(shù)據(jù)庫發(fā)布1.0.3版本。
推出dbaplus Newsletter的想法
dbaplus Newsletter旨在向廣大技術(shù)愛好者提供數(shù)據(jù)庫行業(yè)的最新技術(shù)發(fā)展趨勢,為社區(qū)的技術(shù)發(fā)展提供一個統(tǒng)一的發(fā)聲平臺。為此,我們策劃了RDBMS、NoSQL、NewSQL、時間序列、大數(shù)據(jù)生態(tài)圈、國產(chǎn)數(shù)據(jù)庫、云數(shù)據(jù)庫等幾個版塊。
我們不以商業(yè)宣傳為目的,不接受任何商業(yè)廣告宣傳,嚴(yán)格審查信息源的可信度和準(zhǔn)確性,力爭為大家提供一個純凈的技術(shù)學(xué)習(xí)環(huán)境,歡迎大家監(jiān)督指正。
至于Newsletter發(fā)布的周期,目前計劃是每三個月左右會做一次跟進(jìn), 下期計劃時間是2019年4月14日~4月25日, 如果有相關(guān)的信息提供請發(fā)送至郵箱:newsletter@dbaplus.cn
感謝名單
最后要感謝那些提供寶貴信息和建議的專家朋友,排名不分先后。
往期回顧:
↓↓別忘了點這里下載 2019年1月 完整版Newsletter 哦~