这份记录叫什么?
计算机基础 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
为什么先写日志比直接写数据安全?
读到别人没提交的数据叫什么?
这两个差别在哪?
为什么不都用最严的?
两个人同时读一行,会互相等待吗?
这样做的好处是什么?
怎么减少死锁?
事务里能不能做网络请求?
为什么按页而不是按行?
参考答案(家长):日志是顺序追加、写得快,且写完就能保证不丢。
参考答案(家长):回滚日志。
参考答案(家长):一个是数据变了,一个是记录多了或少了。
参考答案(家长):脏读。
参考答案(家长):不会,读锁可以共享。
参考答案(家长):会大量加锁等待,吞吐量掉得厉害。
参考答案(家长):让所有事务按同样顺序访问资源,事务尽量短。
参考答案(家长):读不阻塞写、写不阻塞读,并发能力大幅提升。
参考答案(家长):硬盘按块读写,按页对齐效率最高。
参考答案(家长):最好不要,网络慢会让事务拖很久。
这用到了什么原理?
为什么不立刻刷?
这两步各叫什么?
备份该放在哪?
为什么"有备份"不等于"能恢复"?
从库的数据一定和主库一样吗?
举一个必须读主库的场景。
按什么规则拆比较好?
这说明什么?
什么场景适合键值存储?
参考答案(家长):批量刷比每次都刷快得多,日志已经保证了不丢。
参考答案(家长):局部性原理。
参考答案(家长):另一台机器、甚至另一个地方。
参考答案(家长):重做和回滚。
参考答案(家长):可能有短暂延迟,这叫主从延迟。
参考答案(家长):备份可能损坏、不完整、或没人会用。
参考答案(家长):能让数据均匀分散的规则,避免某台特别满。
参考答案(家长):如刚下单就跳转到订单详情页。
参考答案(家长):如缓存、会话信息,只按键取值、不需要复杂查询。
参考答案(家长):分布式带来扩展性,也带来复杂度,要权衡。
记账系统该用哪种?
改了数据库后缓存怎么办?
画出这三张表。
这两个各用到什么操作?
借阅表该给哪列加索引?
想出解决办法。
给每块写一句话。
编译器和翻译软件有什么不同?
把这六步记下来。
把 int a = 12; 切成几个单元?
参考答案(家长):删掉或更新缓存,否则会读到旧数据。
参考答案(家长):关系型,钱的事必须有事务。
参考答案(家长):前者用连接,后者用分组计数加排序。
参考答案(家长):借阅表存书号和读者号,是多对多的关联表。
参考答案(家长):借书时加锁,或用"库存大于 0"作为更新条件。
参考答案(家长):读者号和书号,都是常用的查询和连接列。
参考答案(家长):编译器必须精确无歧义,还要保证语义完全等价。
参考答案(家长):能一句话说清,说明理解到位。
参考答案(家长):五个:int、a、=、12、分号。
参考答案(家长):前三步理解代码,后三步生成代码。