chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么Uber的底層存儲(chǔ)從Postgres換成MySQL了呢?

jf_ro2CN3Fa ? 來(lái)源:足下 ? 2023-08-07 10:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來(lái)源:www.infoq.cn/article/underlying -storage-of-uber-change-from-mysql -to-postgres

背景

早期的 Uber 后臺(tái)軟件由 Python 寫(xiě)成,數(shù)據(jù)存儲(chǔ)使用 Postgres。后期隨著業(yè)務(wù)的飛速發(fā)展后臺(tái)架構(gòu)也變化巨大,演進(jìn)成了微服務(wù)加數(shù)據(jù)平臺(tái)。數(shù)據(jù)存儲(chǔ)也由 Postgres 變成了 Schemalesshttps://eng.uber.com/schemaless-part-one/——Uber 自主研發(fā)的以 MySQL 做為底層的高可用數(shù)據(jù)庫(kù)。Uber 的數(shù)據(jù)庫(kù)主要存儲(chǔ)的是 Trip 數(shù)據(jù),就是一個(gè)叫車(chē)訂單從下單起,到上車(chē)、下車(chē)、付費(fèi)等的全過(guò)程跟蹤及處理。從 2014 年初起,由于業(yè)務(wù)增長(zhǎng)迅猛,Uber 的原有基礎(chǔ)架構(gòu)已經(jīng)無(wú)法繼續(xù)支撐業(yè)務(wù)。改進(jìn)的項(xiàng)目花了將近一年時(shí)間。

b669bc22-3400-11ee-9e74-dac502259ad0.png

對(duì)于新的數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng),Uber 的主要關(guān)鍵需求是:

要有能力通過(guò)增加服務(wù)器而線(xiàn)性地增加容量。增加服務(wù)器不但要增加可用的硬盤(pán)容量,還要減少系統(tǒng)的響應(yīng)時(shí)間。

需要有寫(xiě)緩沖能力,萬(wàn)一持久化到數(shù)據(jù)庫(kù)失敗時(shí),仍可以稍后重試。

需要通知下游依賴(lài)關(guān)系的方式,數(shù)據(jù)變更要能無(wú)損的通知出去。

需要二級(jí)索引。

系統(tǒng)要足夠健壯,可以支持 7*24 服務(wù)。

在調(diào)查對(duì)比了 Cassandra、Riak 和 MongoDB 等等之后,Uber 技術(shù)團(tuán)隊(duì)沒(méi)有發(fā)現(xiàn)能完全滿(mǎn)足需求的現(xiàn)成解決方案。而再考慮到數(shù)據(jù)可靠性、對(duì)技術(shù)的把握能力等因素,他們決定自己開(kāi)發(fā)一套數(shù)據(jù)庫(kù)管理系統(tǒng)——Schemaless,一個(gè)鍵值型存儲(chǔ)庫(kù),可以存放 JSON 數(shù)據(jù)而無(wú)需嚴(yán)格的模式驗(yàn)證,是完全的無(wú)模式風(fēng)格。用 MySQL 作底層存儲(chǔ),其中只有順序?qū)懭耄?MySQL 主庫(kù)故障時(shí)支持寫(xiě)入緩沖。并有一個(gè)數(shù)據(jù)變更通知的發(fā)布 - 訂閱功能(命名為 trigger),支持?jǐn)?shù)據(jù)的全局索引。

Schemaless 的強(qiáng)大與簡(jiǎn)單更多是因?yàn)槲覀冊(cè)诖鎯?chǔ)節(jié)點(diǎn)中使用了 MySQL。Schemaless 本身是在 MySQL 之上相對(duì)較薄的一層,負(fù)責(zé)將路由請(qǐng)求發(fā)送給正確的數(shù)據(jù)庫(kù)。借助于 MySQL 第二索引及 InnoDB 的 BufferPool,Schemaless 的查詢(xún)性能很高。

寫(xiě)入效率不高

數(shù)據(jù)主從復(fù)制效率不高

表?yè)p壞問(wèn)題

難于升級(jí)到新版本

