- 博客(10)
- 收藏
- 关注
原创 数据库索引中的最左前缀原则是什么?
最左前缀原则指的是在使用复合索引(由多个列组成的索引)时,查询条件必须从索引的最左边列开始,按顺序连续匹配索引中的列,才能充分利用该索引。如果查询条件跳过了索引的最左列或中间列,索引将无法被完全利用或完全失效。例如,假设有一个复合索引(A, B, C):查询条件为WHERE A =?时,可以使用索引查询条件为WHERE A =?AND B =?时,也可以使用索引查询条件为WHERE A =?AND B =?AND C =?时,可以完全利用索引但如果查询条件为WHERE B =?或WHERE C =
2025-10-24 15:11:53
712
原创 一致性哈希相较于普通哈希算法好在哪?
传统取模哈希算法在节点增减时需重新计算所有数据映射,而一致性哈希仅迁移受影响节点顺时针方向的数据。例如,扩容时仅需迁移少量数据(O(1/N)),而非全部数据(O(N))。已分配数据在节点增加时不会被重新分配到其他节点,确保服务连续性。删除节点时,其数据被顺时针下一个节点接管。通过为物理节点创建多个虚拟节点并均匀分布,实现更均衡的数据负载。系统可根据节点性能动态调整数据分配,例如通过监控负载将部分数据迁移到更高性能节点。虚拟节点覆盖整个哈希环,确保数据在节点间均匀分布,提升整体处理能力。
2025-10-21 03:27:40
232
原创 事件分发网络编程模式伟大在哪?
事件分发模式通过I/O多路复用(epoll/kqueue/select) 监听多个文件描述符(如socket),当事件就绪(数据到达、连接建立)时,仅唤醒对应线程处理,避免了线程空转的资源浪费。事件分发模式的组件(如事件处理器)之间松耦合,单个组件故障(如某个连接的业务逻辑崩溃)不会影响其他组件的正常运行。例如,电商系统需要新增“订单取消”事件时,只需定义新的事件类型(如ORDER_CANCELLED),并注册对应的事件处理器(如cancelOrderHandler),无需修改现有代码。
2025-10-21 02:57:40
268
原创 C 排序算法
插入排序在实现上,通常采用in-place排序(即只需用到 {\displaystyle O(1)} {\displaystyle O(1)}的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。在区间中随机挑选一个元素作基准,将小于基准的元素放在基准之前,大于基准的元素放在基准之后,再分别对小数区与大数区进行排序。
2023-12-02 22:40:37
383
1
原创 排序算法:归并排序
归并排序是一种经典的排序算法,它基于分治的思想,将一个待排序的序列逐步划分为较小的子序列,然后通过合并操作将这些子序列有序地合并成一个有序序列。分割:将待排序序列不断二分,直到每个子序列只包含一个元素或为空。合并:将相邻的子序列两两合并,合并过程中保持元素的有序性。具体操作是比较两个子序列的首元素,将较小的元素放入新的序列,并将该子序列的指针向后移动,重复这个过程直到某个子序列为空,然后将另一个非空子序列的剩余部分直接拷贝到新序列中。重复合并操作,直到所有子序列都合并成一个完整的有序序列。
2023-10-27 23:48:20
232
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