31. Blob和text有什么区别?
-
Blob用于存储二进制数据,而Text用于存储大字符串。
-
Blob值被视为二进制字符串(字节字符串),它们没有字符集,并且排序和比较基于列值中的字节的数值。
-
text值被视为非二进制字符串(字符字符串)。它们有一个字符集,并根据字符集的排序规则对值进行排序和比较。
32. mysql里记录货币用什么字段类型比较好?
-
货币在数据库中MySQL常用Decimal和Numric类型表示,这两种类型被MySQL实现为同样的类型。他们被用于保存与金钱有关的数据。
-
salary DECIMAL(9,2),9(precision)代表将被用于存储值的总的小数位数,而2(scale)代表将被用于存储小数点后的位数。存储在salary列中的值的范围是从-9999999.99到9999999.99。
-
DECIMAL和NUMERIC值作为字符串存储,而不是作为二进制浮点数,以便保存那些值的小数精度。
33. Mysql中有哪几种锁,列举一下?
如果按锁粒度划分,有以下3种:
-
表锁: 开销小,加锁快;锁定力度大,发生锁冲突概率高,并发度最低;不会出现死锁。
-
行锁: 开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高。
-
页锁: 开销和加锁速度介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,并发度一般
34. Hash索引和B+树区别是什么?你在设计索引是怎么抉择的?
-
B+树可以进行范围查询,Hash索引不能。
-
B+树支持联合索引的最左侧原则,Hash索引不支持。
-
B+树支持order by排序,Hash索引不支持。
-
Hash索引在等值查询上比B+树效率更高。
-
B+树使用like 进行模糊查询的时候,like后面(比如%开头)的话可以起到优化的作用,Hash索引根本无法进行模糊查询。
35. mysql 的内连接、左连接、右连接有什么区别?
-
Inner join 内连接,在两张表进行连接查询时,只保留两张表中完全匹配的结果集
-
left join 在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。
-
right join 在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。
36. 说说MySQL 的基础架构图
Mysql逻辑架构图主要分三层:
-
第一层负责连接处理,授权认证,安全等等
-
第二层负责编译并优化SQL
-
第三层是存储引擎。
37. 什么是内连接、外连接、交叉连接、笛卡尔积呢?
-
内连接(inner join):取得两张表中满足存在连接匹配关系的记录。
-
外连接(outer join):取得两张表中满足存在连接匹配关系的记录,以及某张表(或两张表)中不满足匹配关系的记录。
-
交叉连接(cross join):显示两张表所有记录一一对应,没有匹配关系进行筛选,也被称为:笛卡尔积。
38. 说一下数据库的三大范式
-
第一范式:数据表中的每一列(每个字段)都不可以再拆分。
-
第二范式:在第一范式的基础上,分主键列完全依赖于主键,而不能是依赖于主键的一部分。
-
第三范式:在满足第二范式的基础上,表中的非主键只依赖于主键,而不依赖于其他非主键。
39. mysql有关权限的表有哪几个呢?
MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化。这些权限表分别user,db,table_priv,columns_priv和host。
-
user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。
-
db权限表:记录各个帐号在各个数据库上的操作权限。
-
table_priv权限表:记录数据表级的操作权限。
-
columns_priv权限表:记录数据列级的操作权限。
-
host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。
40. Mysql的binlog有几种录入格式?分别有什么区别?
有三种格式哈,statement,row和mixed。
-
statement,每一条会修改数据的sql都会记录在binlog中。不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。由于sql的执行是有上下文的,因此在保存的时候需要保存相关的信息,同时还有一些使用了函数之类的语句无法被记录复制。
-
row,不记录sql语句上下文相关信息,仅保存哪条记录被修改。记录单元为每一行的改动,基本是可以全部记下来但是由于很多操作,会导致大量行的改动(比如alter table),因此这种模式的文件保存的信息太多,日志量太大。
-
mixed,一种折中的方案,普通操作使用statement记录,当无法使用statement的时候使用row。
45万+

被折叠的 条评论
为什么被折叠?