在 Postgres 的底層設(shè)計(jì)中,它的行數(shù)據(jù)是不可修改的,每個(gè)不可修改的行都叫做“元組”,每個(gè)唯一的元組都由一個(gè)唯一的 標(biāo)志,ctid 也就實(shí)際指出了這個(gè)元組在磁盤(pán)上的物理偏移量。這樣對(duì)于一行修改過(guò)的數(shù)據(jù)來(lái)說(shuō),就會(huì)對(duì)應(yīng)著在物理上有多個(gè)元組。表是有索引的,主鍵索引和第二索引都以 B 樹(shù)組織,都直接指向 ctid。

除了 ctid 之外還有一個(gè)關(guān)鍵字段 prev,它的默認(rèn)值為 null,但對(duì)于有數(shù)據(jù)修改的記錄,新的元組里面的 prev 字段里存儲(chǔ)的就是舊元組的 ctid 值。

b6895424-3400-11ee-9e74-dac502259ad0.png

與 Postgres 相對(duì)應(yīng)的是,MySQL 的 InnoDB 引擎主鍵索引和第二也都以 B 樹(shù)組織,但是索引指向的是主鍵,而主鍵才真正指向數(shù)據(jù)記錄。而且,InnoDB 的數(shù)據(jù)是可以修改的。兩者實(shí)現(xiàn) MVCC 的機(jī)制不同,MySQL 依靠 UNDO 空間中的回滾段,而不是象Postgres 依靠在數(shù)據(jù)表空間對(duì)同一條數(shù)據(jù)保持多份。

b6b06cf8-3400-11ee-9e74-dac502259ad0.png

Postgres 和 InnoDB 都通過(guò) WAL來(lái)保證數(shù)據(jù)可以在數(shù)據(jù)庫(kù)上安全寫(xiě)入,但對(duì)于主從庫(kù)的數(shù)據(jù)復(fù)制實(shí)現(xiàn)原理并不同。Postgres 會(huì)直接把 WAL 發(fā)送到從庫(kù)上,讓從庫(kù)也執(zhí)行 WAL 來(lái)復(fù)制數(shù)據(jù)。而 MySQL 則是發(fā)送 Binlog,在從庫(kù)上應(yīng)用 Binlog。

由此,再來(lái)看看 Uber 對(duì)于 Postgres 有哪些不滿(mǎn)意:

寫(xiě)放大

一般來(lái)說(shuō)大家介意寫(xiě)放大https://en.wikipedia.org/wiki/Write_amplification的問(wèn)題是由于對(duì)SSD 磁盤(pán)的使用。SSD 磁盤(pán)是有壽命的,它的寫(xiě)入次數(shù)是有限的(雖然數(shù)字很大)。這樣如果應(yīng)用層只是想寫(xiě)入少量數(shù)據(jù)而已,但數(shù)據(jù)落入磁盤(pán)時(shí)卻變大了許多倍,那大家就會(huì)比較介意了。比如你只是想寫(xiě)入1K 的數(shù)據(jù),可是最終卻有10K 數(shù)據(jù)落盤(pán)。

Postgres 的寫(xiě)放大問(wèn)題主要表現(xiàn)在對(duì)有索引的表進(jìn)行數(shù)據(jù)更新上。因?yàn)?Postgres 的索引都是指向元組的 ctid,而元組又是不可更新的,所以當(dāng)你更新一條記錄時(shí),它會(huì)創(chuàng)建一個(gè)新的元組存入磁盤(pán),并且要針對(duì)所有的索引,為每個(gè)索引都創(chuàng)建一條新記錄來(lái)指向新的元組,不管你更改的字段和這個(gè)索引有沒(méi)有關(guān)系。這樣對(duì)于 WAL 來(lái)說(shuō),Postgres 更改一條記錄操作會(huì)寫(xiě)入新的完整記錄,再加上多條索引記錄。

「作者注」 :不過(guò) MySQL 的 InnoDB 其實(shí)也是有寫(xiě)放大問(wèn)題的。InnoDB 是以數(shù)據(jù)頁(yè)的形式組織數(shù)據(jù)的,Linux 上默認(rèn)數(shù)據(jù)頁(yè)的大小是 16K。這樣當(dāng)你更改了一條記錄時(shí),最終會(huì)把這條記錄所在的數(shù)據(jù)頁(yè)整頁(yè)刷回磁盤(pán),設(shè)想一下你可能只是改了一個(gè)小字段,也許只有 4 個(gè)字節(jié),可是最終卻會(huì)導(dǎo)致 16K 字節(jié)的寫(xiě)入。

