对于按时间持续增长的订单大表,最常见且便于冷热数据管理的分区方式是?
按订单状态做LIST分区
按创建时间做RANGE分区
按用户ID做HASH分区
按主键随机分区
下列哪种做法最容易导致大表查询无法有效利用索引?
查询条件使用索引列的等值匹配
对索引列使用函数或隐式类型转换
联合索引遵循最左前缀原则
分页查询先按索引定位主键再关联回表
体系文档SQL走查单中推荐过滤条件复杂度(AND/OR)数量不高于多少个?
设计大表联合索引时,通常应优先考虑哪些原则?
区分度高的列尽量靠前
高频等值查询条件列优先
排序、分组字段可结合索引顺序设计
为每个查询条件都单独建一个索引
下列哪些措施有助于减少大事务带来的锁等待和性能问题?
把大批量更新拆成小批次提交
事务中避免不必要的远程调用和耗时操作
先更新热点行,再慢慢处理其他逻辑
按固定顺序访问资源,降低死锁概率
分区表可以替代索引,只要做了分区就不需要再为查询条件建索引。
在高并发更新场景中,先锁表再逐行处理通常比基于主键的细粒度更新更安全高效。
请简述大表按时间分区后,在归档、查询和维护方面分别有哪些收益。
请说明覆盖索引为什么能减少回表,并给出一个适合使用覆盖索引的业务场景。
某业务在批量扣减库存时频繁出现锁等待和死锁,请写出至少3种规避思路。