短链系统设计性能优化-分片策略优化

简介: 4.5 基于 base62 的分片策略Hash(long_url)%62作为分片键并将 hash(long_url)%62直接放到 short url

4.5 基于 base62 的分片策略

Hash(long_url)%62作为分片键


并将 hash(long_url)%62直接放到 short url


若原来的 short key 是 AB1234,则现在的 short key 是


hash(long_url) % 62 + AB1234

若 hash(long_url)%62=0,那就是0AB1234

这样,就能同时通过 short、long 得到分片键。


缺点:DB 的机器数目不能超过 62。


所以,最后最佳架构:

14.png


4.6 还能优化吗?


web server 和 database 之间的通信。


中心化的服务器集群和跨地域的 web server 之间通信较慢:如中国的 Server 需访问美国的 DB。


为何不让中国的 Server 访问中国的 DB 呢?


若数据重复写到中国 DB,如何解决一致性问题?很难解决!


思考用户的习惯:


中国用户访问时,会被 DNS 分配中国的服务器

中国用户访问的网站一般都是中国的网站

所以可按网站的地域信息来 sharding

如何获得网站的地域信息?只需将用户常访问的网站汇总在一张表。

中国用户访问美国网站咋办?

就中国 server 访问美国 db,也不会慢太多

中访中是用户主流,优化系统就是针对主要需求

于是,得到最终架构:

13.png


还可以维护一份域名白名单,访问对应地域的 DB。

目录
相关文章
|
4月前
|
测试技术
优化if-else的11种方案
优雅编码不仅提升程序效率,也增进代码可读性与维护性。通过早返回减少嵌套逻辑、运用三元运算符简化条件判断、采用`switch-case`优化多分支结构、实施策略模式灵活应对不同情境、利用查找表快速定位处理方式、封装函数明确职责划分、应用命令模式解耦操作与调用、引入状态模式管理复杂状态变化、重构条件表达式以增强清晰度、运用断言确保前提条件、及合理异常处理等十大技巧,使代码更加精炼与优雅。
88 4
优化if-else的11种方案
|
6月前
|
监控 数据库 索引
数据库索引的设计与优化策略
在数据库系统中,索引的设计和优化对于数据检索效率至关重要。本文探讨了数据库索引的基本概念,介绍了常见的索引类型及其适用场景,并深入分析了如何根据实际需求设计和优化索引,以提升数据库查询性能和整体系统效率。
|
1月前
|
存储 大数据 数据处理
大数据环境下的性能优化策略
大数据环境下的性能优化策略
53 2
|
2月前
|
存储 缓存 监控
性能优化技术:提升系统效率的关键策略
【10月更文挑战第19天】性能优化技术:提升系统效率的关键策略
|
5月前
|
存储 SQL 运维
MSSQL性能调优精要:索引深度优化、查询高效重构与并发精细控制
在MSSQL数据库的运维与优化领域,性能调优是一项复杂而细致的工作,直接关系到数据库的稳定性和响应速度
|
5月前
|
SQL 监控 数据库
|
5月前
|
SQL 监控 Serverless
MSSQL性能调优实战:索引精细化构建、SQL查询深度优化与并发管理策略
在Microsoft SQL Server(MSSQL)的性能调优实践中,索引的精细化构建、SQL查询的深度优化以及高效的并发管理策略是提升数据库性能不可或缺的三大支柱
|
5月前
|
关系型数据库 大数据 数据库
数据库索引的优化策略与实践
数据库索引在提升查询效率中起到关键作用,本文探讨了多种数据库索引优化策略及其实际应用,旨在帮助开发者更好地设计和管理数据库索引,提升系统性能和用户体验。
|
5月前
|
存储 监控 测试技术
现代数据库系统的性能优化策略与实践
随着数据量和复杂性的不断增加,现代数据库系统的性能优化成为软件工程中至关重要的一环。本文探讨了几种有效的性能优化策略,并结合实际案例展示了这些策略在提升数据库系统效率方面的应用。
|
7月前
|
存储 缓存 安全
【C/C++ 项目优化实战】 分享几种基础且高效的策略优化和提升代码性能
【C/C++ 项目优化实战】 分享几种基础且高效的策略优化和提升代码性能
389 0