近日,MySQL 5.7停服事件引發(fā)廣泛關(guān)注。MySQL目前已經(jīng)成為中國用戶(hù)使用非常廣泛的數據庫,其中5.7版本的用戶(hù)比重又是最高的。隨著(zhù)信息技術(shù)應用創(chuàng )新深入各行各業(yè),國產(chǎn)數據庫對MySQL的平滑替換成為大勢所趨。
作為數據庫領(lǐng)域國家隊,人大金倉以服務(wù)用戶(hù)為中心,率先加大對MySQL兼容性開(kāi)發(fā),目前對MySQL常用功能的兼容性已達到90%以上。此外KingbaseES對MySQL的兼容性,已從功能兼容階段過(guò)渡到強性能兼容、生態(tài)全面兼容階段,做到在遷移過(guò)程中對上層應用透明,實(shí)現低成本、低難度、低風(fēng)險的平滑遷移。
靈活擴展的兼容架構
KingbaseES在產(chǎn)品架構上采用可插拔式的體系架構,可靈活擴展,兼容多種生態(tài),兼容商業(yè)和開(kāi)源的外部接口協(xié)議,能夠支撐更多核心能力。
KingbaseES支持通過(guò)控制參數“initdb -m”切換兼容模式,可將數據庫設置為兼容MySQL模式。
全面完備的兼容能力
KingbaseES以?xún)群思嫒轂榛A,通過(guò)初始化參數控制,兼容MySQL 數據庫,在該模式下支持MySQL常用功能,兼容程度達90%以上。
數據類(lèi)型兼容
數據遷移中,數據類(lèi)型的兼容性作為最重要的一環(huán),KingbaseES不僅兼容MySQL所有常見(jiàn)數據類(lèi)型,還支持MySQL獨有的year類(lèi)型、interval類(lèi)型的復雜語(yǔ)法。
此外,KingbaseES還兼容enum類(lèi)型、set類(lèi)型,應用中使用該類(lèi)型,可以減少字段的數量,減少存儲空間和成本,在查詢(xún)時(shí)利用緩存技術(shù)和索引能力提升查詢(xún)效率。這兩個(gè)類(lèi)型還提供強大的數據約束,保證數據的規范性和一致性,減少數據錯誤的可能性。
函數和操作符兼容
數據庫應用常用的MySQL函數和操作符,KingbaseES實(shí)現全部兼容。對于操作符,MySQL特殊的DIV、MOD、<=>,以及邏輯操作符KingbaseES都支持。對于常見(jiàn)函數,尤其是MySQL特有的日期時(shí)間函數,JSON函數達到全部覆蓋。
KingbaseES的JSON數據類(lèi)型允許存儲復雜的結構化數據,包括鍵值對、數組和嵌套對象。KingbaseES提供全面的JSON數據庫處理函數,不僅全面兼容MySQL的函數語(yǔ)法,還擴展了更豐富語(yǔ)法功能,這使得JSON在存儲和處理復雜數據方面更加靈活。
SQL語(yǔ)句兼容
SQL語(yǔ)句方面,對常用的DDL、DML、DQL語(yǔ)句的兼容度達到90%以上。特別是MySQL特有語(yǔ)法,例如DML語(yǔ)句中的LIMIT及ORDER BY子句限定用戶(hù)一次更新的數據條目或按照順序更新;COMMENT子句讓用戶(hù)在創(chuàng )建對象時(shí)就可以添加注釋;INSERT...SET和INSERT IGNORE INTO子句、多表JOIN的多表更新語(yǔ)法、直接操作分區表的數據,插入語(yǔ)句等都在兼容語(yǔ)法的細節上做了增強,例如省略into關(guān)鍵字,一次性對多表進(jìn)行更新。當客戶(hù)的應用過(guò)程引發(fā)數據庫存儲的數據變更時(shí),需要將數據定時(shí)同步到數據庫中,這時(shí)insert插入數據時(shí),可能發(fā)生主鍵/唯一鍵沖突,若想在沖突時(shí)變更為update語(yǔ)句,則可通過(guò)INSERT...ON DUPLICATE KEY UPDATE語(yǔ)句達成。
在數據庫中,主鍵是用來(lái)唯一標識每條記錄的,而自增長(cháng)類(lèi)型可以為每個(gè)記錄分配唯一的標識符。因此,將自增長(cháng)類(lèi)型應用于主鍵列,可以方便地為每個(gè)記錄分配唯一的標識符,在MySQL數據庫中可通過(guò)數據列的AUTO_INCREMENT屬性來(lái)達到此目的。KingbaseES也兼容該功能,可方便地為每個(gè)記錄分配唯一的標識符,避免了手動(dòng)輸入主鍵的麻煩。
KingbaseES支持三種標識符的表示方式,反引號、單引號、雙引號這三種符號括起來(lái)標識符,其中帶反引號的標識符是兼容MySQL特有的,用于區分保留字和普通字符,其使用規則完全兼容MySQL,為將應用程序平滑遷移到KingbaseES做到更加細致入微的努力。
PLSQL兼容
在過(guò)程化語(yǔ)言的語(yǔ)法基礎、數據、游標、動(dòng)態(tài)SQL、子程序、存儲過(guò)程/函數、觸發(fā)器等各方面,KingbaseES常用語(yǔ)法的兼容度也大大得到提升,達到90%以上。
客戶(hù)實(shí)際應用中,通過(guò)計數器收集積分遇到的問(wèn)題,在某些高并發(fā)場(chǎng)景下常會(huì )出現積分統計遺漏的問(wèn)題,這類(lèi)問(wèn)題可通過(guò)用戶(hù)變量的方式解決。MySQL中的變量主要是用于保存臨時(shí)結果,并在不同語(yǔ)句中傳遞。KingbaseES兼容MySQL的用戶(hù)變量功能,在不同場(chǎng)景中,通過(guò)@變量來(lái)存儲中間結果、計算結果、過(guò)濾數據等。
輕松完成MySQL數據庫遷移
KingbaseES數據庫提供異構數據庫和應用SQL遷移評估系統KDMS以及簡(jiǎn)單、高效的一鍵遷移工具KDTS。通過(guò)這兩種工具,可以輕松完成MySQL數據庫遷移工作。
數據遷移評估系統KDMS通過(guò)智能翻譯技術(shù),無(wú)侵入業(yè)務(wù)應用實(shí)現SQL采集、評估和轉換。每分鐘可處理20萬(wàn)行SQL/PLSQL代碼,短時(shí)間內完成大規模MySQL數據庫遷移評估和智能轉換,提高遷移效率。降低遷移成本。KDTS數據庫遷移工具支持MySQL5.x、MySQL8.x全系列版本的一鍵遷移。支持多種復雜遷移任務(wù)配置,滿(mǎn)足多種數據遷移條件,實(shí)現多樣化遷移需求,使用多線(xiàn)程異步讀寫(xiě)機制,大大提升遷移效率,并提供詳細的MySQL遷移報告。
MySQL Workbench是MySQL官方提供的數據庫管理工具。KingbaseES數據庫自身也提供了功能強大的數據庫管理工具KStudio,可為數據庫開(kāi)發(fā)人員、DBA提供高效、高質(zhì)的數據庫開(kāi)發(fā)、調試、維護等各項功能。KStudio可進(jìn)行一站式數據庫管理,提供全功能SQL編輯器和PLSQL調試工具,進(jìn)行審計等數據庫安全管理,還支持數據對比等高級功能。
此外,KingbaseES還提供全方位運維監控平臺KMonitor,可對服務(wù)器狀態(tài)、數據庫資源和數據庫性能、集群情況進(jìn)行全天候監控和告警,使用戶(hù)全面掌握MySQL遷移服務(wù)器,遷移后的KingbaseES運行情況、健康狀況,及時(shí)獲取異常信息并快速做出合理應對,保障數據庫及業(yè)務(wù)應用安全。DBA用戶(hù)還可通過(guò)直觀(guān)豐富的數據庫性能報表,快速排查故障問(wèn)題以及進(jìn)行容量規劃。
目前,KingbaseES已在銀行、證券、保險、泛金融機構等細分領(lǐng)域打造了一系列替換MySQL數據庫的標桿案例。經(jīng)過(guò)項目實(shí)戰中不斷測試和驗證,人大金倉確保產(chǎn)品的穩定性和可用性,能夠高可用高性能高安全地支撐和保障用戶(hù)業(yè)務(wù)。未來(lái),KingbaseES不僅實(shí)現MySQL功能100%兼容,性能兼容還會(huì )更勝一籌,讓用戶(hù)的數字化之旅更簡(jiǎn)單!
為助力信息技術(shù)應用創(chuàng )新產(chǎn)業(yè)高質(zhì)量發(fā)展,筑牢數據安全防線(xiàn),人大金倉特別策劃三大兼容系列文章,基于金倉數據庫與Oracle常用功能100%兼容,與MySQL、SQLServer常用功能90%兼容,分享產(chǎn)品背后的技術(shù)原理和應用情況,助力用戶(hù)無(wú)憂(yōu)遷移,請持續關(guān)注我們!
相關(guān)稿件