自建数据库和云数据库区别和使用(以MySQL为例)
在程序员这个群体中,多数人是从事应用开发,在应用开发中一定会跟数据打交道。很多程序员入门学习就是Mysql数据库,它不仅仅是找工作面试最常问的,也是干私活必备的数据库。当然在如今数字基建的背景下,云数据库应运而生,这是对开发人员很友好的一个存在,作为开发时不用过多关注数据库怎么搭建维护,只需要以最简单的方式使用好数据库,从而可以专注于应用的开发。
那么今天我就分享一下以自建Mysql数据库和云数据库的区别和使用,供学习工作参考使用。
【MySQL】
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。开源,免费。 世界上最流行的开源数据库系统,功能足够强大,足以应付web应用。使用C和C++编写,支持包括window,linux 在内的等多种操作系统上运行。支持多线程,充分利用CPU资源。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。【来源百度百科】
【裸机linux搭建MySQL数据库】
前提:linux机器可以自己用VM创建一个虚拟机,但是我更推荐直接去华为云市场撸一台,毕竟828的福利不能错过。
本来我想用
现在就直接上手撸命令
1.找到mysql数据库yum源
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
2.安装升级软件包
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
2.1查看yum源是否生效
yum repolist enabled | grep mysql
3.yum安装mysql 安装过程中需要下载时间比较长 (这个过程我用了一个多小时)
yum install mysql-community-server
中间提示选择y
4.服务启动
service mysqld start
4.1查看mysql服务
service mysqld status
5.查看初始密码(5.7默认不允许使用空密码登录)
cat /var/log/mysqld.log | grep 'A temporary password'
6.使用初始密码登录mysql
注意 u 和p 后面不能加空格,否则报错
mysql -uroot -p'临时密码'
登录完成后现在你做什么操作都会有下面的提示
You must reset your password using ALTER USER statement before executing this statement (使用数据库前必须重置密码)
7.修改初始密码(以下都是在数据库中操作,不是在linux 系统中。以mysql>开头的命令行操作)
密码为强密码
要求包含大小写字母、数字及特殊字符,长度在6位以上
ALTER user 'root'@'localhost' identified by 'Mlscoder@123.';
7.1 以后就可以使用新密码登录
mysql -uroot -p'Mlscoder@123.'
9.开启远程登录 mysql 默认只能本地localhost登录,增加远程登录的权限 (方便使用navicat等工具远程链接)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Mlscoder@123.' WITH GRANT OPTION;
9.1查看当前用户的相关信息
select User,Host,authentication_string from user;
10.创建数据库
create database myuser;
使用数据库
use myuser;
查看当前数据库中的所有表
show tables ;
11.创建表
create table user (
id int (10) not null AUTO_INCREMENT comment 'id',
name varchar (100) comment '姓名',
age int (3) comment '年龄',
address varcahr(255) comment '地址',
PRIMARY key (id)
)DEFAULT CHARSET=utf8mb4 comment '用户信息表' ;
11.1 查看表结构
desc user ;
12.表中插入数据
insert into user (id,name,age,address ) values (1,'张三',20,'上海市浦东新区') ;
12.1 查看表数据
select * from user ;
12.2 不指定id插入数据,在创建表DDL中,AUTO_INCREMENT 表示主键自增。
insert into user (name ,age ,address) values ('李四',25,'上海市徐汇区');
select * from user;
当然很少人会这样用数据库,即便是大佬,也是使用navicat、toad、PL/SQL等等一系列的数据库管理工具,当然一些并不是免费的。
整完了自己搞的,我们上手做一个云数据库吧,体验一把什么叫上云,也是拿华为云RDS来演示使用。
【华为云数据库RDS是啥】
华为云关系型数据库(Relational Database Service,简称RDS)是一种基于云计算平台的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。通过华为云关系型数据库服务的管理控制台,用户几乎可以执行所有必需任务而无需编程,简化运营流程,减少日常运维工作量,从而专注于开发应用和业务发展。创建RDS实例后,您可以通过多种方式连接实例,连接后可以进行数据导入导出,以及创建数据库和帐户等操作。
行了废话不多说了,动手直接搭建一下。
前后从创建到可以使用也就2分钟,比起自己下载来快多了,其实也是依托着镜像容器来处理的,一个数据库实例放在一个容器中,这个在深一点就是高级运维工程师需要做的内容,容器集群的管理。
华为云的web在线数据管理页面感觉还是很大气的
然后我也是同样的新建一个user表,在操作mysql的数据库的时候都是执行的DDL或者DML语句,不管是在线管理还是客户端工具,可以协助生成SQL语句,不过像这种创建表的语句还是可以的设置的, 但是复杂的查询语句还是需要自己来写。
SQL的中文名叫结构化查询语言(Structured Query Language),不管是mysql、oracle还是sql server 都是用sql来搞。
换句话说, sql 跟Java、Python一样,也是一个语言。
通过生成的DDL语句,来执行操作,这个也比较简单。
但是让我比较中意的功能是SQL诊断和慢查询日志
我用之前做的一个项目的demo来演示一下什么叫SQL诊断。从我的本地库中导入云数据库一个数据库,因为是这个开发库,毕竟生产生的数据有些敏感,这里仅仅演示功能使用。
目标:用华为云数据库诊断一下我们上面的这个SQL 是否存在性能问题,以方便我们开发有针对性的优化这个问题哦
先把数据库结构和数据导入
之后进入到刚刚导入的库中,打开SQL 性能诊断,复制上刚刚的sql语句,提交诊断,很快就可以得到诊断结果。
看下图的相关结果:
在诊断结果中,有比较详细的优化的建议,简直是神器。
除此之外还有一个就是慢查询日志,这个功能在云DBA中,需要开启DAS收集慢日志的功能。
不过由于本身没有太多的生产数据,仅仅做下演示了。在日志收集上除了收集慢查询,还可以增加一下热点点击,比如像知道那个功能使用的多,那个查询最频繁,知道用户的用为,反馈到运营上,更有针对的对产品做出优化。
【总结】
在使用和操作上,云数据库在快速搭建上有着不可比拟的优势,主要是依托于镜像容器的解决方案实现秒级搭建,从设置到使用,前后不过1分钟,极大的减少了开发人员的在数据库上搭建的时间。其次便捷的web操作界面、SQL诊断、慢查询日志等在分析,为企业级别开发也是如虎添翼。同时,减少了自购服务器的繁琐和成本,本身具有的弹性伸缩的特点,保障了日后业务增长可能需要的快速扩容,成为企业用户或者个人开发者的一个不错的选择。
- 点赞
- 收藏
- 关注作者
评论(0)