文章目录
前言
上一节中我们已经手把手的购买并进行连接了Flexus云服务器X实例具体可参考文章。
华为云征文|Flexus云服务器X实例:打造行业通用工作负载的理想选择,旗舰体验引领性能新标准-CSDN博客
本篇博文将继续对华为云Flexus云服务器X实例进行MySQL相关的实例测评
查看镜像信息
本地连接服务器之后输入指令
lsb_release -a
查看镜像信息
从镜像信息中我们可以看到我们使用的镜像是
Huawei Cloud EulerOS
什么是Huawei Cloud EulerOS?
Huawei Cloud EulerOS(简称HCE OS),是基于华为开源社区openEuler构建的linux操作系统,提供云原生、高性能、安全稳定的执行环境来开发和运行应用程序,助力企业客户快速上云及开发者创新
MySQL安装与启动
原计划是通过指令安装一个MySql 的 但是当我输入指令
dnf install mysql5-server mysql5-common mysql5
显示如下内容
看到这里不得不改变原有计划 采用
yum install mysql
来进行尝试,效果如下
看上去还是不错的。
接下来我们将会在华为云Flexus云服务器X实例下进行MySQL 的一系列操作啦。
启动MySQL
通过指令
systemctl start mysqld
来启动MySQL
当MySQL启动成功后通过指令
systemctl status mysqld
来查看状态
连接MySQL
通过
mysql -u root -p
连接数据库
由于没有设置密码所以直接显示连接成功, 接下来我们设置以下密码
配置MySQL
相关指令如下
# 使用mysql库
use mysql;# 修改root的密码为root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';# 刷新权限
flush privileges;# 退出exit;
此时我们再次输入指令
mysql -u root -p
连接数据库的指令 会出现 输入密码的提示 , 我们此时输入 root 即可
外网访问MySQL
第一步我们查看一下服务器的安全组设置是否开启了3306 端口, 通过查看安全组发现该端口并没有配置, 因此我们手动配置一下
通过Navicat 连接数据库
此时显示的是连接失败 , 因为我们需要一些其他设置才可以进行连接(很重要哦!也很容易忽略的地方)
操作命令
修改host的值为% , 具体指令如下
# 切换数据库
use mysql;# 修改host的值为%
update user set host='%' where user='root' and host='localhost';# 刷新权限
flush privileges;# 退出数据库exit;
此时我们再次进行连接测试,显示如下图所示, ok 到目前为止基本上已经配置完成喽
数据库读写速度测试
到目前为止我们前期工作已经准备完成了,接下来我们进行读写测试来进一步体验华为云Flexus云服务器X实例
创建测试数据库
通过SQL 语句创建测试表
首先我在git 上搜集了7767 条数据 , 我们接下来的目的就是通过py 将这些数据写入到数据库中, 查看用时,以及进行读取时查看用时
数据集如下
字段说明:
字段名数据类型说明labelint标签,其中 1 表示正向评论,0 表示负向评论reviewtext评论内容
创建测试表的sql语句如下:
CREATETABLE`test_table`(`id`intNOTNULLAUTO_INCREMENT,`label`intNOTNULL,`review`TEXTNOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
创建的数据表如下
Python写入测试
import mysql.connector
import time
import csv
# 数据库连接信息
config ={'user':'root','password':'root','host':'ip 地址','database':'sql_rc_test','raise_on_warnings':True}# 创建连接
creatConnector = mysql.connector.connect(**config)# 获取游标
cursor = creatConnector.cursor()# 开始时间
start_time = time.time()
file_path ='ChnSentiCorp_htl_all.csv'# 读取csv 数据, 并将数据插入到数据库withopen(file_path, mode='r', encoding='utf-8')as csv_file:
reader = csv.DictReader(csv_file)
rows =list(reader)# 将CSV行转换为列表,以便批量插入# 批量执行INSERT语句
query ="INSERT INTO test_table (label,review) VALUES (%s , %s)"
cursor.executemany(query,[(row['label'], row['review'])for row in rows])# 提交事务
creatConnector.commit()# 关闭游标
cursor.close()# 关闭连接
creatConnector.close()# 结束时间
end_time = time.time()# 打印所用时间print(f"总时间: {end_time - start_time} 秒")
将csv 中的数据写入到数据库用时如下:
当然我这里采用了优化的写法, 先将CSV文件中的所有行读取到内存中,然后使用
executemany()
方法批量执行
INSERT
语句。这可以大大提高插入速度,尤其是当处理大量数据时。
查看数据库中写入的数据
Python读取测试
测试代码如下:
import mysql.connector
import time
# 数据库连接信息
config ={'user':'root','password':'root','host':'ip 地址','database':'sql_rc_test','raise_on_warnings':True}# 创建连接
cnx = mysql.connector.connect(**config)# 获取游标
cursor = cnx.cursor()# 开始时间
start_time = time.time()# 假设我们有一个特定的ID,例如表中最大的ID
rand_id =7766# 替换为表中最大的ID
query ="SELECT * FROM test_table WHERE id = %s"
cursor.execute(query,(rand_id,))# 结束时间
end_time = time.time()# 总时间
total_time = end_time - start_time
# 打印查询结果(如果有的话)
result = cursor.fetchone()if result:print(f"查询ID {rand_id} 的结果: {result}")# 打印查询时间print(f"查询ID {rand_id} 的总时间: {total_time} 秒")# 关闭游标和连接
cursor.close()
cnx.close()
结果如下图所示:
总结
在创建MySQL镜像时,我们特别选择了华为云Flexus X实例,以实现性能加速。在测试阶段,通过对比写入和读取数据的时间,我们发现该实例的性能表现突出,显著优于其他同类产品。华为云Flexus X实例的MySQL加速功能确实名副其实,值得推荐。
版权归原作者 全栈若城 所有, 如有侵权,请联系我们删除。