【腾讯云 TDSQL-C Serverless 产品测评】- 云原生期间的TDSQL-C MySQL数据
一、活动介绍:“腾讯云 TDSQL-C 产品测评活动”是由腾讯云连合 CSDN 推出的针对数据库产品测评及产品体验活动,本次活动重要面向 TDSQL-C Serverless版本,开端的产品体验或针对TDSQL-C产品的自动弹性能力、自动启停能力、兼容性、安全、并发、可靠性等多方面的产品测评。
https://i-blog.csdnimg.cn/blog_migrate/b82a626ac5e094eee079319501c7de46.png 有幸在CSDN的推广上看到了腾讯云推出的TDSQL-C产品测评活动,数据库在我们的开发工作占比比较大,尤其是高并发、高负载的架构,数据库更是重中之重。直接将影响体系的稳定运行,也可以一起来看看互联网的大事件:
[*]B站有一次瘫痪,用户反映“追番一直提示获取视频内容失败”“显示页面加载失败
[*]微博由于某位明星上了热搜,服务器直接瘫痪
https://i-blog.csdnimg.cn/blog_migrate/d6b5f9919d219e620cd334817389a09d.png
通过这次的活动,希望也能了解一些云数据库的上风,为以后公司业务的发展做一些铺垫,万一公司的业务量翻了几十倍呢?不打没有预备之战。
二、手册体验:
在进行报名后,参加微信群,助手提供了2个实验手册用来体验TDSQL-C MySQL的一个简单入门,由于新电脑还没有装Ptyhon环境,所以,这里选择《Vue+Koa+TDSQL实现问答体系》来实际操作一下。
https://i-blog.csdnimg.cn/blog_migrate/c63293ee873ae85322fdf89a940a147f.png
通过不到15分钟的时间,按照手册的功能形貌步调,从0到1完成了TDSQL-C MySQL的体验,接下来就让我们深入的体验一下TDSQL-C MySQL的功能。
三、 数据库介绍:
1. 数据库是什么?
数据库(Database,简称DB)是长期储存在计算机内、有构造、可共享的大量数据的聚集。
数据库中的数据按肯定的数据模子构造、形貌和储存。具有较小冗余度、较高数据独立性、易扩展性,并可为各种用户共享。
2. 数据库、数据库管理工具的关系:
https://i-blog.csdnimg.cn/blog_migrate/62d957e0343ec62c8499976716860e69.png
3. 常见数据库管理体系:
https://i-blog.csdnimg.cn/blog_migrate/27a873e46632d4040e68cb29aaaa6924.png
在平时的开发中,打仗过MySQL、SQL Server2种数据库,在早期使用过.NET就是使用SQL Server数据库进行开发,后面学习了PHP后,大多数都是PHP + MySQL进行Web相干的开发工作。其间,对于PostgreSQL也是学习调研过。
4. 怎样操作数据库:
数据库管理体系可以通过SQL(结构化查询语言)来定义和操作数据,维护数据的完整性和安全性,以及进行各种数据库的管理等。
https://i-blog.csdnimg.cn/blog_migrate/3b5a02a00cbffd9af014a691516b772d.png
像我平时的工作就是全栈开发,php + vue + uniapp小步伐,后端根本上70%的时间,都是跟MySQL打交道,平时,也遇到过不少MySQL的题目点。希望通过这次学习,也可以复盘一下自己的所学。
四、 TDSQL-C介绍:
从最上面活动的截图,我们先大抵了解一下,TDSQL-C是什么?TDSQL-C有什么样的作用呢?以下是我的一个总结,可以先了解一下TDSQL-C的根本功能、场景、作用。
https://i-blog.csdnimg.cn/blog_migrate/923c4f42862350ea8cf7abb024f90fbb.png
TDSQL是腾讯推出的一款兼容MySQL,自主可控,兼高一致性的分布式数据库。
1. 功能:
[*]具有高可用性、高性能和可扩展性
[*]支持水平自动拆分,有完整的业务逻辑表,而且数据被均匀拆分到多个物理分片中
[*]有效的办理超大并发,超高性能,超大容量的OLTP类场景
2. 作用:
[*]对金融级高可用、企业级安全性、数据强一致性等场景支持友爱
[*]提供美满的生态、美满的服务保障能力
五、 TDSQL-C MYSQL实操:
1. 官网购买TDSQL-C MYSQL数据库:
打开官网 (TDSQL-C MYSQL链接) ,点击“立刻选购”。
https://i-blog.csdnimg.cn/blog_migrate/ee54cfacb26498cf25ad4dc283ce5bef.png
新账号的话,有一些前置动作,需要进行实名制一下,否则会提示不能购买。
https://i-blog.csdnimg.cn/blog_migrate/1440aa1eeabbdbd9e9554bc80b5583db.png
再往账号中充一点值,好进行产品的购买,这里用于测试的话,充了10块钱进行体验一下。
https://i-blog.csdnimg.cn/blog_migrate/fb4f9ee89ceead33b1d4cb477fb19838.png
在产品选购页面,实例形态这里肯定要选择“Serverless”的产品,TDSQL-C分为两个产品:一个是MySQL、一个是PostgreSQL,这里我们选择“MySQL”数据库引擎。
可以看到地域还支持国外的地域,给产品点赞,牛!
https://i-blog.csdnimg.cn/blog_migrate/6f3d09154f479b8851fec86c39b0e8e9.png
我们选择最新的数据库版本“MySQL 8.0”,可以根据自己的业务设置自动暂停时,选择“1个小时”,存储计费模式,可以用使用资源包,点击“购买资源包”进行购买。
https://i-blog.csdnimg.cn/blog_migrate/89d6a16c2a4e9a845b18f4fda6a4878f.png
选择“存储资源包”,容量的话,根据自己的需求进行调解,可以看出也比较自制。
https://i-blog.csdnimg.cn/blog_migrate/8d33370391b46768c871415ad25a9747.png
通过几个确认下单的步调,购买成功存储资源包。
https://i-blog.csdnimg.cn/blog_migrate/e99cf891e4fe550ef5645db4c6fb7e91.png
再回到数据库购买页面,将刚刚购买的存储资源包进行绑定。
https://i-blog.csdnimg.cn/blog_migrate/4789650405e5476e2485de26e06d84d4.png
第二步,可以设置数据库密码、默认字符集,自定义端口,表名大小写等参数。
https://i-blog.csdnimg.cn/blog_migrate/f131e16f4521416862f231a930c17b65.png
颠末几个确认步调,集群创建成功,很有的意思是,这里不叫数据库实例,而是叫集群。
2. 数据库集群功能介绍:
https://i-blog.csdnimg.cn/blog_migrate/a03c654f2115de29ec9a309af0e6d014.png
默认数据库集群实例的外网是关闭的,需要自己开启。这里为了方便演示,将“自动暂停时长”设置为10分钟,有个疑问是数据库刚开启怎么就有24M存储空间了?
https://i-blog.csdnimg.cn/blog_migrate/f1bac6ca13a0113d078edef2c07314fa.png
可以看到对应的资源包是0,并没有存储数据。
https://i-blog.csdnimg.cn/blog_migrate/d1fc8c6b78e5a53731508a8b4f2f14ea.png
通过数据库管理工具DMC,可以看到体系默认有一些体系库,推测这24M数据是它们的。
https://i-blog.csdnimg.cn/blog_migrate/f025689d28e4c4483e08c6ccb339cd77.png 3. 开启外网访问地点:
点击上面“开启”,在开通外网访问地点后,注意host是一个域名(并非是IP),端口是一个随机的(并非是3306)。
https://i-blog.csdnimg.cn/blog_migrate/b0b3976ee19a80a49594f117446f7243.png 4. 账号管理:
添加一个开发的账号,有只读的权限,不能有操作的权限。
https://i-blog.csdnimg.cn/blog_migrate/bdfea6ff315ccb50f3fceb8797995047.png https://i-blog.csdnimg.cn/blog_migrate/767253edba7889f3a84d9534adeb1a67.png
5. 数据库管理:
https://i-blog.csdnimg.cn/blog_migrate/581c3a1827577db1c7629cbd6e9ddc29.png
可以单独对一些账号进行权限的控制。
https://i-blog.csdnimg.cn/blog_migrate/e7918866fa50b502eb0b614051560a8e.png https://i-blog.csdnimg.cn/blog_migrate/9da7164a106d7b88cbdfa25efce4022b.png
6. 参数设置:
针对一些数据库的参数可以自己去修改,符合自己的需求。
https://i-blog.csdnimg.cn/blog_migrate/58587347efabec2f0450237e683469c0.png
7. 体验中遇到的题目:
使用数据库密码时,不能使用”Mysql.”,试了很多次,发现是密码有题目,改为”Test123.”
https://i-blog.csdnimg.cn/blog_migrate/a5495330cce9a8d2a005e1aa87e8a51d.png
导入了一点表,在Navicat中删除后,看到表的空间并没有释放?
https://i-blog.csdnimg.cn/blog_migrate/7a40c0413ec14939b61147c06f3ff84c.png
手册中的mysql2在并发流量时,好像不是太好用,下次试试Java的多线程。
https://i-blog.csdnimg.cn/blog_migrate/2879c5f8c117b2027d5ae1811c147c3f.png
六、TDSQL-C MySQL降本策略:
1. 自动启停:
Serverless的好处,当设置10分钟(可以随时调配)没有使用时,数据库就会暂停状态,暂停后计算将不再计费,如下数据库集群实例状态是“已暂停”。
https://i-blog.csdnimg.cn/blog_migrate/5b84aab239094a1a43ccfd14eff48f5b.png
一般像我们的网站,在夜晚的是没有流量的,可以节省一段时间的费用,假如是一年,那也是一笔比较可观的节能收入。
2. Serverless秒级伸缩:
改造一下上面手册的后端Node代码,进行并发写入数据库数据,模仿线上突然QPS上升的场景。
const mysql = require('mysql2/promise');
// 初始化数据库连接
let connection = null
async function initDb () {
connection = await mysql.createConnection({
host: 'bj-cynosdbmysql-grp-8znse6hq.sql.tencentcdb.com',
user: 'root',
password: 'Test123..',
database: 'shop',
port: 26668,
});
async function selectData () {
for (let i = 0; i < 999999; i++) {
let sql = "INSERT INTO `tb_seckill_goods` VALUES (943095, NULL, 'xxxxxxx', 'http://img14.360buyimg.com/n7/jfs/t23629/293/671156875/53383/8ab4ce73/5b3c24abN8090cb25.jpg', 825.26, 82.53, '2019-05-24 06:51:00', '2019-05-24 06:51:00', '1', '2019-05-23 16:00:00', '2019-05-23 17:59:00', 79, 75, 'xxxxx')";
connection.execute(sql);
}
}
selectData()
}
initDb()
https://i-blog.csdnimg.cn/blog_migrate/58109397a8b2e1258484f11732504b47.png
https://i-blog.csdnimg.cn/blog_migrate/0e0f6daa625273dd75856092c5ff2972.png
可以看到,我们买的配置其时是最小0.5,最大1,按以前的经验来说,可能CPU就达到了100%,SQL的历程在壅闭了,而TDSQL-C MySQL Serverless版本,可以自动的将CPU由最大1扩大到上面的差不多5。
4. 产品到期继承使用:
购买后TDSQL-C MySQL,由于要忙工作,一时忘记了TDSQL这个东西,可以看到数据库一直还会产生费用。
[*]账户余额到期,8月23号开通,到8月28号还能使用,给用户提供了富足的时间来充值。
[*]产品服务还是继承可以使用,没有余额到期就立马把服务断掉,保证了业务不受影响。
[*]假如您不想使用这个产品,肯定要销毁(紧张),暂停也会产生费用。
https://i-blog.csdnimg.cn/blog_migrate/e32b590534348677fa85199198c622fc.png
https://i-blog.csdnimg.cn/blog_migrate/529be2688fa34b5a0ffb687fbc3e4de9.png
以下为销毁后提示,不外,在接纳站还可以有7天时间恢复。
https://i-blog.csdnimg.cn/blog_migrate/923ab8ac50eb54b5930f1fd1ae2666e0.png
4. 总结:
可以看到TDSQL-C MySQL Serverless版本有高度弹性灵活的使用方式,根据实际使用量进行计费,非常得当对业务量波动较大的中小企业。用这种按需按量的计费模式,极大低落了使用成本和资源浪费。
https://i-blog.csdnimg.cn/blog_migrate/075906825f5ac3a90183a7a788113caa.png
七、 TDSQL-C MySQL 提效策略:
1. 权限管控:
我们可以通过上面设置的权限进行有效的控制角色的操作范例,防止团队中有些人误操作,传统的工作可能是DBA在分配,这里的可以直接设置,比较方便。可以看到当我们使用dev_chen进行insert操作时,直接就报错了。
https://i-blog.csdnimg.cn/blog_migrate/eb17681ea8e1a2b7669954d819ba2624.png
2. SQL导入:
在Navicat中导入数据需要差不多5分钟,而在DMC管理平台导入数据节省了差不多一半的时间。
https://i-blog.csdnimg.cn/blog_migrate/56d065db06646f26fde93a8a4df95b0c.png
个人推测,可能是DMC先把SQL上传到服务器上,然后,再相称于当地导入,速度就快很多。导出的速度也是比较快的,不外发起用zip压缩一下,如许可以节省流量,速度也比较快。
https://i-blog.csdnimg.cn/blog_migrate/47846f58b0cafd11fb85f9b2fc47ae9d.png
可以看到在Navicat中导入表数据的过程中,发现这张表有数据了。
https://i-blog.csdnimg.cn/blog_migrate/327cad633e5265ab4396d2d5298e7ffc.png
但是在DMC上查询却是空的,只有在表导完数据后,才气在下面这张图查出数据。
https://i-blog.csdnimg.cn/blog_migrate/533ee6ca223f7f349bf48d4849ed8654.pnghttps://i-blog.csdnimg.cn/blog_migrate/c57ce742fee36a48832ac3824c2029cc.png
3. Mysql 5.7迁移到8.0:
可以看到Mysql 5.7的表,在8.0中导入,有一些小报错,但是不影响使用。根本上可以100%进行迁移。
https://i-blog.csdnimg.cn/blog_migrate/5182222cc7c20f9cd3aa9d7825527d8b.png
4. 最大毗连数限制:
在上面的开发账号,我们设置了账号毗连数限制为2,为了防止某个开发账号误操作,导致频仍的哀求数据库。
https://i-blog.csdnimg.cn/blog_migrate/a41b63a6e0de570c58aa36f089cc483e.png const mysql = require('mysql2/promise');
// 初始化数据库连接
let connection = null
async function initDb () {
connection = await mysql.createConnection({
host: 'bj-cynosdbxxxxxntcdb.com',
user: ' dev_chen',
password: 'xxxx',
database: 'shop',
port: 29068,
});
console.log(111111, connection)
async function selectData () {
for (let i = 0; i < 2; i++) {
let sql = "select * from `tb_category` limit 10";
const = await connection.execute(sql);
console.log(result)
}
}
selectData()
}
initDb()
initDb()
initDb()
initDb()
initDb()
以上代码,模仿多个数据库实例化,由于我们设置是最大毗连数是2,当多个initDb实例化的时候,就会产生并发毗连,提示“User ‘chen_dev’ has exceeded the ‘max_user_connections’ resource (current value: 2)”,如许可以有效的防止资源的浪费。
https://i-blog.csdnimg.cn/blog_migrate/f803fa8ad1d0414c80059eedb07dbab7.png
5. 总结:
https://i-blog.csdnimg.cn/blog_migrate/b2f161ac4e82b892d03e5d1a7fc7fe8e.png
八、 TDSQL-C MySQL 运维的能力:
用户可以通过“数据库智能管家DBbrain”强大的监控功能,来获得DB实例节点的数据磁盘使用率、日志磁盘使用率、链接数使用率、SQL哀求量、慢查询量、备延迟耗时、异常情况、运营情况、健康报告等指标。
https://i-blog.csdnimg.cn/blog_migrate/088cdac200d039a90890a4808ed0ab29.png
1. 诊断优化:
可以从整体来查看数据库的一些指标参数,如CPU、内存、存储、流量、健康得分等情况,其中,还能显示我们平时比较关心的慢SQL,在“诊断提示”中也有一些报警的提醒。
https://i-blog.csdnimg.cn/blog_migrate/2d0e8f0a694553c9533f328bc301e844.png
2. 诊断提示详情:
下图可以看到,我们模仿突然大量的写入,导致CPU的急剧增加,直接飙到了近80%,当然,也可以看到这个监控指标“cpu_use_rate”,也可以自己去设置一下告警值。
https://i-blog.csdnimg.cn/blog_migrate/cdd5d49a2dad8ab642ce11ea649b3604.png
https://i-blog.csdnimg.cn/blog_migrate/f757e54de6fd1cccdc135f6d94440880.png
如下为慢SQL的诊断详情,可以看到这里大于等于1s执行时间的,会被记载为慢SQL。
https://i-blog.csdnimg.cn/blog_migrate/88221b50414bb78a2b747d8be2b94069.png
3. 性能趋势:
可以对数据库的一个实时、汗青走势的一个监控,包罗CPU、内存、存储、流量、TPS、QPS、毗连数、哀求数等参数的折线图,通过这些参数,我们可以实时分析现有题目是什么,也可以对以往的负载做一个大概的评估,使用技能架构的升级。
https://i-blog.csdnimg.cn/blog_migrate/b4189e9b881a4f4ebb9ff21ec0a869db.png
4. 慢SQL分析:
慢SQL也是平时项目开发,比较关注的一个点,如下可以看到无论是插入、查询,大概有更新、删除的语句,只要超过阀值都会被记载为慢SQL,这个指标会直接影响项目功能的使用,及项目的质量。
https://i-blog.csdnimg.cn/blog_migrate/fbb54a4cb9d6af5bd42ad159b071da54.png
https://i-blog.csdnimg.cn/blog_migrate/e644d5924338116320a364ad5c68f4b0.png
https://i-blog.csdnimg.cn/blog_migrate/cc7d6b12e07c6d904a9a8c0d769d0205.png
九、TDSQL-C MySQL使用感受:
对TDSQL-C MySQL Serverless数据库从0到1进行体验,颠末以下一些产品的功能进行体验,可以完全满意企业的开发需求,而且还提供了很多运维的工具进行检测,在体系操作上简单便捷,可以看到可以很好的扩展为数据库集群,非常方便,可以为企业提高服从,低落成本。
https://i-blog.csdnimg.cn/blog_migrate/4839cc94c9856138fbfd63def3e89a48.png
十、产品的发起:
1. 对产品提几个发起:
购买的资源包,在余额到期后,发现这个资源包直接满了,也没怎么使用。后面又买了一个资源包并进行绑定。
https://i-blog.csdnimg.cn/blog_migrate/3c703c74430399adbbe20c23c55670bd.png
https://i-blog.csdnimg.cn/blog_migrate/1c5523db25ca50ad8374a4019803578a.png
2. 设置数据库的操作权限,感觉有点太枯燥了,发起搞成多选,如许可以供用户灵活的配置。
https://i-blog.csdnimg.cn/blog_migrate/9bfdfafa58e898408c03011d99be018d.png
3. 有2个账号,有一个开通的是广州的,一个开通是北京的,开通北京账号的,每次登录后,就会跳到“广州”,扫除cookie这些也没用,需要手动切换,体验不是太好。
https://i-blog.csdnimg.cn/blog_migrate/fbb88838c6c7740f5455450dab5ef08e.png
4. 生产数据库迁移方案:
在数据导入时,先需要上传SQL文件,但是有标注,大小在10GB以内,不知道在生产上做大规模数据迁移需要怎么弄?假如有10GB大小限制,觉得不能满意需求。
https://i-blog.csdnimg.cn/blog_migrate/dd9be0b29c22b81ddfc349ab1f6a10b8.png 十一、 总结:
TDSQL是腾讯云企业级分布式数据库,旗下涵盖金融级分布式、云原生、分析型等多引擎融合的完整数据库产品体系,提供业界领先的金融级高可用、计算存储分离、数据仓库、企业级安全等能力,同时具备智能运维平台、Serverless版本等美满的产品服务体系。
我也是在通过活动、自己动手操作手册、自己在项目中实践TDSQL-C MySQL 8.0,从0到1的由浅到深的了解,从一些论点实际去操作,了解到TDSQL-C MySQL确实能给我们的业务带来提效降本的方案,希望在以后能够在业务中去落地并实践TDSQL-C MySQL。
https://i-blog.csdnimg.cn/blog_migrate/d46b990aae726725fb6122f28ae826fa.png综上所述,可以看到TDSQL-C MySQL 是一个强大、灵活、可扩展的数据库中间件,适用于中大型企业级应用步伐。假如需要寻找一种可靠、高性能、可扩展的数据库办理方案,TDSQL-C MySQL 版本是一个很不错的选择。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]