松勤软件测试
坚持教育初心
既问收获也问耕耘
一、什么是数据库?
数据库是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
关系数据库管理系统(RDBMS)的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database
如今已有许多商业关系数据库管理系统,如Oracle,IBM DB2和Microsoft SQL Server等。
也有许多免费的开源关系数据库,如MySQL,mSQL(mini-SQL)和嵌入式JavaDB(Apache Derby)等。
二、MySQL数据库
1、定位:
开源、多平台、关系型数据库
目前使用最广泛、流行度最高的的开源数据库。
2、特点:
功能:支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,以二维表方式组织数据,有插件式存储引擎,支持多种存储引擎格式
部署:用编译安装的方式,或者二进制包的方式,按照“安装软件-创建实例-库表用户初始化”,可以很快完成数据库部署。
使用:使用标准的SQL语句进行数据库管理,简单SQL语句的并发和性能较好,对视图、存储过程、函数、触发器等支持的不是太好
监控:在命令行界面有一些常用的命令显示状态和性能,在图形界面方面,有比较多的开源监控工具来监控和记录数据库的状态,比如zabbix,nagios,cacti,lepus等
备份:逻辑备份 mysqldump/mysqldumper ,物理备份 用xtrabackup等工具进行备份;
高可用:MySQL高可用有多种方案,官方有基础的master-slave主从复制,新版本的innodb cluster,第三方的有MHA等高可用方案;
扩展:MySQL水平拆分,可以通过水平拆分proxy中间进行逻辑映射和拆分,扩大MySQL数据库的并发能力和吞吐量。
3、适用场景:
默认的innodb存储引擎,支持高并发,简单的绝大部分OLTP场景;
Tokudb存储引擎,使用高并发insert的场景;
Inforbright存储引擎,可以进行列压缩和OLAP统计查询场景;
4、选择注意:
使用MySQL进行OLTP业务时,需要注意数据量级,如果数据量级过大,需要进行水平拆分;
如果有OLAP需求mysql查询语句最常用10个,可以结合其他架构综合考虑。
三、测试人员面试:必问的 MySQL 查询语句
1、查看当前使用的是哪个数据库
mysql> select database();
另外mysql查询语句最常用10个,在下面2个语句的输出里也能看出当前库是哪一个
mysql> show tables;
mysql> status;
2、查看MySQL版本和状态
mysql> select VERSION();
mysql> status;
3、查看MySQL实例的当前状态(参数形式)
mysql> show status;
4、查看MySQL实例的参数
mysql> show variables;
查看最大连接数
mysql> show variables like ‘%max_connections%’;
5、查看MySQL实例当前的进程
mysql> show processlist;
6、查询所有数据
select * from Info 查所有数据
select Code,Name from Info 查特定列
7、根据条件查
select * from Info where Code=’p001′ 一个条件查询
select * from Info where Code=’p001′ and Natio n=’n001′ 多条件 并关系 查询
select * from Info where or Nation=’n001′ 多条件 或关系 查询
select * from Car where Price>=50 and Price2 查询所有系列中数量大于2的
12、分页查询
select * from Car limit 0,5 跳过几条数据取几条数据
13、去重查询
select distinct Brand from Car
14、查询建库、建表语句
mysql> show create database dbname;
指定库后才能查询建表语句
mysql> show create table tablename;
15、查询指定表的字段属性
mysql> show full columns from tablename;
或者
mysql> show full fields from tablename;
ღTheEndღ
我们一起去松勤学测试