優(yōu)步(Uber)近日在博客中宣布已經(jīng)把數(shù)據(jù)庫從Postgres切換到了MySQL,該公司負(fù)責(zé)的工程師表示,本次切換數(shù)據(jù)庫主要原因就在于應(yīng)用架構(gòu)已發(fā)生改變,轉(zhuǎn)變到了微服務(wù)模型和新的數(shù)據(jù)平臺。
從博客中得知,Uber早期架構(gòu)是由Python語言編寫的后端應(yīng)用構(gòu)成,使用了Postgres數(shù)據(jù)庫。但由于隨后優(yōu)步應(yīng)用的架構(gòu)發(fā)生明顯改變,轉(zhuǎn)型為微服務(wù)模型和新數(shù)據(jù)平臺,因此需要改用基于MySQL的數(shù)據(jù)庫分片層。切換到Schemaless和其它基于MySQL的后端服務(wù)最主要的原因是Postgres數(shù)據(jù)復(fù)制效率低下,需要重寫每一個行索引,而MySQL只更新改變的索引。
Uber切換數(shù)據(jù)庫和日益增長的業(yè)務(wù)需求也有直接關(guān)系,特別是在該公司進入中國后,業(yè)務(wù)量今非昔比,因此使用更加合理高效的數(shù)據(jù)庫尤為重要,這對于公司和用戶都大有好處。