LighthouseDB介紹
LighthouseDB輕量資料庫服務基于騰訊雲自研的新一代雲原生資料庫 TDSQL-C,融合了傳統資料庫、雲計算與新硬體技術的優勢,100%相容 MySQL,實作超百萬級 QPS 的高吞吐,128TB 海量分布式智能存儲,保障資料安全可靠。
LighthouseDB 産品特性
● 100%相容 MySQL:100%相容開源資料庫引擎 MySQL。
● 超高性能:單節點百萬 QPS 的超高性能,滿足高并發場景
● 快速恢複:計算節點實作無狀态,支援本地和跨裝置的秒級故障切換和恢複,支援基于快照的秒級備份和回檔
● 管理簡單:開箱即用,預設模闆提供簡化操作
● 資料高可靠:叢集支援安全組和 VPC 網絡隔離。自動維護資料和備份的多個副本,保障資料安全可靠,可靠性達99.9999999%。
● 超高成本效益:提供固定規格套餐,共享式資源超低價格即可購買使用輕量資料庫,性能遠高于自建資料庫
選購配置介紹
産品官網:
打開産品官網,然後點選立即選購按鈕。
然後進入選購界面,大家可以根據自己的需要選擇适合自己的配置。
選購配置完成後,可以進入産品控制台,界面如下:
這裡第一次進入可以修改資料庫密碼,友善後續操作。
點選左下角的登入按鈕,會打開資料庫管理頁面,選擇執行個體、資料庫賬戶、密碼點選登入按鈕。
建立資料庫
這時會進入資料庫管理界面。我們點選庫管理。
然後進入資料庫管理界面。點選建立資料庫按鈕
彈出資料庫建立界面,這裡設定資料庫名稱、字元集、排序規則,然後點選确定按鈕。
建立成功後可以看到新建立的資料庫DBDemo出現在最下面的清單。
建立資料表
資料庫建立後,我們可以建立資料表,界面如下:
然後切換到列資訊标簽頁,添加資料表字段
建立表sql如下“:
CREATE TABLE `T_User` (
`Id` bigint NOT NULL AUTO_INCREMENT COMMENT '主鍵自增',
`Name` varchar(20) DEFAULT '' COMMENT '姓名',
`Age` int DEFAULT NULL COMMENT '年齡',
`Address` varchar(100) DEFAULT '' COMMENT '住址',
`Hobby` varchar(100) DEFAULT '' COMMENT '興趣愛好',
`Birthday` date DEFAULT NULL COMMENT '出生日期',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='使用者表'
SQL預覽界面
SQL變更預覽界面,确認沒問題,我們點選确定按鈕。
建立表成功後,我們可以新增一行記錄。界面如下:
點選送出按鈕會進入執行預覽界面,确認後點選執行資料就插入成功了。當然也可以進行資料導入的方式。
建立視圖
這裡建立一個V_User的視圖,查詢年齡大于30的使用者。
點選送出,進入建立視圖确認的彈窗,然後點選确定按鈕,視圖就可以建立了。
視圖建立後,可以執行sql語句,檢視視圖的資料。
建立函數
建立一個簡單的求和函數
界面如下:
建立函數語句如下:
CREATE DEFINER=`root`@`%` FUNCTION `func_sum`(num1 INT, num2 INT) RETURNS int
DETERMINISTIC
COMMENT '建立求和函數'
BEGIN
DECLARE total INT;
SET total = num1 + num2;
RETURN total;
END
執行函數界面
開啟遠端通路
首先回到控制台界面,點選開啟公網。
然後本地cmd 去ping域名擷取公網ip
注意:資料庫端口就是開啟公網域名後的端口,不是預設的3306端口。
特别注意:外網通路僅用于開發或輔助管理資料庫,業務通路請使用内網通路。
然後可以使用navicat進行通路
成功通路後。
C#內建案例測試
首先建立一個控制台程式LighthouseDBDemo ,net架構為4.7.2
然後安裝第三方架構,這裡主要需要mysql驅動和Dapper資料庫orm架構。
打開nuget管理界面,安裝mysql驅動,版本選擇最新版8.0.31,
安裝Dapper 架構這裡也選擇最新版本2.1.28,主要是用來查詢和新增。
代碼如下
這裡主要展現了測試資料庫連接配接、查詢、新增操作,具體代碼如下:
using Dapper;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LighthouseDBDemo
{
class Program
{
static void Main(string[] args)
{
string connectionStr = string.Format("data source={0};user id={1};password={2};database={3};port={4};pooling=false;charset=utf8;", "公網IP位址", "root", "12345678","DBDemo", "27452");
ConnectionTest(connectionStr);
GetSelectList(connectionStr);
InsertDemo(connectionStr);
Console.ReadKey();
}
/// <summary>
/// 判斷資料庫伺服器是否連接配接成功
/// </summary>
/// <param name="conStr"></param>
/// <returns></returns>
public static void ConnectionTest(string conStr)
{
try
{
using (MySqlConnection connection = new MySqlConnection(conStr))
{
connection.Open();
connection.Close();
Console.WriteLine("資料庫連接配接成功!");
}
}
catch (Exception ex)
{
Console.WriteLine("資料庫連接配接失敗!原因:"+ex.Message);
}
}
/// <summary>
/// 查詢測試
/// </summary>
/// <param name="conStr"></param>
/// <returns></returns>
public static void GetSelectList(string conStr)
{
string sql = "select name from T_User ";
try
{
using (MySqlConnection connection = new MySqlConnection(conStr))
{
var list = connection.Query<string>(sql).ToList();
if (list.Any())
{
foreach (var item in list)
{
Console.WriteLine(item);
}
}
}
}
catch(Exception ex)
{
Console.WriteLine("查詢失敗!原因:" + ex.Message);
}
}
/// <summary>
/// 資料插入測試
/// </summary>
/// <param name="conStr"></param>
public static void InsertDemo(string conStr)
{
string sql = "INSERT INTO `DBDemo`.`T_User` (`Name`, `Age`, `Address`, `Hobby`, `Birthday`) VALUES ('小劉', 28, '江蘇徐州', '聽歌', '1996-08-05') ";
try
{
using (MySqlConnection connection = new MySqlConnection(conStr))
{
int count = connection.Execute(sql);
if (count > 0)
{
Console.WriteLine("資料插入成功!");
}
}
}
catch (Exception ex)
{
Console.WriteLine("查詢失敗!原因:" + ex.Message);
}
}
}
}
然後運作項目,執行效果界面如下:
打開資料庫用戶端檢視
測試資料是ok,這個隻是一個簡單的demo,大家可以根據實際需要進行調整。