另外,Postgres 的這個(gè)設(shè)計(jì)也是有其好處的,它的第二索引直接指向元組的 ctid,這樣在讀取數(shù)據(jù)時(shí)效率就非常高。相對(duì)應(yīng)地,通過(guò) MySQL 的第二索引去讀數(shù)據(jù)會(huì)經(jīng)歷“第二索引——主鍵——數(shù)據(jù)”的過(guò)程,MySQL 的讀效率不如 Postgres。這是一個(gè)經(jīng)典的讀寫(xiě)性能權(quán)衡問(wèn)題,在此 Evan 沒(méi)有給出具體的數(shù)字讓我們體會(huì)他們的業(yè)務(wù)特征。

主從復(fù)制

Postgres 的寫(xiě)放大問(wèn)題最終也反應(yīng)在了主從復(fù)制的日志傳輸上,變成了流量放大問(wèn)題。Postgres 的主從復(fù)制傳輸?shù)氖?WAL 日志,所以對(duì)于一條數(shù)據(jù)更新來(lái)說(shuō),它要傳輸新的數(shù)據(jù),還要傳輸這張表上每一條索引修改的日志。這樣的流量放大在同一機(jī)房?jī)?nèi)還稍可接受,但對(duì)于跨機(jī)房的情況,傳輸速度和價(jià)格等問(wèn)題讓 Uber 產(chǎn)生了顧慮。Uber 是有跨機(jī)房從庫(kù)的,一方面是容災(zāi),另一方面是 WAL 的備份,以備有時(shí)需要靠它來(lái)搭建新的從庫(kù)。

MySQL 的確沒(méi)有引起流量放大。MySQL 的主從復(fù)制依靠的是 Binlog,它只是記錄這條數(shù)據(jù)的修改,而不在乎這張表上到底有多少索引,所以可以認(rèn)為與 Postgres 相比,它的 Binlog 是一種對(duì)數(shù)據(jù)修改的“邏輯”描述。MySQL 從庫(kù)上應(yīng)用 Binlog 日志時(shí),如果有第二索引涉及了改動(dòng)的字段,那就更新第二索引,否則第二索引壓根不需要修改。而且,MySQL 有三種不同的 Binlog 格式,包含了不同數(shù)量的信息來(lái)供使用者選擇:

Statement:只傳輸 DML 的 SQL 語(yǔ)句,如:UPDATE users SET birth_year=770 WHERE id = 4。這種模式日志量最小,但在某些場(chǎng)景下和對(duì)某些字段來(lái)說(shuō)容易出錯(cuò)。

Row:對(duì)于更改了的數(shù)據(jù),會(huì)把修改前和修改后的所有字段值都打印在 Binlog 中。這種模式日志量最大,但也最嚴(yán)謹(jǐn),越來(lái)越多的公司在轉(zhuǎn)向這種日志格式。很多日志解析工具更是只工作在這種模式下。

Mixed:上面兩種的結(jié)合體,MySQL 會(huì)根據(jù)不同的語(yǔ)句來(lái)自行判斷。這種模式日志量居中。

數(shù)據(jù)損壞

Uber 使用 Postgres 9.2 時(shí)曾經(jīng)因?yàn)橐粋€(gè) BUG 導(dǎo)致了很大的故障。當(dāng)時(shí)由于硬件升級(jí)的原因他們做了主從切換,結(jié)果就引發(fā)了這個(gè) BUG 導(dǎo)致各個(gè)從庫(kù)的數(shù)據(jù)全都亂掉了,而且還沒(méi)有辦法判斷哪個(gè)從庫(kù)的哪些數(shù)據(jù)是正確的或者亂的。最終他們確認(rèn)了新的主庫(kù)上的數(shù)據(jù)全部正確后,用新主庫(kù)的數(shù)據(jù)把所有從庫(kù)數(shù)據(jù)全覆蓋了一遍,才算過(guò)了這一關(guān)??墒且怀簧咭昱戮K,他們最后用的版本仍是 Postgres 9.2,原因之一是不想再去踩別的版本的坑了。

