面试官缓缓走来,头上飘着几根白发,在行走中随风飘摇,看的让人有一种想帮他薅下来的冲动。
这次面试的岗位是自动化运维,面试官坐下来冲着面试者小王呵呵一笑, “来啦”! 简单的俩字就让人感觉到一丝震慑,仿佛一股真气扑面而来。
小王把简历提上去,报以微笑,“你好面试官,我是来面试自动化运维的,这个是我的简历。”
面试官没有 接简历,点了下头,示意小王把简历放到桌子上,缓缓道“你的情况我基本了解了,一面的面试官都已经给我说了,不知道你对数据库了不了解,比如你对MySQL数据类型了解多少。”
小王松了一口气,多亏来面试的时候看过,小王指着旁边的白板说“借我白板一用”,说着便径直走了过去,拉过白板,开始阐述他对数据类型的理解
关于MySQL数据类型
在官网上MySQL支持将近39种数据类型,常用的大致可以分为三类:数值、日期/时间和字符串(字符)类型。
1. 数值类型
数值类型就包含了整数类型和浮点数类型:
关于数值类型,我在这里画了一个表:
举例: 比如tinyint 类型, 占一个字节,有符号-138-137 无符号位 0-255
如果一个人的年龄是0-100 ,理论上就可以使用tinyint 无服务号,0-255 足够用了, 而且占得字节数少。
举例2: 设置一个字段类型为 float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位
2. 日期和时间类型
3. 字符串类型
char 和varchar的区别
1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),
所以varchar(4),存入3个字符将占用4个字节。
区别如图:
使用建议:
1. 在指定数据类型的时候一般是采用从小原则,比如能用TINY INT的最好就不用INT,能用FLOAT类型的就不用DOUBLE类型,这样会对MYSQL在运行效率上提高很大,尤其是大数据量测试条件下。
2. 不需要把数据表设计的太过复杂,功能模块上区分或许对于后期的维护更为方便,慎重出现大杂烩数据表
面试官看着滔滔不绝的小王,按了暂停键,眉宇间带着微笑,仿佛要把小王收为弟子一样, “可以啊,小王,我在问几个问题吧”
面试官在白板上写上了几个问题:
1. MySQL的逻辑运算符的使用
2. 连接查询
3. MySQL忘记密码如何恢复
4. MySQL日志类型
你回头准备下这几个问题,然后再来讲一下,咱们这边不单单招聘自动化运维,还招聘MySQL数据库高级讲师,我觉得你很适合,好好准备。
总结
小王回到家,喜忧参半, 小王还不太确定自己要不要做高级讲师,但面试又不能听,算了先睡一觉吧,回头把面试官提的几个问题发到博客,也算对知识的一种总结嘛