数据库,常用数据库


1.MySQL的复制原理以及流程
(1)主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;
(2)从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;
(3)从:sql执行线程——执行relay log中的语句;

从服务器的IO线程从主服务器获取bin-log二进制日志,并在本地保存为relay-log中继日志,然后通过SQL线程来在从服务器上执行中继日志中的内容,从而使从库和主库保持一致。

2.MySQL中myisam与innodb的区别
innoDB支持事物、行级锁、外键
Myisam表级锁、全文索引
Innodb引擎的四大特点:插入缓冲、二次写、自适应哈希索引、预读

3.MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义
(1)、varchar与char的区别
char是一种固定长度的类型,varchar则是一种可变长度的类型。

(2)、varchar(50)中50的涵义
最多存放50个字符,varchar(50)和(200)存储hello所占空间一样,但后者在排序时会消耗更多内存,因为order by col采用fixed_length计算col长度(memory引擎也一样)。

(3)、int(20)中20的涵义
是指显示字符的长度
但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示00000000001 ~~~00000000010,当字符的位数超过11,它也只显示11位,如果你没有加那个让它未满11位就前面加0的参数,它不会在前面加0
20表示最大显示宽度为20,但仍占4字节存储,存储范围不变;

(4)、mysql为什么这么设计
对大多数应用没有意义,只是规定一些工具用来显示字符的个数;int(1)和int(20)存储和计算均一样。

4. 主流数据库服务软件有哪些?
主流数据库服务软件有:甲骨文公司 Oracle、IBM DB2、微软 SQL Server、美国Sybase公司 Sybase
开源且跨平台的数据库软件有:
MySQL、PostgreSQL:开源且跨平台
Oracle、DB2:跨平台不开源
SQL Server:不跨平台不开源
Sybase:跨平台不开源

5.MySQL默认的3个库叫什么名字?哪个库里的数据不占用物理磁盘空间?
3个默认库:mysql、test 和 information_schema。
其中,information_schema库的数据不占用磁盘空间,仅保存在内存里。

6.请列出MySQL常用的数据类型,并写出定义这些数据类型所使用的关键字。
数值类型:所用关键字为int、float

字符类型:所用关键字为char、varchar

日期时间类型:所用关键字为year、time、datetime

枚举类型:所用关键字为set、enum

