我使用的默认公共镜像Huawei Cloud EulerOS,不仅自带MySQL而且还有这次的还能对应用进行一个加速相对于其他镜像来说还是很不错的
Cloud EulerOS对MySQL应用加速的影响:
-
性能优化:Cloud EulerOS作为基于openEuler构建的Linux操作系统,提供了云原生、高性能的执行环境。当配置MySQL应用加速时,系统会在CPU、内存、网络、存储、内核等多个领域以及MySQL应用本身进行针对性调优,以达到最优状态。这种优化有助于提升MySQL在处理数据插入等操作时的性能。
-
资源利用率:应用加速还可能通过优化资源分配和利用,减少系统资源的浪费,从而为MySQL提供更多的资源来加速数据插入操作。
-
日志和索引处理:MySQL在插入大量数据时,需要处理索引更新和日志记录等操作,这些操作可能会成为性能瓶颈。Cloud EulerOS的MySQL应用加速可能会通过优化这些操作,减少它们对插入速度的影响。
购买配置
华为云官网:https://activity.huaweicloud.com/
基本配置参考如下:
镜像选择及MySQL加速
其他配置按需求选择即可
连接服务器
远程登录界面:
xshell登录界面:
根据个人ip进行登录即可
查询MySQL状态
sudo systemctl status mysqld
启动MySQL
第一次登录时密码为空-->回车即可
mysql -u root -p
添加配置
安全组规则-->
点击配置规则
添加规则
添加密码并修改权限
修改密码:这里密码为:123456(自行修改即可)
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
更新权限:
flush privileges;
查看用户权限:
SELECT host, user FROM mysql.user WHERE user='root';
若用户的host权限不为%则虚修改权限
修改用户权限:
UPDATE mysql.user SET host='%' WHERE user='root' AND host='localhost';
再次跟新权限则可退出:
更新
flush privileges;
退出
exit
根据个人ip登录Navicat既可:
C#插入数据测试
using System;
using System.Data;
using MySql.Data.MySqlClient;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
// 数据库连接信息
string connectionString = "server=139.9.180.164;user=root;password=123456;database=MyTest";
// 创建一个连接
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
connection.Open();
// 准备SQL命令
string query = "INSERT INTO test_table (id, sex, age, createdate, name) VALUES (@id, @sex, @age, @createdate, @name)";
// 使用MySqlCommand
using (MySqlCommand command = new MySqlCommand(query, connection))
{
// 定义参数
command.Parameters.Add("@id", MySqlDbType.Int32);
command.Parameters.Add("@sex", MySqlDbType.VarChar);
command.Parameters.Add("@age", MySqlDbType.Int32);
command.Parameters.Add("@createdate", MySqlDbType.DateTime);
command.Parameters.Add("@name", MySqlDbType.VarChar);
// 开始时间
DateTime startTime = DateTime.Now;
// 插入数据
for (int i = 0; i < 10000; i++)
{
// 生成随机数据
var randomData = GenerateRandomData();
// 设置参数值
command.Parameters["@id"].Value = i + 1; // 假设id是自增的,这里仅为示例
command.Parameters["@sex"].Value = randomData.Sex;
command.Parameters["@age"].Value = randomData.Age;
command.Parameters["@createdate"].Value = randomData.CreateDate;
command.Parameters["@name"].Value = randomData.Name;
// 执行命令
command.ExecuteNonQuery();
}
// 结束时间
DateTime endTime = DateTime.Now;
// 计算总时间和平均时间
TimeSpan totalTime = endTime - startTime;
double averageTime = totalTime.TotalSeconds / 10000;
// 打印结果
Console.WriteLine($"总时间: {totalTime.TotalSeconds} 秒");
Console.WriteLine($"平均时间: {averageTime} 秒");
}
}
}
// 生成随机数据的方法
static (string Sex, int Age, DateTime CreateDate, string Name) GenerateRandomData()
{
Random random = new Random();
string sexes = "MF"; // 假设性别只有男和女
string sex = sexes[random.Next(sexes.Length)].ToString();
int age = random.Next(18, 61);
DateTime createDate = DateTime.Now.AddDays(-random.Next(365 * 10)); // 假设在过去10年内随机生成日期
string name = new string(Enumerable.Repeat("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 10)
.Select(s => s[random.Next(s.Length)]).ToArray());
return (sex, age, createDate, name);
}
}
结果一:未使用MySQL加速
结果二:使用MySQL加速
至此~我们就完成了使用Cloud EulerOS对MySQL应用加速的对比
小结论
使用Cloud EulerOS对MySQL应用进行加速,有着显著提升就数据插入这些操作而言,在同等的因素条件下通过优化系统资源分配、减少性能瓶颈以及针对MySQL的特定优化,可以加快数据处理速度。