目录
5. 你们数据库是否支持emoji表情存储,如果不支持,如何操作?
7. mysql中int(20)和char(20)以及varchar(20)的区别
10. MySQL中DATETIME和TIMESTAMP的区别
1. Mysql 的内连接、左连接、右连接有什么区别?(已整合)
2. Mysql的binlog有几种录入格式?分别有什么区别?
2. 数据库索引的原理,为什么要用 B+树,为什么不用二叉树?
5. Hash索引和B+树区别是什么?你在设计索引是怎么抉择的?
12. B树和B+树的区别,数据库为什么使用B+树而不是B树?
14. B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据?
1. SQL优化的一般步骤是什么,怎么看执行计划(explain),如何理解其中各个字段的含义。
4. 关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?
4. select for update有什么含义,会锁表还是锁行还是其他。
7. 按照锁的粒度分,数据库锁有哪些呢?锁机制与InnoDB锁算法
1. 事务的隔离级别有哪些?MySQL的默认隔离级别是什么?
2. 一条sql执行过长的时间,你如何优化,从哪些方面入手?
十一、视图 & 游标 & 存储过程 & 存储函数 & 触发器等
2. 数据库中间件了解过吗,sharding jdbc,mycat?
6. 你是否做过主从一致性校验,如果有,怎么做的,如果没有,你打算怎么做?
4. 你是如何监控你们的数据库的?你们的慢日志都是怎么查询的?
5. 一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录
6. count(1)、count(*) 与 count(列名) 的区别?
一、MySQL 数据类型
1. 数据库存储日期格式时,如何考虑时区转换问题?
- datetime类型适合用来记录数据的原始的创建时间,修改记录中其他字段的值,datetime字段的值不会改
变,除非手动修改它。
- timestamp类型适合用来记录数据的最后修改时间,只要修改了记录中其他字段的值,timestamp字段的
值都会被自动更新。
如何考虑时区转换问题/看一下这个吧:数据库存储日期格式时,如何考虑时区转换问题?
2. Blob和text有什么区别?
- Blob用于存储二进制数据,而Text用于存储大字符串。
- Blob值被视为二进制字符串(字节字符串),它们没有字符集,并且排序和比较基于列值中的字节的数值。
- text值被视为非二进制字符串(字符字符串)。它们有一个字符集,并根据字符集的排序规则对值进行排
序和比较。
3. mysql里记录货币用什么字段类型比较好?
- 货币在数据库中MySQL常用Decimal和Numric类型表示,这两种类型被MySQL实现为同样的类型。他们
被用于保存与金钱有关的数据。
- salary DECIMAL(9,2),9(precision)代表将被用于存储值的总的小数位数,而2(scale)代表将被用于存储
小数点后的位数。存储在salary列中的值的范围是从-9999999.99到9999999.99。
- DECIMAL和NUMERIC值作为字符串存储,而不是作为二进制浮点数,以便保存那些值的小数精度。
4. MySQL如何获取当前日期?
SELECT CURRENT_DATE();
5. 你们数据库是否支持emoji表情存储,如果不支持,如何操作?
更换字符集utf8–>utf8mb4
6. varchar(50)中50的涵义
- 字段最多存放 50 个字符
- 如 varchar(50) 和 varchar(200) 存储 “jay” 字符串所占空间是一样的,后者在排序时会消耗更多内存
7. mysql中int(20)和char(20)以及varchar(20)的区别
- int(20) 表示字段是int类型,显示长度是 20
- char(20)表示字段是固定长度字符串,长度为 20
- varchar(20) 表示字段是可变长度字符串,长度为 20
8. 字段为什么要求定义为not null?
null值会占用更多的字节,并且null有很多坑的。
9. 如果要存储用户的密码散列,应该使用什么字段进行存储?
密码散列,盐,用户身份证号等固定长度的字符串,应该使用char而不是varchar来存储,这样可以节省空间
且提高检索效率。
10. MySQL中DATETIME和TIMESTAMP的区别
存储精度都为秒
区别:
- DATETIME 的日期范围是 1001——9999 年;TIMESTAMP 的时间范围是 1970——2038 年
- DATETIME 存储时间与时区无关;TIMESTAMP 存储时间与时区有关,显示的值也依赖于时区
- DATETIME 的存储空间为 8 字节;TIMESTAMP 的存储空间为 4 字节
- DATETIME 的默认值为 null;TIMESTAMP 的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP)
11. MySQL中TEXT数据类型的最大长度
- TINYTEXT:256 bytes
- TEXT:65,535 bytes(64kb)
- MEDIUMTEXT:16,777,215 bytes(16MB)
- LONGTEXT:4,294,967,295 bytes(4GB)