C#实战:LighthouseDB轻量数据库服务介绍和案例实践

.NET
119
0
0
2024-08-15
标签   C#

一、LighthouseDB介绍

LighthouseDB轻量数据库服务基于腾讯云自研的新一代云原生数据库 TDSQL-C,融合了传统数据库、云计算与新硬件技术的优势,100%兼容 MySQL,实现超百万级 QPS 的高吞吐,128TB 海量分布式智能存储,保障数据安全可靠。

二、、LighthouseDB 产品特性

● 100%兼容 MySQL:100%兼容开源数据库引擎 MySQL。

● 超高性能:单节点百万 QPS 的超高性能,满足高并发场景

● 快速恢复:计算节点实现无状态,支持本地和跨设备的秒级故障切换和恢复,支持基于快照的秒级备份和回档

● 管理简单:开箱即用,默认模板提供简化操作

● 数据高可靠:集群支持安全组和 VPC 网络隔离。自动维护数据和备份的多个副本,保障数据安全可靠,可靠性达99.9999999%。

● 超高性价比:提供固定规格套餐,共享式资源超低价格即可购买使用轻量数据库,性能远高于自建数据库

三、、选购配置介绍

产品官网:https://cloud.tencent.com/product/lighthousedb

打开产品官网,然后点击立即选购按钮。

然后进入选购界面,大家可以根据自己的需要选择适合自己的配置。

选购配置完成后,可以进入产品控制台,界面如下:

这里第一次进入可以修改数据库密码,方便后续操作。

点击左下角的登录按钮,会打开数据库管理页面,选择实例、数据库账户、密码点击登录按钮。

四、创建数据库

这时会进入数据库管理界面。我们点击库管理。

然后进入数据库管理界面。点击新建数据库按钮

弹出数据库新建界面,这里设置数据库名称、字符集、排序规则,然后点击确定按钮。

创建成功后可以看到新创建的数据库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,大家可以根据实际需要进行调整。