分享

数据库基础灵魂22问

 yi321yi 2020-01-13

主流的数据库软件都有哪些?开原可以跨平台的数据库都有哪些?

甲骨文:orcale

IBM:DB2

微软:SQL server

开原的可以跨平台的:

Mysql:开源切跨平台;         

Orcale   DB2:跨平台不开源

SQL server  :不跨平台,不开源;

mysql的服务进程叫什么名字?端口是多少?默认数据库的目录?

进程名:mysqld           

端口:3306             

默认目录:/var/lib/mysql

mysql默认的三个库名叫什么名字?哪个库的数据不占磁盘空间?

mysql  ,test   , information_schema

information_schema:不占磁盘空间,存在内存里面。

请列出mysql的常用数据类型?写出定义这些数据类型所定义的关键字?

数值类型:int (整数性)、float (浮点型)

玫举类型:set 、  enum

字符类型:char、varchar

日期时间类型:time、year、datetime

索引的优点和缺点?默认保存索引信息的是哪个文件?

优点:索引像一本书的目录,可以加快查询的速度;

缺点:会降低插入、更新表记录数据的速度;

索引信息默认保存在表名.MYI的文件中。

请简述在表中创建外键字段要满足哪些条件?

1.表类型必须都是Innodb存储引擎;

2.表的外键字段的类型要明确匹配;

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

简述mysql的结构体系?每个组件都有什么作用?

连接池:内存检查,缓存检查,进程数的限制

SQL接口:用户通过sql客户端发来的命令,由sql接口接收,执行sql操作。(DML操作语言:查询,修改,升级数据。DDL数据操作语言:创建新的库,新的索引,创建新的用户);存储过程,视图触发器。

分析器:分析数据库的查询语句、数据处理、对象的访问权限;

优化器:优化访问路径,生成执行树;

缓存缓冲器:查询结果的缓存;

存储引擎:用来管理存储的文件系统,讲逻辑结构转化为物理结构的程序,不同的存储引擎有不同的存储方式和功能;

管理工具:负责数据的备份,回复,安全,移植,集群,这些管理用具一般和文件系统打交道,不和mysql-server打交道,都是通过命令去执行;

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

mysql数据库访问的执行过程?

1.客户端发起请求                             

2.服务器开启线程相应客户端的请求

3.客户端发起sql查询语句          

4.缓存查询,先记录sql语句,查看是否有缓存,有缓存直接在缓存提出,如果缓存没有则进入分析器                    

5.分析器:进行分析sql命令是否正确,将客户的命令进行切换,将每个词用空格隔开,获得用户要查询的表,内容,用户权限

6.优化器:执行路径的选择,生成执行树。

7.存储引擎:管理存储的文件系统;不同的存储引擎有不同的功能和存储方式。

简述mysql数据库中查询,插入,更新,删除表记录的指令格式?

插入记录的指令格式:insert    into   表名(字段名)    values(key值)

查询记录的指令格式:select    字段名    from    表名      where    条件

更新表记录的指令格式:update   表名    set    字段=更新的key值;

删除表记录的指令格式:delete   from    表名   where    条件

简述用户授权命令的格式?

grant    权限     

on   库.表      

to     用户名@访问地址      

 identified   by   密码    

with   grant   option(是否给用户授权的权限);

简述mysqldump  备份数据库时库名的表示方式?

--all-database :表示所有库       或     -A

数据库名    :表示单个库

数据库名.表名:表示单个表

-B  数据库1,数据库2,.... :表示备份多个库

什么是mysql集群?

mysql集群是一个无共享的,分布式节点架构的存储方案。

建造集群的目的是:提高数据的容错性和高可用性能。

mysql集群和mysql主从的区别?

集群:包含成员,消息,冗余,故障转移等功能;

主从:也可以理解为数据的复制,也就是一个服务器想另一个服务器发送消息的功能。

mysql集群的特点?

是为了实现最高性能,达到高可用性和冗余等目标。主库对从库进行数据复制。数据复制采用的是同步机制,主库数据同步到其他从库数据节点上,数据在多个数据节点保存。

mysql集群有一些创建高可用系统的专用功能,主要包括哪些?

节点回复、日志、检查点、系统恢复、热备份恢复、无单点故障、故障转移,分区、联机操作。

mysql中myisam和innodb的区别?

存储限制:             

myisam支持256G、                   

innodb支持64G

事务:myisam不支持事务                    

 innodb支持事务

索引:两者都支持

锁粒度:myisam支持标级锁        

             innodb支持行级锁

数据压缩:myisam支持数据压缩 

 innodb不支持数据压缩

外键:  myisam不支持外键   

innodb支持外键

什么是读写分离?

读写分离就是让主库处理事务性查询,从库处理select查询。数据库复制被用来把事务性查询导致的数据变更同步到从库,当然,主库也可以select查询。

读写分离最大的作用就是缓解服务器的压力。

读写分离的好处都有哪些?

增加冗余;            

缓解服务器的压力;增加机器的处理能力;

对于读应用较多的,应用读写分离是最好的,可以确保写的服务器压力更小,而读的服务器又可以接受点时间上的延迟。

 读写分离提高性能的原因?

1.物理服务器增加;负荷增加;

2.主库和从库只负责自己的写和读操作,极大的缓解了X锁和S锁;

3.从库可以配置为myisam引擎,提高读的性能及节省系统开销;

4.从库同步主库的数据和主库直接写还是有区别的,从库是通过主库发来的binlog来同步的,但是呢,区别在于主库向从库发送binlog是异步的,所以同步数据也是异步的。

5.读写分离适用于读的操作应用较多的场景,如果只有一台服务器,当select很多时,update和delete会被select的访问堵塞,这时就需要等待select结束,并发性能不高;当读和写比例相近时,可以设置成互为主从。

6.分摊读写,这个就是拿机器数量去换性能。

7.增加冗余,提高容错,当主故障时,可以迅速地把从切换为主来使用。

char和varchar的区别?

char:是定长变量                            

 varchar:是可变长的变量

mysqldump和xtranbackup的实现原理?备份恢复时间?

mysqldump:采用了sql级别的备份机制,是把数据导成sql脚本文件,在不同的mysql版本升级之间较合适;

xtranbackup:是innodb的hotbackup工具,在启动的时候会复制所有的日志文件,同时会启动一个后台进程,监视事务日志,并且从事务日志中复制最新的修改。因此,在xtranbackup启动的开始就将每个事务日志的修改都记录了下来。

mysqldump:备份恢复的时间都很慢,任何数据的更新和变化都会被挂起,不适用于生产中的备份,

xtranbackup:备份和恢复的时间比nmysqldump快,但是会锁表。

mysql中的innodb的行锁,是通过加载什么上面完成的?

是通过加在索引上来实现的。

mysql的数据备份方式?

完全备份、增量备份、差异备份

mysql的主从复制原理?

分为同步复制和异步复制,实际复制架构中大部分为异步复制。

复制过程:1.slave上的IO进程连接到master,并请求从binlog日志的指定位置复制之后的日志内容;

2.master接到来自slave的IO请求后,通过IO的请求读取binlog日志的指定位置之后的日志内容,返回给slave的IO线程,在返回信息中还包括了本次master的binlog的文件名称以及binlog日志的位置;

3.slave的接收到IO进程的返回信息后,将日志信息依次添加到relay-log的最末端,

4.sql进程检测到relay-log增加了新内容,解析成sql命令,在本身执行;

同步复制:把数据都load到内存中,对内存的要求非常大,实施性不大。

————————————————

来源:CSDN博主「如鲲一般」

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多