主流的数据库软件都有哪些?开原可以跨平台的数据库都有哪些? 甲骨文: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博主「如鲲一般」 |
|