What Drives the Need for Database Sharding? DATABASE SHARDING

wIO瓶颈

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

What Drives the Need for Database Sharding?

Database Sharding is a highly scalable approach for improving the throughput and overall performance of high-transaction, large database-centric business applications. Since the inception of the relational database, application engineers and architects have required ever-increasing performance and capacity, based on the simple observation that business databases generally grow in size over time. Adding to this general trend is the extreme expansion of business data due to the evolution of the Internet economy, the Information Age, and the prevalence of high-volume electronic commerce.

As any experienced database administrator or application developer knows all too well, it is axiomatic that as the size and transaction volume of the database tier incurs linear growth, response times tend to grow logarithmically. This is shown in the following diagram:

Figure 1. The growth in database transactions and volumes has a large impact on response times.

The reasons for the performance and scalability challenges are inherent to the fundamental design of the database management systems themselves. Databases rely heavily on the primary three components of any computer:

  • CPU
  • Memory
  • Disk

Through benchmark tests that we have performed, we know that each of these elements on a single server can only scale to a given point, and then other measures must be taken. While it is clear that disk I/O is the primary bottleneck, as database management systems have improved they also continue to take greater advantage of CPU and memory. In fact, we have observed that it is the matching of these three factors that determines maximum performance. In other words, you cannot add an unlimited number of CPUs (or processing cores) and see a commensurate increase in performance without also improving the memory capacity and performance of the disk drive subsystem. It is also common to see a diminishing return as resources are added to a single database server. These factors are especially true in mixed-use business transaction systems; systems that perform a high volume of read and write transactions, as well as supporting generalized business reporting tasks.

Therefore, as business applications gain sophistication and continue to grow in demand, architects, developers and database administrators have been presented with a constant challenge of maintaining database performance for mission critical systems. This landscape drives the need for Database Sharding.

时间: 2024-10-17 05:59:42

What Drives the Need for Database Sharding? DATABASE SHARDING的相关文章

错误代码: 1007 Can't create database 'test'; database exists

1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:create database test 错误代码: 1007 Can't create database 'test'; database exists 执行耗时 : 0 sec 传送时间 : 0 sec 2.错误原因 执行创建数据库时,两次执行了同一SQL语句,导致重复创建数据库 CREATE DATABASE test; 3.解决办法 (1)不执行该语句 (2)如果t

错误代码 1007 Can't create database 'test' database exists

1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:create database test 错误代码: 1007 Can't create database 'test'; database exists 执行耗时 : 0 sec 传送时间 : 0 sec 2.错误原因 执行创建数据库时,两次执行了同一SQL语句,导致重复创建数据库 CREATE DATABASE test; 3.解决办法 (1)不执行该语句 (2)如果t

Database Security: Database Vulnerability

Security breaches are an increasing phenomenon. As more and more databases are made accessible via the Internet and web-based applications, their exposure to security threats will rise. The objective is to reduce susceptibility to these threats. Perh

[转]Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications

This article is from blog of Amazon CTO Werner Vogels. -------------------- Today is a very exciting day as we release Amazon DynamoDB, a fast, highly reliable and cost-effective NoSQL database service designed for internet scale applications. Dynamo

[李景山php]每天laravel-20160921|Redis Database.php

<?php namespace Illuminate\Redis; use Closure; use Predis\Client; use Illuminate\Support\Arr; use Illuminate\Contracts\Redis\Database as DatabaseContract; // this is Redis namespace , father is Database Contract class Database implements DatabaseCont

Database snapshot

Database Snapshot 是数据库某一个时间点的一个read-only副本,这个read-only副本占用的存储空间不一定很大.如果Source DB的某一个page修改了,那么在这个Page被修改之前,数据库会先copy一份数据,存放在Database Snapshot 的数据库Files中,即保留这个page的copy.SourceDB中的数据会修改,但是Database Snapshot的数据不会修改. The actual space needed for each snaps

数据库查询Database中的表

public class UserDA { SqlConnection conn; SqlCommand cmd; public UserDA(Use uuu) { conn =new SqlConnection( "server=" + uuu.Server + ";database=" + uuu.Database + ";user=" + uuu.User + ";pwd=" + uuu.Pwd); cmd = conn

[Hive - LanguageManual] Create/Drop/Alter Database Create/Drop/Truncate Table

Hive Data Definition Language Hive Data Definition Language Overview Create/Drop/Alter Database Create/Drop/Truncate Table Alter Table/Partition/Column Create/Drop/Alter View Create/Drop/Alter Index Create/Drop Function Create/Drop/Grant/Revoke Roles

How to create a logical standby database based on a physical standby database

The related steps about how to create a phisical standby database please refer:   http://blog.csdn.net/waterxcfg304/article/details/35991771 /* How to create a logical standby database based on a physical standby database   */ 以下是主库: 下列语句可以用来检查SQL应用能