前言
TDSOL是騰訊云自家研發(fā)的超級(jí)厲害的云原生關(guān)系型數(shù)據(jù)庫!它將傳統(tǒng)數(shù)據(jù)庫、云計(jì)算和最新的硬件技術(shù)融合在一起,完美兼容MySQL,并為用戶提供了絕對(duì)牛逼的彈性、高性能、高可用、高可靠和安全的數(shù)據(jù)庫服務(wù)。你絕對(duì)想不到,它的吞吐量可以達(dá)到超過百萬次查詢每秒!而且還支持海量數(shù)據(jù)的分布式智能存儲(chǔ),就像PB級(jí)別的大海一樣。天啊,還有Serverless秒級(jí)伸縮,企業(yè)要加速數(shù)字化轉(zhuǎn)型簡直不要太方便!
說到Serverless服務(wù),你絕對(duì)沒見過騰訊云自家的TDSQL-C無服務(wù)器架構(gòu)版!這個(gè)可是全球首款全Serverless架構(gòu)的云原生數(shù)據(jù)庫哦!說白了,就是使用Serverless服務(wù),你只需按實(shí)際使用的計(jì)算和存儲(chǔ)資源付費(fèi),不用的時(shí)候完全不用擔(dān)心花冤枉錢!這種云原生技術(shù)真是超級(jí)貼心,誰用誰知道!現(xiàn)在,騰訊云的云優(yōu)勢將普惠到更多的用戶,就像演唱會(huì)門票一樣搶手!
操作步驟
準(zhǔn)備工作
申請TDSQL-C數(shù)據(jù)庫:
1. 點(diǎn)擊登錄騰訊云
騰訊云登錄:https://cloud.tencent.com/
2.選中產(chǎn)品,搜索“tdsql”,選擇TDSQL-C,如下圖所示:
3.點(diǎn)擊立即選購
4.選購頁面中的數(shù)據(jù)庫配置選項(xiàng)如下
**注意 **:這里的實(shí)例形態(tài)我們選擇Serverless
- 實(shí)例形態(tài) **(Serverless)**
- 數(shù)據(jù)庫引擎 **(MYSQL)**
- 地域 **(北京)** *地域這里根據(jù)自己的實(shí)際情況選擇即可*
- 主可用區(qū) **(北京三區(qū))** *主可用區(qū)這里根據(jù)自己的實(shí)際情況選擇即可*
- 多可用區(qū)部署 **(否)**
- 傳輸鏈路
- 網(wǎng)絡(luò)
- 數(shù)據(jù)庫版本 **(MySQL5.7)**
- 算力配置 **最小(0.25) , 最大(0.5)**
- 自動(dòng)暫停 **根據(jù)自己需求配置即可**
- 計(jì)算計(jì)費(fèi)模式 **(按量計(jì)費(fèi))**
- 存儲(chǔ)計(jì)費(fèi)模式 **(按量計(jì)費(fèi))**
配置截圖如下:
5.點(diǎn)擊下一步,配置基礎(chǔ)信息
此處需要注意:表名大小寫選擇不敏感即可,另外設(shè)置自己的數(shù)據(jù)庫密碼,其他的按照默認(rèn)值即可。>
我的配置截圖如下:
6.點(diǎn)擊立即購買,彈窗選擇立即購買,進(jìn)行開通
7.此時(shí)已經(jīng)開通成功了,點(diǎn)擊前往管理頁面
注意??!讀寫示例這里,需要點(diǎn)擊開啟外網(wǎng)訪問
點(diǎn)擊確定即可。
稍等片刻,就會(huì)出現(xiàn)可以外網(wǎng)訪問的host和端口了,請記好你的地址和端口,后續(xù)會(huì)用到。
至此,準(zhǔn)備工作結(jié)束!
現(xiàn)在正式開始搭建項(xiàng)目。
線上圖書管理系統(tǒng)項(xiàng)目搭建
項(xiàng)目目標(biāo):
此項(xiàng)目僅為demo,供娛樂學(xué)習(xí)使用,本項(xiàng)目主要用python flask來搭建,用pymysql庫來連接TDSQL-C產(chǎn)品進(jìn)行操作數(shù)據(jù)庫,麻雀雖小五臟俱全!
接下來就讓我們一步步來實(shí)現(xiàn)!
創(chuàng)建項(xiàng)目
項(xiàng)目文件目錄如下:
其中app.py為服務(wù)端文件,
templates文件夾中的html文件都是前端頁面模板文件,供flask調(diào)用的。
結(jié)構(gòu)比較簡單,項(xiàng)目主要文件就是這幾個(gè)。
前端頁面搭建
由于是用python flask框架搭建,所以需要在項(xiàng)目下面創(chuàng)建一個(gè)templates文件夾,將對(duì)應(yīng)的模板html文件放入到其中,方便進(jìn)行調(diào)用。
前端頁面的邏輯都比較簡單,就不詳細(xì)展開講了,我會(huì)將講解的重點(diǎn)放在后端連接數(shù)據(jù)庫以及對(duì)數(shù)據(jù)庫的操作上。
這幾個(gè)html頁面的代碼以及運(yùn)行后的效果分別截圖如下:
index.html頁面
代碼:
<!DOCTYPE html>
<html>
<head>
<title>圖書管理系統(tǒng)</title>
</head>
<body>
<h1>圖書管理系統(tǒng)</h1>
<ul>
<li><a href="/show_books">顯示圖書</a></li>
<li><a href="/add_book">添加圖書</a></li>
<li><a href="/lend_book">借閱圖書</a></li>
<li><a href="/return_book">歸還圖書</a></li>
</ul>
</body>
</html>
add_books.html頁面
代碼:
<!DOCTYPE html>
<html>
<head>
<title>添加圖書</title>
</head>
<body>
<h1>添加圖書</h1>
<form method="POST" action="/add_book">
<label for="name">書名:</label>
<input type="text" id="name" name="name"><br><br>
<label for="author">作者:</label>
<input type="text" id="author" name="author"><br><br>
<label for="comment">評(píng)論:</label>
<textarea id="comment" name="comment"></textarea><br><br>
<input type="submit" value="添加">
</form>
</body>
</html>
lend_books.html頁面
代碼:
<!DOCTYPE html>
<html>
<head>
<title>借閱圖書</title>
</head>
<body>
<h1>借閱圖書</h1>
<form method="POST" action="/lend_book">
<label for="name">書名:</label>
<input type="text" id="name" name="name"><br><br>
<input type="submit" value="借閱">
</form>
</body>
</html>
return_books.html頁面
代碼:
<!DOCTYPE html>
<html>
<head>
<title>歸還圖書</title>
</head>
<body>
<h1>歸還圖書</h1>
<form method="POST" action="/return_book">
<label for="name">書名:</label>
<input type="text" id="name" name="name"><br><br>
<input type="submit" value="歸還">
</form>
</body>
</html>
show_books.html頁面
代碼:
<!DOCTYPE html>
<html>
<head>
<title>圖書列表</title>
</head>
<body>
<h1>圖書列表</h1>
<table>
<tr>
<th>ID</th>
<th>書名</th>
<th>作者</th>
<th>評(píng)論</th>
<th>狀態(tài)</th>
</tr>
{% for book in books %}
<tr>
<td>{{ book[0] }}</td>
<td>{{ book[1] }}</td>
<td>{{ book[2] }}</td>
<td>{{ book[3] }}</td>
<td>{% if book[4] == 1 %}已借出{% else %}未借出{% endif %}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
服務(wù)端接口搭建
由于是用python flask框架來寫服務(wù)端接口,使用pymysql包來進(jìn)行連接數(shù)據(jù)庫(也就是今天的主角!咱們今天開通的TDSQL-C)
本次實(shí)現(xiàn)的功能中,前端需要調(diào)用的接口有:
- 展示書籍 show_books()
- 添加書籍 add_book()
- 借閱書籍 lend_book()
- 歸還書籍 return_book()
由于是從數(shù)據(jù)庫中進(jìn)行書籍的讀取和寫入以及修改,所以還需要連接到數(shù)據(jù)庫。
那么如何連接到數(shù)據(jù)庫(TDSQL-C)呢?
使用pymysql庫即可用python方便的連接到mysql數(shù)據(jù)庫,當(dāng)然也可以連接到TDSQL-C啦!
接下來就一步一步帶著你來進(jìn)行代碼實(shí)現(xiàn):
咱們這個(gè)項(xiàng)目是使用Flask框架來創(chuàng)建一個(gè)簡單的圖書館管理系統(tǒng)。下面我們一步一步來實(shí)現(xiàn)功能:
1. 導(dǎo)入所需的庫:
from flask import Flask, render_template, request
import pymysql
- 導(dǎo)入Flask庫來創(chuàng)建Web應(yīng)用程序。
- 導(dǎo)入render_template方法用于渲染HTML模板。
- 導(dǎo)入pymysql庫用于連接和操作MySQL數(shù)據(jù)庫。
2. 創(chuàng)建Flask應(yīng)用程序?qū)嵗?/h5>
app = Flask(__name__)
- 創(chuàng)建一個(gè)名為’app’的Flask應(yīng)用程序?qū)嵗?/li>
3. 配置MySQL數(shù)據(jù)庫連接信息:
db_config = {
'host': "XXXXXX", # 此處填寫你自己的TDSQL-C的外網(wǎng)host
'port': xxxx, # 此處填寫你自己的TDSQL-C的外網(wǎng)端口號(hào)
'user': "root", # 你申請時(shí)候設(shè)置的用戶名,默認(rèn)是root
'password': "", # 密碼就是你自己創(chuàng)建實(shí)例時(shí)的密碼
'database': 'library', # 這里需要在自己的TDSQL-C中創(chuàng)建一個(gè)數(shù)據(jù)庫,名字為:"library" ,
}
# 檢查數(shù)據(jù)庫中是否存在 'books' 表格,如果不存在則創(chuàng)建它
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
cursor.execute("SHOW TABLES LIKE 'books'")
result = cursor.fetchone()
if not result:
cursor.execute(
"""
CREATE TABLE books (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
comment TEXT,
state INT DEFAULT 0
)
"""
)
connection.commit()
connection.close()
- 設(shè)置MySQL數(shù)據(jù)庫的主機(jī)、用戶名、密碼、數(shù)據(jù)庫名和端口號(hào)等連接信息。
需要在自己申請的TDSQL-C實(shí)例中新建一個(gè)數(shù)據(jù)庫,具體操作見下圖:
app = Flask(__name__)
db_config = {
'host': "XXXXXX", # 此處填寫你自己的TDSQL-C的外網(wǎng)host
'port': xxxx, # 此處填寫你自己的TDSQL-C的外網(wǎng)端口號(hào)
'user': "root", # 你申請時(shí)候設(shè)置的用戶名,默認(rèn)是root
'password': "", # 密碼就是你自己創(chuàng)建實(shí)例時(shí)的密碼
'database': 'library', # 這里需要在自己的TDSQL-C中創(chuàng)建一個(gè)數(shù)據(jù)庫,名字為:"library" ,
}
# 檢查數(shù)據(jù)庫中是否存在 'books' 表格,如果不存在則創(chuàng)建它
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
cursor.execute("SHOW TABLES LIKE 'books'")
result = cursor.fetchone()
if not result:
cursor.execute(
"""
CREATE TABLE books (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
comment TEXT,
state INT DEFAULT 0
)
"""
)
connection.commit()
connection.close()
需要在自己申請的TDSQL-C實(shí)例中新建一個(gè)數(shù)據(jù)庫,具體操作見下圖:
這樣就創(chuàng)建好了library數(shù)據(jù)庫,后續(xù)我們增加的圖書,都會(huì)在這個(gè)庫里的books表里。(代碼中有創(chuàng)建books表的邏輯,無需手動(dòng)創(chuàng)建,如果創(chuàng)建了也不影響,做了兼容,但是名字必須叫books。)
4. 定義首頁路由處理函數(shù):
@app.route("/")
def index():
return render_template("index.html")
- 使用
@app.route("/")
修飾器設(shè)置URL路徑為根路徑’/'的路由。 - 定義了一個(gè)名為’index’的函數(shù),當(dāng)用戶訪問根路徑時(shí),返回渲染后的index.html模板。
5. 定義展示書籍頁面的路由處理函數(shù):
@app.route("/show_books")
def show_books():
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
cursor.execute("SELECT * FROM books")
books = cursor.fetchall()
connection.close()
return render_template("show_books.html", books=books)
- 同樣使用
@app.route()
修飾器,設(shè)置URL路徑為’/show_books’的路由。 - 在函數(shù)中首先連接到MySQL數(shù)據(jù)庫。
- 使用cursor對(duì)象執(zhí)行SQL查詢語句"SELECT * FROM books",獲取所有書籍的數(shù)據(jù)。
- 將連接關(guān)閉后,將書籍?dāng)?shù)據(jù)傳遞給show_books.html模板進(jìn)行渲染。
6. 定義添加書籍頁面的路由處理函數(shù):
@app.route("/add_book", methods=["GET", "POST"])
def add_book():
if request.method == "POST":
name = request.form["name"]
author = request.form["author"]
comment = request.form["comment"]
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
cursor.execute("INSERT INTO books (name, author, comment) VALUES (%s, %s, %s)", (name, author, comment))
connection.commit()
connection.close()
return "書籍添加成功!"
return render_template("add_book.html")
- 同樣使用
@app.route()
修飾器,設(shè)置URL路徑為’/add_book’的路由,同時(shí)指定支持GET和POST請求方法。 - 通過判斷請求方法,當(dāng)為POST方法時(shí),從表單中獲取書籍的名稱、作者和備注信息。
- 連接到MySQL數(shù)據(jù)庫,并使用cursor對(duì)象執(zhí)行SQL插入語句將書籍信息插入到books表中,然后提交更改。
- 關(guān)閉數(shù)據(jù)庫連接并返回一個(gè)成功添加書籍的消息。
- 當(dāng)請求方法為GET時(shí),返回渲染后的add_book.html模板。
7. 定義借閱書籍頁面的路由處理函數(shù):
@app.route("/lend_book", methods=["GET", "POST"])
def lend_book():
if request.method == "POST":
name = request.form["name"]
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
# 檢查圖書是否存在
cursor.execute("SELECT * FROM books WHERE name = %s", [name])
result = cursor.fetchone()
if not result:
connection.close()
return "圖書不存在!"
# 檢查圖書是否已被借閱
state = result[4] # 獲取狀態(tài)值的索引為4
if state == 1:
connection.close()
return "圖書已被借閱!"
# 更新圖書狀態(tài)為已借閱
cursor.execute("UPDATE books SET state = 1 WHERE name = %s", [name])
connection.commit()
connection.close()
return "借閱成功!借了不看會(huì)變胖噢~"
return render_template("lend_book.html")
- 同樣使用
@app.route()
修飾器,設(shè)置URL路徑為’/lend_book’的路由,同時(shí)指定支持GET和POST請求方法。 - 通過判斷請求方法,當(dāng)為POST方法時(shí),從表單中獲取要借閱書籍的名稱。
- 連接到MySQL數(shù)據(jù)庫,并使用cursor對(duì)象執(zhí)行SQL更新語句將該書籍的狀態(tài)設(shè)置為已借閱(state = 1),然后提交更改。
- 關(guān)閉數(shù)據(jù)庫連接并返回一個(gè)借閱成功的消息。
- 增加了一些容錯(cuò)處理,比如圖書不存在的或者已被借出去的情況。
- 當(dāng)請求方法為GET時(shí),返回渲染后的lend_book.html模板。
8. 定義歸還書籍頁面的路由處理函數(shù):
@app.route("/return_book", methods=["GET", "POST"])
def return_book():
if request.method == "POST":
name = request.form["name"]
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
cursor.execute("UPDATE books SET state = 0 WHERE name = %s", [name])
connection.commit()
connection.close()
return "歸還成功!"
return render_template("return_book.html")
- 同樣使用
@app.route()
修飾器,設(shè)置URL路徑為’/return_book’的路由,同時(shí)指定支持GET和POST請求方法。 - 通過判斷請求方法,當(dāng)為POST方法時(shí),從表單中獲取要?dú)w還書籍的名稱。
- 連接到MySQL數(shù)據(jù)庫,并使用cursor對(duì)象執(zhí)行SQL更新語句將該書籍的狀態(tài)設(shè)置為未借閱(state = 0),然后提交更改。
- 關(guān)閉數(shù)據(jù)庫連接并返回一個(gè)歸還成功的消息。
- 當(dāng)請求方法為GET時(shí),返回渲染后的return_book.html模板。
9. 啟動(dòng)Flask應(yīng)用程序:
if __name__ == "__main__":
app.run()
10.服務(wù)端完整代碼:
from flask import Flask, render_template, request
import pymysql
app = Flask(__name__)
# 配置 MySQL 數(shù)據(jù)庫連接
db_config = {
'host': "XXXXXX", # 此處填寫你自己的TDSQL-C的外網(wǎng)host
'port': xxxx, # 此處填寫你自己的TDSQL-C的外網(wǎng)端口號(hào)
'user': "root", # 你申請時(shí)候設(shè)置的用戶名,默認(rèn)是root
'password': "", # 密碼就是你自己創(chuàng)建實(shí)例時(shí)的密碼
'database': 'library', # 這里需要在自己的TDSQL-C中創(chuàng)建一個(gè)數(shù)據(jù)庫,名字為:"library" ,
}
# 檢查數(shù)據(jù)庫中是否存在 'books' 表格,如果不存在則創(chuàng)建它
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
cursor.execute("SHOW TABLES LIKE 'books'")
result = cursor.fetchone()
if not result:
cursor.execute(
"""
CREATE TABLE books (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
comment TEXT,
state INT DEFAULT 0
)
"""
)
connection.commit()
connection.close()
@app.route("/")
def index():
return render_template("index.html")
@app.route("/show_books")
def show_books():
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
cursor.execute("SELECT * FROM books")
books = cursor.fetchall()
connection.close()
return render_template("show_books.html", books=books)
@app.route("/add_book", methods=["GET", "POST"])
def add_book():
if request.method == "POST":
name = request.form["name"]
author = request.form["author"]
comment = request.form["comment"]
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
cursor.execute("INSERT INTO books (name, author, comment) VALUES (%s, %s, %s)", (name, author, comment))
connection.commit()
connection.close()
return "書籍添加成功!"
return render_template("add_book.html")
@app.route("/lend_book", methods=["GET", "POST"])
def lend_book():
if request.method == "POST":
name = request.form["name"]
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
# 檢查圖書是否存在
cursor.execute("SELECT * FROM books WHERE name = %s", [name])
result = cursor.fetchone()
if not result:
connection.close()
return "圖書不存在!"
# 檢查圖書是否已被借閱
state = result[4] # 獲取狀態(tài)值的索引為4
if state == 1:
connection.close()
return "圖書已被借閱!"
# 更新圖書狀態(tài)為已借閱
cursor.execute("UPDATE books SET state = 1 WHERE name = %s", [name])
connection.commit()
connection.close()
return "借閱成功!借了不看會(huì)變胖噢~"
return render_template("lend_book.html")
@app.route("/return_book", methods=["GET", "POST"])
def return_book():
if request.method == "POST":
name = request.form["name"]
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
cursor.execute("UPDATE books SET state = 0 WHERE name = %s", [name])
connection.commit()
connection.close()
return "歸還成功!"
return render_template("return_book.html")
if __name__ == "__main__":
app.run()
注意:
數(shù)據(jù)庫相關(guān)的配置,需要修改為自己申請TDSQL-C時(shí)候的相關(guān)參數(shù)。
運(yùn)行項(xiàng)目
將前后端代碼都準(zhǔn)備好,并且確認(rèn)項(xiàng)目目錄結(jié)構(gòu)沒問題之后,直接運(yùn)行app.py即可成功運(yùn)行項(xiàng)目,運(yùn)行效果圖見下方:
剛進(jìn)來之后,是沒有圖書的,所以顯示圖書的時(shí)候,是空的。
添加圖書效果
點(diǎn)擊添加圖書,然后新增三個(gè)圖書,看看TDSQL-C中是否增加了相關(guān)數(shù)據(jù)。
圖書數(shù)據(jù):
書名:'惶然錄',作者:'費(fèi)爾南多·佩索阿',描述:'一個(gè)迷失方向且瀕于崩潰的靈魂的自我啟示,一首對(duì)默默無聞、失敗、智慧、困難和沉默的贊美詩。'
書名:'以箭為翅',作者:'簡媜',描述:'調(diào)和空靈文風(fēng)與禪宗境界,刻畫人間之緣起緣滅。像一條柔韌的繩子,情這個(gè)字,不知勒痛多少人的心肉。'
書名:'心是孤獨(dú)的獵手',作者:'卡森·麥卡勒斯',描述:'我們渴望傾訴,卻從未傾聽。女孩、黑人、啞巴、醉鬼、鰥夫的孤獨(dú)形態(tài)各異,卻從未退場。'
如果會(huì)使用本地工具連接mysql的同學(xué),可以自己連接進(jìn)行查看數(shù)據(jù),比如我用的Navicat,效果如下:
如果不會(huì)用的小伙伴也不用驚慌,TDSQL-C貼心準(zhǔn)備了線上工具,可以直接在網(wǎng)頁上就能查看,具體操作如下:
點(diǎn)擊登錄
輸入自己設(shè)置的用戶名和密碼進(jìn)行登錄:
登錄成功后:
選擇library數(shù)據(jù)庫
可以看到下面有books表,然后雙擊這個(gè)表即可查看其中的信息:
關(guān)閉右邊的彈窗,即可看出我們剛剛添加的數(shù)據(jù):
可以看到,添加書籍OK了。
展示圖書
這時(shí)候我們點(diǎn)擊瀏覽器的后退鍵,或者再次訪問項(xiàng)目的本地地址:http://127.0.0.1:5000,進(jìn)入到主菜單,選擇顯示圖書,就可以看到剛剛添加的圖書。效果圖:
借閱圖書
接下來我們借閱一本《以箭為翅》,然后再查看一下數(shù)據(jù)。
提示借閱成功了,我們看看數(shù)據(jù)庫的數(shù)據(jù)是否改變了。
可以看到,數(shù)據(jù)已經(jīng)修改了,以箭為翅的 state 修改為了1
0代表未借出,1代表已借出.
歸還圖書
接下來我們把剛借閱的《以箭為翅》進(jìn)行歸還,然后再查看一下數(shù)據(jù)。
歸還成功了,這時(shí)候看一下數(shù)據(jù)庫數(shù)據(jù)是否改變了。
可以看到,數(shù)據(jù)已經(jīng)更新了。
注意:在數(shù)據(jù)庫中查看數(shù)據(jù)的時(shí)候,最好先刷新一下,然后再查看,才能保障看到的是最新數(shù)據(jù)。
至此,項(xiàng)目已經(jīng)完整的搭建完畢,并且驗(yàn)證完畢了,撒花~
刪除TDSQL
如果只是想體驗(yàn)一下的小伙伴,體驗(yàn)完成之后,為了避免不必要的扣費(fèi)風(fēng)險(xiǎn),可以將這個(gè)實(shí)例進(jìn)行刪除。
如果有的小伙伴覺得用的還不錯(cuò),可能會(huì)長期使用,那就直接忽略這步。
點(diǎn)擊“銷毀、退款”
看清楚彈窗的提示,然后勾選同意協(xié)議,點(diǎn)擊確定。
然后實(shí)例狀態(tài)變?yōu)檫@樣:
等待一會(huì)兒即可銷毀成功了。
總結(jié)與分析
本項(xiàng)目只是讓大家可以對(duì)TDSQL-C有一個(gè)基本的認(rèn)識(shí),它使用起來基本上沒有什么門檻,和本地的mysql幾乎一樣,但是它是基于云服務(wù)的,可以讓你的很多夢想得以實(shí)現(xiàn)。使用它,你可以隨時(shí)隨地連接自己的數(shù)據(jù)庫,激發(fā)自己更多的靈感和使用場景!
當(dāng)然,TDSQL-C的功能絕不止這么簡單,它除了功能使用上沒有門檻之外,性能也非常強(qiáng)勁,而且配備了齊全的異常監(jiān)控系統(tǒng),容災(zāi)備份功能,讓你無論想怎么用都沒辦法拒絕它!
體驗(yàn)了一把TDSQL-C,簡單的分析一下它的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
- 靈活的計(jì)費(fèi)模式:TDSQL-C采用Serverless架構(gòu),按量付費(fèi),避免了中小公司承擔(dān)過多的人力成本和運(yùn)維成本。這意味著你可以根據(jù)實(shí)際使用的資源進(jìn)行付費(fèi),降低了成本,同時(shí)在空閑時(shí)還可以自動(dòng)休眠,減少不必要的費(fèi)用。就像是一個(gè)聰明的小助手,幫你合理控制開支。
- 高性能和海量存儲(chǔ):TDSQL-C不僅表現(xiàn)出色的高性能,而且還提供海量存儲(chǔ)空間。這意味著它可以處理各種大流量場景,讓你不再為數(shù)據(jù)庫的性能和存儲(chǔ)容量而擔(dān)心。它就像是一個(gè)強(qiáng)壯的運(yùn)動(dòng)員,能夠應(yīng)對(duì)各種挑戰(zhàn)。
- 完備的產(chǎn)品和智能工具:TDSQL-C不僅僅是提供數(shù)據(jù)庫服務(wù),還提供了豐富的可視化管理工具和輔助工具。無需下載數(shù)據(jù)庫管理客戶端,你可以直接進(jìn)行庫表級(jí)操作、實(shí)時(shí)監(jiān)控、實(shí)例會(huì)話管理等操作。此外,智能監(jiān)控和健康管理分析等功能也能幫助你更好地管理數(shù)據(jù)庫。就像是一個(gè)細(xì)心周到的管家,讓你的數(shù)據(jù)管理變得更加輕松愉快。
缺點(diǎn):
盡管TDSQL-C具有許多優(yōu)點(diǎn),但也存在一些缺點(diǎn)需要考慮:文章來源:http://www.zghlxwxcb.cn/news/detail-685783.html
- 依賴云服務(wù):TDSQL-C是騰訊云提供的數(shù)據(jù)庫解決方案,因此它對(duì)于想要使用它的用戶來說,他們必須依賴于騰訊云的平臺(tái)和服務(wù)。這可能會(huì)限制了用戶對(duì)數(shù)據(jù)庫的控制權(quán)和自由度,以及對(duì)基礎(chǔ)設(shè)施的選擇。
- 可能出現(xiàn)延遲:由于TDSQL-C是基于云服務(wù)的,因此在訪問和處理數(shù)據(jù)時(shí)可能會(huì)受到網(wǎng)絡(luò)延遲的影響。特別是對(duì)于一些對(duì)實(shí)時(shí)性要求較高的應(yīng)用場景來說,延遲可能成為一個(gè)問題,并且可能會(huì)影響系統(tǒng)的響應(yīng)速度和用戶體驗(yàn)。
- 安全性風(fēng)險(xiǎn):使用云服務(wù)意味著將數(shù)據(jù)存儲(chǔ)在第三方的服務(wù)器上,在數(shù)據(jù)傳輸和存儲(chǔ)過程中可能涉及到一些安全性風(fēng)險(xiǎn)。雖然騰訊云采取了各種安全措施,但仍然無法完全消除潛在的數(shù)據(jù)泄露或攻擊風(fēng)險(xiǎn)。因此,對(duì)于安全性要求較高的企業(yè)或應(yīng)用來說,可能需要做出額外的安全措施和評(píng)估。
這些是TDSQL-C的一些缺點(diǎn),需要在選擇和使用時(shí)予以考慮。綜合考慮其優(yōu)點(diǎn)和缺點(diǎn),根據(jù)具體需求做出權(quán)衡和決策。文章來源地址http://www.zghlxwxcb.cn/news/detail-685783.html
到了這里,關(guān)于【騰訊云 TDSQL-C Serverless 產(chǎn)品體驗(yàn)】 使用 Python 和 TDSQL-C 實(shí)現(xiàn)一個(gè)線上圖書管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!