愿景:"让编程不再难学,让技术与生活更加有趣"
更多架构课程请访问 xdclass.net
目录
第3集 2038年1月19号会有多少系统产生bug,相似字段类型区分《下》
第1集 数据库查询关键词执行顺序
简介:数据库查询指令的执行顺序
- 考点:考查数据库查询指令的执行顺
- 难度:【 ** *】
- 数据库查询的指令有多个,说下执行顺序 select、where、from、group by、having、order by
from 从哪个表查询
where 初步过滤条件
group by 过滤后进行分组[重点]
having 对分组后的数据进行二次过滤[重点]
select 查看哪些结果字段
order by 按照怎样的顺序进行排序返回[重点]
select video_id,count(id) num from chapter group by video_id having num >10
order by video_id desc
- 建议:去网上找sql练习题
第2集 设计数据库表时相似字段类型你能区分吗《上》
简介:设计数据库的时候相似类型的字段区分
- 考点:是否知道常用的相似字段他们的区别
- 难度:【 ** *】
- varchar(len) char(len) len存储的是字符还是字节
- MySQL中的varchar和char有什么区别,应该怎么选择
对比项 | char(16) | varchar(16) |
---|---|---|
长度特点 | 长度固定,存储字符 | 长度可变,存储字符 |
长度不足情况 | 插入的长度小于定义长度时,则用空格填充 | 小于定义长度时,按实际插入长度存储 |
性能 | 存取速度比varchar快得多 | 存取速度比char慢得多 |
使用场景 | 适合存储很短的,固定长度的字符串,如手机号,MD5值等 | 适合用在长度不固定场景,如收货地址,邮箱地址等 |
第3集 2038年1月19号会有多少系统产生bug,相似字段类型区分《下》
简介:设计数据库的时候相似类型的字段区分
- 考点:是否知道常用的数据库时间类型相似字段的区别
- 难度:【 ** **】
- MySQL中的datetime和timestamp有什么区别
类型 | 占据字节 | 范围 | 时区问题 | |
---|---|---|---|---|
datetime | 8 字节 | 1000-01-01 00:00:00到 9999-12-31 23:59:59 | 存储与时区无关,不会发生改变 | |
timestamp | 4 字节 | 1970-01-01 00:00:01 到 2038-01-19 11:14:07 | 存储的是与时区有关,随数据库的时区而发生改变 |
- 为什么timestamp只能到2038年
MySQL的timestamp类型是4个字节,最大值是2的31次方减1,结果是2147483647,
转换成北京时间就是2038-01-19 11:14:07
第4集 场景模拟之千万级Mysql数据表分页查询优化
简介:针对大数据量sql分页优化思路
- 考点:是否有大数据分页优化思路
- 难度:【 ** **】
- 线上数据库的一个商品表数据量过千万,做深度分页的时候性能很慢,有什么优化思路
现象:千万级别数据很正常,比如数据流水、日志记录等,数据库正常的深度分页会很慢
慢的原因:select * from product limit N,M
MySQL执行此类SQL时需要先扫描到N行,然后再去取M行,N越大,MySQL扫描的记录数越多,SQL的性能就会越差
1、后端、前端缓存
2、使用ElasticSearch分页搜索
3、合理使用 mysql 查询缓存,覆盖索引进行查询分页
select title,cateory from product limit 1000000,100
4、如果id是自增且不存在中间删除数据,使用子查询优化,定位偏移位置的 id
select * from oper_log where type='BUY' limit 1000000,100; //5.秒
select id from oper_log where type='BUY' limit 1000000,1; // 0.4秒
select * from oper_log where type='BUY' and id>=(select id from oper_log where type='BUY' limit 1000000,1) limit 100; //0.8秒
第5集 BAT大厂里面 应用版本更新,数据库上线流程
简介:掌握大厂里面数据库上线流程,版本更新流程
- 考点:是否有正确的数据库部署流程
- 难度:【 ** ***】
- 你公司里面产品迭代更新,开发好代码和数据库,上线流程是怎样的