MySQL對(duì)應(yīng)的開(kāi)源數(shù)據(jù)庫(kù)
MySQL產(chǎn)品族主要包括兩大版本:社區(qū)版MySQL和商業(yè)版MySQL,其中社區(qū)版MySQL是一款免費(fèi)開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng),深受廣大開(kāi)發(fā)者的喜愛(ài)。此外,在MySQL的基礎(chǔ)上也有幾個(gè)非常優(yōu)秀的開(kāi)源數(shù)據(jù)庫(kù)的衍生版本。
1. MariaDB
MariaDB是MySQL衍生的開(kāi)源數(shù)據(jù)庫(kù),它旨在保持與MySQL高度兼容,并增加新特性和性能優(yōu)化。MariaDB的前身是MySQL的開(kāi)發(fā)者團(tuán)隊(duì),因?yàn)镺racle收購(gòu)Sun后MySQL的商業(yè)方向被轉(zhuǎn)變以致一些開(kāi)發(fā)者認(rèn)為Oracle并不是非常專注于MySQL。因此,這些開(kāi)發(fā)者決定發(fā)起一項(xiàng)新的項(xiàng)目來(lái)保持MySQL的開(kāi)源、免費(fèi)以及長(zhǎng)期穩(wěn)定發(fā)展的方向。
-- 創(chuàng)建數(shù)據(jù)庫(kù)
CREATE DATABASE mydb;
-- 創(chuàng)建數(shù)據(jù)表
CREATE TABLE mytable (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
PRIMARY KEY (id)
);
-- 插入數(shù)據(jù)
INSERT INTO mytable (name) VALUES ('Tom'), ('Jerry'), ('Mike');
-- 查詢數(shù)據(jù)
SELECT * FROM mytable;
2. Percona Server
Percona Server是一款高性能、低延遲的MySQL衍生版本,是基于MySQL官方版本衍生出來(lái)的開(kāi)源數(shù)據(jù)庫(kù),針對(duì)高并發(fā)和大數(shù)據(jù)量的場(chǎng)景進(jìn)行性能優(yōu)化。Percona Server保留了MySQL的所有特性,并增加了一些新的功能,如支持多線程讀取InnoDB表,避免I/O性能瓶頸等。
-- 監(jiān)控SQL語(yǔ)句的執(zhí)行
SET GLOBAL slow_query_log = ON;
-- 查看監(jiān)控結(jié)果
SELECT * FROM information_schema.slow_log;
3. Aurora
Aurora是亞馬遜(AWS)生產(chǎn)的一種高性能、可擴(kuò)展的關(guān)系型數(shù)據(jù)庫(kù)服務(wù),其基于MySQL構(gòu)建,但是優(yōu)化了很多性能問(wèn)題。Aurora具有高可用和高性能的雙重特性,是云端應(yīng)用中的理想數(shù)據(jù)庫(kù)選擇。
-- 創(chuàng)建數(shù)據(jù)庫(kù)
CREATE DATABASE mydb;
-- 創(chuàng)建數(shù)據(jù)表
CREATE TABLE mytable (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
PRIMARY KEY (id)
);
-- 插入數(shù)據(jù)
INSERT INTO mytable (name) VALUES ('Tom'), ('Jerry'), ('Mike');
-- 查詢數(shù)據(jù)
SELECT * FROM mytable;
4. TencentDB
TencentDB是由騰訊云推出的,基于MySQL的關(guān)系型數(shù)據(jù)庫(kù)云服務(wù),是Tencent云計(jì)算平臺(tái)的一項(xiàng)基礎(chǔ)服務(wù)。TencentDB提供了云端備份、容災(zāi)恢復(fù)、容量擴(kuò)展等功能,支持多種存儲(chǔ)引擎,為開(kāi)發(fā)者提供了靈活可靠的數(shù)據(jù)服務(wù)。
-- 創(chuàng)建數(shù)據(jù)庫(kù)
CREATE DATABASE mydb;
-- 創(chuàng)建數(shù)據(jù)表
CREATE TABLE mytable (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
PRIMARY KEY (id)
);
-- 插入數(shù)據(jù)
INSERT INTO mytable (name) VALUES ('Tom'), ('Jerry'), ('Mike');
-- 查詢數(shù)據(jù)
SELECT * FROM mytable;