「作者注」 :以這個(gè)作為拋棄 Postgres 的理由就太容易引起爭(zhēng)議、令人質(zhì)疑 Uber 技術(shù)團(tuán)隊(duì)的技術(shù)水平了。在社區(qū)的口碑中,Postgres 的穩(wěn)定性恰恰是高于 MySQL 的,如果因?yàn)楹ε屡錾?Postgres 的 BUG 而轉(zhuǎn)用 MySQL,那……我們只好祝福 Uber 了。

從庫(kù)上的 MVCC 支持不好

Postgres 的從庫(kù)上并沒(méi)有真正的 MVCC,它的數(shù)據(jù)表空間、表空間文件內(nèi)容和主庫(kù)是完全一樣的,在從庫(kù)上就是依次應(yīng)用 WAL??扇绻麖膸?kù)上有一個(gè)正在進(jìn)行中的事務(wù)的話(huà),它就會(huì)擋住 WAL 的應(yīng)用,從而導(dǎo)致看起來(lái)主從同步延遲很大。Postgres 實(shí)現(xiàn)了一個(gè)機(jī)制,如果某個(gè)業(yè)務(wù)程序的事務(wù)擋住同步線(xiàn)程太久的話(huà),就直接將那個(gè)事務(wù)殺掉。所以如果在從庫(kù)上有一些比較大的事務(wù)在運(yùn)行的話(huà),你可能就會(huì)經(jīng)??匆?jiàn)莫名其妙的主從同步就延遲了,也會(huì)看見(jiàn)自己的操作運(yùn)行了一段時(shí)間就不知被誰(shuí)殺掉了。并不是每個(gè)程序員都很熟悉數(shù)據(jù)庫(kù)的底層工作機(jī)制,所以這些現(xiàn)象會(huì)讓大家覺(jué)得很詭異。

「作者注」 :這一點(diǎn)的確是的。相比來(lái)說(shuō)對(duì)于這個(gè) Postgres 的復(fù)制過(guò)程,MySQL 的主從復(fù)制并不會(huì)殺死從庫(kù)上的事務(wù)。

Postgres 數(shù)據(jù)庫(kù)的升級(jí)

Postgres 的數(shù)據(jù)復(fù)制是物理級(jí)的,主從數(shù)據(jù)文件完全一致,所以不能支持不同版本之間的主從復(fù)制,比如主庫(kù)使用 9.2 從庫(kù)使用 9.3,或者相反,等等。Uber 最初使用的是 Postgres 9.1,他們成功的升級(jí)成了 9.2,但升級(jí)耗費(fèi)了相當(dāng)長(zhǎng)的時(shí)間,再加上后來(lái)業(yè)務(wù)爆發(fā)式增長(zhǎng),讓他們?cè)僖矝](méi)能安排下一次升級(jí)。而且 Postgres 直到 9.4 之后才有了工具 pglogical來(lái)幫助減少升級(jí)耗時(shí),可是 pglogical 又不在 Postgres 主分支里,讓使用舊版本的人無(wú)所適從。

「作者注」 :有消息 Postgres 的 WAL 日志也將變成邏輯型了,在這樣的功能推出之后,就可以支持不同版本間的數(shù)據(jù)復(fù)制了。

MySQL 的其他優(yōu)點(diǎn)

除了上文所述的幾點(diǎn),MySQL 還有幾個(gè)其他 Postgres 不具備的優(yōu)點(diǎn):

BufferPoolhttps://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool.html:雖然 Postgres 在內(nèi)部有比較小的緩存,但和現(xiàn)在動(dòng)輒幾百 G 的服務(wù)器內(nèi)存比起來(lái),它的緩存還是太小,對(duì)硬件利用率太低了。InnoDB 則有 BufferPool,可以同時(shí)用于寫(xiě)緩沖和讀緩存,用 LRU 管理,大小可配,這樣就把硬件資源充分合理的利用起來(lái)了。

