w横切

http://www.agildata.com/database-sharding/

When Database Sharding is Appropriate

Database Sharding is an excellent fit for many types of business applications, those with general purpose database requirements. It can also be used effectively for Data Warehousing applications, and as there are many available products and technologies to accomplish this, we will not focus on this element here.

The general purpose database requirements that are a fit for sharding include:

  • High-transaction database applications
  • Mixed workload database usage
    • Frequent reads, including complex queries and joins
    • Write-intensive transactions (CRUD statements, including INSERT, UPDATE, DELETE)
    • Contention for common tables and/or rows
  • General Business Reporting
    • Typical “repeating segment” report generation
    • Some data analysis (mixed with other workloads)

To determine if Database Sharding is applicable to your specific application or environment, the most important thing to evaluate is how well your database schema lends itself to sharding. In essence, Database Sharding is a method of “horizontal” portioning, meaning that database rows (as opposed to columns) for a single schema table are distributed across multiple shards. To understand the characteristics of how well sharding fits a given situation, here are the important things to determine:

  • Identify all transaction-intensive tables in your schema.
  • Determine the transaction volume your database is currently handling (or is expected to handle).
  • Identify all common SQL statements (SELECT, INSERT, UPDATE, DELETE), and the volumes associated with each.
  • Develop an understanding of your “table hierarchy” contained in your schema; in other words the main parent-child relationships.
  • Determine the “key distribution” for transactions on high-volume tables, to determine if they are evenly spread or are concentrated in narrow ranges.

最新文章

  1. bzoj1202--带权并查集+前缀和
  2. Synchronized和Static Synchronized区别
  3. iOS 删除已经配置的类库和移除CocoaPods
  4. Linux下diff打补丁方法
  5. 文本编辑器Nano实用快捷键
  6. c++使用mysql的api连接相关问题
  7. cf C. Jeff and Rounding
  8. POJ 2152 Fire(树形DP)
  9. 对常量的引用(reference to const)的一般用途(转载)
  10. FPGA笔记-阅读.dat文件
  11. asp.net mvc项目远程发布到windows server服务器
  12. linux udev、mdev 介绍
  13. 一份从0到1的java项目实践清单
  14. Linux CFS调度器之pick_next_task_fair选择下一个被调度的进程--Linux进程的管理与调度(二十八)
  15. Spring是如何校验XML的
  16. Linux 的基本操作(系统的安装)
  17. node常用模块---path
  18. html(二)常见符号
  19. WEB 报表导入导出操作
  20. Pandas DataFrame笔记

热门文章

  1. 币种大写算法(js)
  2. 正确理解这四个重要且容易混乱的知识点:异步,同步,阻塞,非阻塞,5种IO模型
  3. How to setup a native windows server 2003 tftpd
  4. Manticore search加一个中文分词
  5. ngnix 配置说明
  6. Spiral and Zigzag
  7. hexo个人博客添加宠物/鼠标点击效果/博客管理
  8. 最简单之安装hadoop单机版
  9. kubernetes(K8S)快速安装与配置集群搭建图文教程
  10. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid continuation byte