数据库索引和高并发架构设计策略
"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地址分配到多个服务器上
![](https://csdnimg.cn/release/download_crawler_static/86361550/bge.jpg)
![](https://csdnimg.cn/release/download_crawler_static/86361550/bgf.jpg)
![](https://csdnimg.cn/release/download_crawler_static/86361550/bg10.jpg)
![](https://csdnimg.cn/release/download_crawler_static/86361550/bg11.jpg)
剩余82页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/613e94c8b5de4464b5ff3d3449169733_weixin_35816790.jpg!1)
- 粉丝: 24
- 资源: 304
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)