連接管理:MySQL 的連接管理是每個(gè)連接一個(gè)線(xiàn)程,每個(gè)線(xiàn)程消耗的資源都很有限,所以 MySQL 可以輕松支持 10000 個(gè)以上的連接。可是 Postgres 是每個(gè)連接一個(gè)進(jìn)程的,進(jìn)程之間通信和共享資源復(fù)雜,消耗資源嚴(yán)重,而且對(duì)多連接支持不好。Uber 的業(yè)務(wù)已經(jīng)需要極大的增加數(shù)據(jù)庫(kù)連接數(shù),Postgres 已經(jīng)無(wú)法滿(mǎn)足需要。

Evan Klitzke 總結(jié)說(shuō):

在初期 Postgres 還是工作得很好的,但業(yè)務(wù)擴(kuò)展時(shí)我們就碰上了非常嚴(yán)重的問(wèn)題?,F(xiàn)在我們還是在用著一些 Postgres 數(shù)據(jù)庫(kù),但是主要的數(shù)據(jù)已經(jīng)挪到了 Schemaless 上,有些特別的業(yè)務(wù)也用了 Cassandra 等 NoSQL 數(shù)據(jù)庫(kù)。我們現(xiàn)在用 MySQL 用得很好,我們也會(huì)寫(xiě)更多的博客來(lái)分享更多關(guān)于 MySQL 在 Uber 的使用內(nèi)容。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7653

    瀏覽量

    167411
  • 緩沖器
    +關(guān)注

    關(guān)注

    6

    文章

    2056

    瀏覽量

    47030
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86758
  • MYSQL數(shù)據(jù)庫(kù)

    關(guān)注

    0

    文章

    96

    瀏覽量

    9883
  • MVCC
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    1546

