数据库索引和高并发架构设计策略

需积分: 0 0 下载量 141 浏览量 更新于2024-06-30 收藏 1.14MB DOCX 举报
"2019面试策略" 索引 索引是数据库中一种重要的数据结构,用于提高数据的检索速度。索引的概念类似于书籍的索引,它允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。 索引的优点 1. 创建唯一性索引,保证数据库表中每一行数据的唯一性 2. 大大加快数据的检索速度,这也是创建索引的最主要的原因 3. 减少磁盘IO(向字典一样可以直接定位) 索引的缺点 1. 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加 2. 索引需要占用额外的物理空间 3. 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度 索引的分类 1. 普通索引和唯一性索引 * 普通索引:CREATE INDEX mycolumn_index ON mytable(mycolumn) * 唯一性索引:保证在索引列中的全部数据是唯一的,CREATE UNIQUE INDEX mycolumn_index ON mytable(mycolumn) 2. 单个索引和复合索引 * 单个索引:对单个字段建立索引 * 复合索引:又叫组合索引,在索引建立语句中同时包含多个字段名,最多16个字段,CREATE INDEX name_index ON userInfo(firstname, lastname) 3. 顺序索引、散列索引、位图索引 高并发 高并发是互联网分布式架构设计中的一种重要概念,用于提高系统的并发能力。主要有两种方式: 1. 垂直扩展(ScaleUp):提升单机处理能力 * 增强单机硬件性能,例如:增加CPU核数、升级更好的网卡、升级更好的硬盘、扩充硬盘容量、扩充系统内存 * 提升单机架构性能,例如:使用Cache来减少IO次数、使用异步来增加单服务吞吐量、使用无锁数据结构来减少响应时间 2. 水平扩展(ScaleOut):增加机器数量,分布式处理请求 负载均衡 负载均衡是互联网分布式架构设计中的一种重要技术,用于将入站流量分配到多个服务器上,以提高系统的并发能力和可用性。常见的负载均衡方式有: 1. 轮询法(Round Robin):将入站流量轮询分配到多个服务器上 2. 随机法(Random):将入站流量随机分配到多个服务器上 3. 最少连接法(Least Connection):将入站流量分配到当前连接数最少的服务器上 4. IP哈希法(IP Hash):将入站流量根据客户端的IP地址分配到多个服务器上 领导选举型 领导选举型是一种分布式系统中的一种常见的设计模式,用于解决多个节点之间的协调问题。在领导选举型中,多个节点之间会选举出一个领导节点,领导节点负责协调其他节点之间的通信和操作。 流量分发 流量分发是互联网分布式架构设计中的一种重要技术,用于将入站流量分配到多个服务器上,以提高系统的并发能力和可用性。常见的流量分发方式有: 1. 轮询法(Round Robin):将入站流量轮询分配到多个服务器上 2. 随机法(Random):将入站流量随机分配到多个服务器上 3. 最少连接法(Least Connection):将入站流量分配到当前连接数最少的服务器上 4. IP哈希法(IP Hash):将入站流量根据客户端的IP地址分配到多个服务器上