Distributed Relational Database Service (DRDS) is a distributed relational database service middleware that is independently developed by Alibaba and highly compatible with the MySQL protocol and syntaxes.
The DRDS server is a core component of DRDS. It provides SQL parsing, optimization, routing, and result aggregation.
A DRDS instance is a distributed database service cluster consisting of DRDS servers. All the servers are stateless and process SQL requests simultaneously.
DRDS instance specifications
The DRDS instance specifications indicate the processing capability of the DRDS instance. Specifications involve CPU and memory resources. Instances of higher specifications have higher processing capability. For example, in a standard DRDS test scenario, the processing capability of an instance of eight cores and 16 GB memory is twice that of an instance of four cores and 8 GB memory.
You can change the processing capability of an instance by upgrading or downgrading its specifications.
Horizontal splitting means splitting a single-host database into multiple physical sub-databases, splitting table data into multiple physical sub-tables, and saving the sub-tables to different sub-databases according to sharding rules.
A sharding rule is a rule according to which the logical table is split into multiple physical sub-tables during horizontal splitting.
A shard key is a database field that generates the sharding rule during horizontal splitting.
After horizontal splitting, data in the logical database is saved into multiple physical storage instances. The physical database of each storage instance is called a sub-database.
After horizontal splitting, each physical data table in each sub-database is called a sub-table.
A logic SQL is a SQL sent from an application to DRDS.
A physical SQL is the SQL generated after DRDS parses a logic SQL and sent to ApsaraDB for RDS for execution.
Transparent read/write splitting
When a single storage instance node of DRDS has access bottleneck, you can add a read-only instance to share the load of the master instance. You do not need to modify any application code before using the read/write splitting function, and thus this function is called transparent read/write splitting.
DRDS supports improving the database service capability through transparent read/write splitting without horizontal database splitting. Such mode is called non-sharing mode.
DRDS supports adding storage instance nodes to resize the database. Resizing without affecting the access to the original data is called smooth scaling.
Small table broadcast
DRDS stores data tables that have little data and small updating frequency as a single table. Such data tables are called small tables. A solution is called “small table broadcast” or “small table copy” in which small tables are copied to sub-databases in JOIN connection through data synchronization to improve the JOIN efficiency.
Full table scanning
In database sharding mode, if the SQL statement does not contain the sharding key, DRDS executes the SQL statement in all sub-tables and returns the results. Such a process is called full table scanning. To avoid impact on the performance, avoid full table scanning whenever possible.
The DRDS Sequence (consisting of 64 digits and corresponding to the BIGINT type in MySQL) is mainly used to make sure that the data (for example, PRIMARY KEY and UNIQUE KEY) in the defined unique field is globally unique and orderly incremental.
The DRDS hint is a custom hint provided by DRDS to specify certain special actions. It uses a syntax to influence the SQL execution method to optimize the SQL.