原文標(biāo)題:為什么Uber的底層存儲(chǔ)從Postgres換成MySQL了?

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    mysql存儲(chǔ)引擎選擇方法

    mysql怎么選擇合適的存儲(chǔ)引擎
    發(fā)表于 08-08 07:26

    MySql存儲(chǔ)過(guò)程是什么?

    MySql——存儲(chǔ)過(guò)程
    發(fā)表于 11-06 09:26

    mysql存儲(chǔ)過(guò)程和函數(shù)是什么

    mysql存儲(chǔ)過(guò)程和函數(shù)
    發(fā)表于 05-13 11:51

    MySQL數(shù)據(jù)庫(kù)索引的底層是怎么實(shí)現(xiàn)的

    更低,3次磁盤(pán)IO即可。好的數(shù)據(jù)結(jié)構(gòu),應(yīng)該是能盡量減少磁盤(pán)IO的次數(shù)。既然B樹(shù)和B+樹(shù)的一個(gè)節(jié)點(diǎn)可以存儲(chǔ)多個(gè)節(jié)點(diǎn)。這個(gè)存儲(chǔ)的節(jié)點(diǎn)數(shù)量是看節(jié)點(diǎn)大小和系統(tǒng)配置來(lái)計(jì)算的。舉例:部署mysql
    發(fā)表于 07-28 15:30

    什么是Postgres?Postgres是什么意思

    Postgres 傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng) ( DBMS ) 支持一個(gè)由命名關(guān)系(表)組成的集合(包括特定類(lèi)型的屬性/字段)組成的數(shù)據(jù)模型.在現(xiàn)代的商用系統(tǒng)中,可能的類(lèi)型通常
    發(fā)表于 12-26 14:04 ?7443次閱讀

    MySQL5新特性之存儲(chǔ)過(guò)程

    MySQL5新特性之存儲(chǔ)過(guò)程 MySQL5新特性之存儲(chǔ)過(guò)程 MySQL5新特性之存儲(chǔ)過(guò)程
    發(fā)表于 06-12 10:08 ?0次下載

    MySQLPostgres兩大免費(fèi)數(shù)據(jù)庫(kù)大不同

    7月末,優(yōu)步公司宣布將數(shù)據(jù)庫(kù)Postgres切換到MySQL,個(gè)中原因又是什么?
    發(fā)表于 08-01 10:40 ?3334次閱讀

    Uber為什么Postgres遷移到MySQL

    導(dǎo)論 Uber的早期架構(gòu)由一個(gè)單體后端應(yīng)用程序構(gòu)成,該應(yīng)用由Python編寫(xiě),Python使用Postgres以實(shí)現(xiàn)數(shù)據(jù)持久化。自那時(shí)起,Uber架構(gòu)已發(fā)生巨變,逐步轉(zhuǎn)化為微服務(wù)模式和新的數(shù)據(jù)平臺(tái)
    發(fā)表于 09-30 14:45 ?4次下載
    <b class='flag-5'>Uber</b>為什么<b class='flag-5'>從</b><b class='flag-5'>Postgres</b>遷移到<b class='flag-5'>MySQL</b>

    MySQL5新特性之存儲(chǔ)過(guò)程

    MySQL 5.0 存儲(chǔ)過(guò)程
    發(fā)表于 11-23 10:55 ?9次下載

    怎樣選擇存儲(chǔ)引擎?MySQL存儲(chǔ)引擎怎么樣?

    MySQL是我們經(jīng)常使用的數(shù)據(jù)庫(kù)處理系統(tǒng)(DBMS),不知小伙伴們有沒(méi)有注意過(guò)其中的“存儲(chǔ)引擎”(storage_engine)?有時(shí)候面試題中也會(huì)問(wèn)道MySQL幾種常用的
    的頭像 發(fā)表于 09-02 10:15 ?5178次閱讀

    MySQL數(shù)據(jù)庫(kù):理解MySQL的性能優(yōu)化、優(yōu)化查詢(xún)

    最近一直在為大家更新MySQL相關(guān)學(xué)習(xí)內(nèi)容,可能有朋友不懂MySQL的重要性。在程序,語(yǔ)言,架構(gòu)更新?lián)Q代頻繁的今天,MySQL 恐怕是大家使用最多的存儲(chǔ)數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 07-02 17:18 ?3359次閱讀
    <b class='flag-5'>MySQL</b>數(shù)據(jù)庫(kù):理解<b class='flag-5'>MySQL</b>的性能優(yōu)化、優(yōu)化查詢(xún)

    MySQL底層原理和技術(shù)學(xué)習(xí)

    很多小伙伴工作很長(zhǎng)時(shí)間,對(duì)于MySQL的掌握程度卻僅僅停留在表面的CRUD,對(duì)于MySQL深層次的原理和技術(shù)知識(shí)了解的少之又少,隨著工作年限的不斷增長(zhǎng),職場(chǎng)競(jìng)爭(zhēng)力卻是不斷降低的。很多時(shí)候,出去
    的頭像 發(fā)表于 04-06 16:51 ?3240次閱讀

    如何使用WINDAQ MySQL存儲(chǔ)數(shù)據(jù)

    MySQL數(shù)據(jù)庫(kù)可以存儲(chǔ)比Microsoft Excel電子表格多30,000倍的數(shù)據(jù)。用于 結(jié)合WinDaq/Lite,Pro或Pro+,WinDaq / MySQL對(duì)于那些需要存儲(chǔ)
    的頭像 發(fā)表于 12-02 16:29 ?1154次閱讀
    如何使用WINDAQ <b class='flag-5'>MySQL</b><b class='flag-5'>存儲(chǔ)</b>數(shù)據(jù)

    剖析MySQL InnoDB存儲(chǔ)原理(上)

    一、MySQL記錄的存儲(chǔ)結(jié)構(gòu): 1、Page的結(jié)構(gòu),如下圖:
    的頭像 發(fā)表于 02-15 15:45 ?620次閱讀
    剖析<b class='flag-5'>MySQL</b> InnoDB<b class='flag-5'>存儲(chǔ)</b>原理(上)

    GitHub底層數(shù)據(jù)庫(kù)無(wú)縫升級(jí)到MySQL 8.0的經(jīng)驗(yàn)

    GitHub 團(tuán)隊(duì)近日分享他們將 GitHub.com 的底層數(shù)據(jù)庫(kù)無(wú)縫升級(jí)到 MySQL 8.0 的經(jīng)驗(yàn)。 據(jù)介紹,GitHub 使用 MySQL 來(lái)
    的頭像 發(fā)表于 12-13 10:21 ?817次閱讀
    GitHub<b class='flag-5'>底層</b>數(shù)據(jù)庫(kù)無(wú)縫升級(jí)到<b class='flag-5'>MySQL</b> 8.0的經(jīng)驗(yàn)