7.`数据库服务软件有哪些?
RDBMS(关系型软件):Oracle SQL SERVER MySQL DB2
NoSQL(非关系型软件):memcached Redis MogoDB

8. 简述索引的优点与缺点,默认情况下哪个文件保存表的索引信息?
索引的优点: 索引就像一本书的目录,加快查询记录的速度
索引的缺点: 会降低插入、更新记录的速度
默认情况下“表名.MYI” 文件保存表的索引信息

9.简述在表中创建外键字段要满足那些条件?
在表中创建外键字段要满足以下条件:
表必须都使用innodb存储引擎

表中外键字段的类型要匹配

被参照字段要有明确的索引

10.简述MySQL体系结构的组成,并描述每个组成部分的作用。
主要包括8个部分:
1.连接池:进程数限制、内存检查、缓存检查等。

2.SQL接口:用户通过sql客户端发过来的命令,由sql接口接收,sql操作(DML数据操作语言:查询、修改、升级数据等;DDL数据定义语言:创建一个新的数据库、新的索引、删除一个用户等;存储过程、视图触发器。

3.分析器: 分析查询语句 事务处理 对象访问权限。

4.优化器: 优化访问路径 、 生成执行树。

5.缓存和缓冲:保存sql查询结果。

6.存储引擎:用于管理存储的文件系统,将逻辑结构转换为物理结构的程序;不同的存储引擎有不同的功能和存储方式。

7.管理工具:备份,恢复,安全,移植,集群等,这些工具一般和文件系统打交道,不需要和mysql-server打交道,它们对应的都是命令。

8.物理存储设备(文件系统)。

11.简述MySQL数据库中插入、更新、查询、删除表记录的指令格式。
1)向表中插入记录的语法格式

insert (into)表名(字段名列表) values(字段名=值,字段名=值,…);

2)更新表记录的语法格式

update 表名(set) (字段名=值,字段名=值,…) where(条件表达式列表);

3)查询表记录的语法格式

select (字段名列表) (from) 表名 (where) 条件表达式列表;

4)删除表记录的语法格式

delete (from) 表名 (where) ( 条件表达式列表);

12.简述用户授权命令的语法格式。
grant 权限列表 on 数据库 to 用户名@“客户端地址”

identified by “密码” with grant option;

13.什么是MySQL集群?
MySQL 集群是一个无共享的(shared-nothing),分布式节点架构的存储方案,其目的是提供容错性和高性能。数据在单个数据节点(有时也称存储节点)上存储和复制,每个数据节点运行在独立的服务器上并维护数据的一份拷贝。每个集群还有管理节点。数据更新使用读已提交隔离级别(read-committed isolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phased commit)保证所有节点都有相同的数据 (如果任何一个写操作失败,则更新失败)。

14.MySQL 集群的特点?
为了实现最高性能。高可用性和冗余等目标。数据在集群内部的对等数据节点之间互相复制。数据复制采用同步机制,每个数据节点到所有其他数据节点上,数据在多个数据节点上存储。

15.MySQL中myisam与innodb的区别

16.什么是读写分离?
基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是环境服务器压力。

17.读写分离的好处
1.增加冗余

2.增加了机器的处理能力

3.对于读操作为主的应用,使用读写分离是最好的场景,因为可以确保写的服务器压力更小,而读又可以接受点时间上的延迟。

18.varchar与char的区别
char是定长变量,varchar是变长变量。 varchar(50)表示这一行的变量最大的存储字节是50个字节,int(20)同理。

19.计划,mysqldump以及xtranbackup的实现原理;备份恢复时间;备份恢复失败如何处理。

mysqldump是采用sql级别的备份机制,将数据表导成sql脚本文件,在不用的mysql版本之间升级时相对比较合适。

xtranbackup是innodb的hotbackup工具,xtrbackup在启动的时候会复制所有的数据文件,同时会启动一个后台进程,用于监视事务日志,并且从事务日志复制最新的修改。所以xtrbackup在启动的开始,就不懂的将事务日志的每个数据文件的修改都记录下来。

mysqldump的备份和恢复时间都很慢,任何数据的更新和变化都会被挂起。

xtrabackup的恢复时间比mysqldump快一点,但是会锁表。

备份恢复失败的话,其实原因很多,主要可能就是参数设置的不对,检查一下参数。

mysqldump -u用户名 -p密码(可以直接-p) -h主机名 --databases 数据库名 > 要备份的文件路径

mysqldump -u用户名 -p密码 -h主机名 --all-databases >要备份的文件路径

mysqldump -u用户名 -p密码 -h主机名 --no-data 数据库名 >要备份的文件路径

20.MySQL 数据库备份方式
增量备份、差异备份、完整备份

21.什么是CDN?
CDN的全称是内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。 CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Internet网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。

22.CDN的类型特点?
CDN的实现分为三类:镜像、高速缓存、专线。

(1)镜像站点(Mirror Site):是最常见的,它让内容直接发布,适用于静态和准动态的数据同步。但是购买和维护新服务器的费用较高还必须在各个地区设置镜像服务器,配备专业技术人员进行管理与维护。对于大型网站来说,更新所用的带宽成本也大大提高了。

(2)高速缓存:成本较低,适用于静态内容。Internet的统计表明,超过80%的用户经常访问的是20%的网站的内容,在这个规律下, 缓存服务器可以处理大部分客户的静态请求,而原始的服务器只需处理约20%左右的非缓存请求和动态请求,于是大大加快了客户请求的响应时间,并降低了原始服务器的负载。

(3)专线:让用户直接访问数据源,可以实现数据的动态同步。

23. CDN的工作原理?
若是忽略各种缓存,传统的网站访问过程为:

与传统访问方式不同,CDN网络则是在用户和服务器之间增加Cache层,将用户的访问请求引导到Cache节点而不是服务器源站点,要实现这一方式,主要是通过接管DNS实现。

24.MySQL 如何给testuser 用户对 testdb 数据库所有表授权访问,密码为 testpwd,请写出命令?

答案: grant all on testdb.* to testuser@“localhost” identified by “testpwd”

25.设置数据库管理员从本机登录的密码为999

答案:mysqladmin -hlocalhost -uroot -p password “999”

26.授权管理员用户可以在网络中的所有主机登录,对所有库 、表有完全权限且有授权的权限、 登陆密码tarena

答案:

mysql -hlocalhost -uroot -p999

grant all on . to root@"%" identified by “tarena”

with grant option;

27.查看当前登陆数据库服务器的用户是谁?

答案: select user();

28.查看当前登陆数据库服务器用户的权限?

答案: show grants;

29.查看当前数据库服务器有哪些授权用户。

答案: select user,host from mysql.user;

30.不允许数据库管理员在数据库服务器本机登录。

答案:

delete from mysql.user where host in (“127.0.0.1”,"::1",“localhost”,“svr5.tarena.com”);

flush privileges;

31.授权userweb用户可以从网络中的任意主机访问数据库服务器,对studb库下的tuser表有查看、更新username字段和age字段的权限 登录密码userweb888。

答案:

grant select,update(username,age) on studb.tuser to userweb@"%" identified by “userweb888”;

mysql -h192.168.4.5 -uuserweb -puserweb888

32.授权用户userweb 重置自己的登陆密码为123456,并验证能否使用新密码登陆

答案: set password=password(“123456”);

33.数据库管理员修改授权用户userweb的登录密码为654321,让授权用户userweb 使用新密码登陆数据库服务器。
答案:

mysql -h192.168.4.5 -uroot -ptarena

set password for userweb@"%"=password(“654321”);

mysql -h192.168.4.5 -uuserweb -p654321

34.撤销授权用户userweb 的所有授权并 使其不再能使用此用户连接数据库服务器。

答案:

mysql -h192.168.4.5 -uroot -ptarena

revoke all on studb.tuser from userweb@"%";

delete from mysql.user where user=“userweb” and host="%";

flush privileges;

35.授权webadmin用户可以从网络中的所有主机登录,对bbsdb库拥有完全权限,且有授权权限,登录密码为webadmin

答案:

grant all on bbsdb.* to webadmin@"%" identified by “webadmin” with grant option;

grant insert on mysql.* to webadmin@"%" ;

36.在客户端使用授权用户webadmin登录,把自己的权限授权给userone 用户 登录密码是 userone。
答案:

mysql -h192.168.4.5 -uwebadmin -pwebadmin

grant all on bbsdb.* to userone@"%" identified by “userone”;

37.撤销webadmin用户的授权权限。
答案:

mysql -h192.168.4.5 -uroot -ptarena

revoke grant option on bbsdb.* to webadmin@"%" ;

38.让所有授权用户连接数据库服务器后,对test库无任何权限
答案:

delete from mysql.db where user="";

flush privileges;

39.只允许数据库管理员从数据库服务器本机登录且有授权的权限 , 登录的密码123plj456。
答案:

mysql -h192.168.4.5 -uroot -ptarena

grant all on . to root@“localhost” identified by “123plj456” with grant option;

quit

mysql -hlocalhost -uroot -p123plj456

delete from mysql.user where host!=“localhost”;

flush privileges;

40.oracle 数据库备份方式
物理备份:开启网络监听,备份数据库文件。

RMAN 备份:通过表空间文件在RMAN 模式对ORACLE 数据备份。

41.影响mysql主从不同步的因素可能有哪些?
1.网络延迟
2.主从两台机器的负载不一样(单位时间内活跃的进程)
3.mysql异常宕机情况下,如果未设置sync_binlog=1或者innodb_flush_log_at_trx_commit=1很有可能出现binlog或者relaylog文件出现损坏,导致主从不一致
4.mysql本身的bug引起的主从不同步
5.mysql版本不一致
6.mysql的最大连接数用完了

42.,简述mysqldump备份数据时数据库名的表示方式。
参考答案

–all-databases 所有库

数据库名 指定单个库

数据库名.表名 指定库里的指定表

-B 数据1 数据库2 备份多个库

文章最后发布于: 2019-10-24 20:06:19

相关内容

    暂无相关文章