Bird
Raised Fist0
MySQLquery~5 mins

Replication basics in MySQL - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Replication basics
O(n)
Understanding Time Complexity

When using replication in MySQL, it's important to understand how the process scales as data changes grow.

We want to know how the time to copy data from one server to another changes as the amount of data increases.

Scenario Under Consideration

Analyze the time complexity of this simple replication setup.


-- On master server
CREATE TABLE orders (id INT PRIMARY KEY, details TEXT);

-- Insert many rows
INSERT INTO orders VALUES (1, 'details1'), (2, 'details2');

-- On slave server
START SLAVE;
-- Slave reads and applies changes from master
    

This code shows a master server with a table and inserts, and a slave server that reads and applies these changes.

Identify Repeating Operations

Look at what repeats during replication.

  • Primary operation: The slave reads each change (insert/update/delete) from the master's log and applies it.
  • How many times: Once for every change made on the master.
How Execution Grows With Input

As the number of changes on the master grows, the slave has more work to do.

Input Size (n)Approx. Operations
10 changes10 apply operations
100 changes100 apply operations
1000 changes1000 apply operations

Pattern observation: The work grows directly with the number of changes to replicate.

Final Time Complexity

Time Complexity: O(n)

This means the time to replicate grows in a straight line with the number of changes made on the master.

Common Mistake

[X] Wrong: "Replication time stays the same no matter how many changes happen."

[OK] Correct: Each change must be copied and applied, so more changes mean more work and more time.

Interview Connect

Understanding how replication time grows helps you design systems that stay fast as data grows, a key skill in real projects.

Self-Check

"What if the slave applied changes in batches instead of one by one? How would the time complexity change?"

Practice

(1/5)
1. What is the main purpose of MySQL replication?
easy
A. To copy data automatically from one database server to another
B. To create backups manually on the same server
C. To speed up SQL query execution on a single server
D. To encrypt data during transmission

Solution

  1. Step 1: Understand replication concept

    Replication means copying data from one database (called master) to another (called slave) automatically.
  2. Step 2: Identify the main purpose

    The main goal is to keep data synchronized between servers without manual copying.
  3. Final Answer:

    To copy data automatically from one database server to another -> Option A
  4. Quick Check:

    Replication = automatic data copy [OK]
Hint: Replication means automatic data copying between servers [OK]
Common Mistakes:
  • Confusing replication with backup
  • Thinking replication speeds up queries on one server
  • Assuming replication encrypts data
2. Which command is used to start replication on a MySQL slave server?
easy
A. START SLAVE
B. START REPLICATION
C. BEGIN SLAVE
D. RUN SLAVE

Solution

  1. Step 1: Recall replication start command

    In MySQL, the command to start the slave replication process is START SLAVE.
  2. Step 2: Check other options

    Other options like START REPLICATION, BEGIN SLAVE, or RUN SLAVE are not valid MySQL commands.
  3. Final Answer:

    START SLAVE -> Option A
  4. Quick Check:

    Start replication = START SLAVE [OK]
Hint: Use START SLAVE to begin replication on slave server [OK]
Common Mistakes:
  • Using incorrect commands like START REPLICATION
  • Confusing with transaction commands
  • Forgetting to start the slave after setup
3. Given the command CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='replica', MASTER_PASSWORD='pass'; executed on a slave, what does it do?
medium
A. Deletes the current master configuration
B. Starts replication immediately with given credentials
C. Creates a new master server at 192.168.1.10
D. Sets the slave to connect to the master at IP 192.168.1.10 using user replica

Solution

  1. Step 1: Understand CHANGE MASTER TO command

    This command configures the slave server to connect to a master server with specified host and user credentials.
  2. Step 2: Analyze given parameters

    It sets the master host IP to 192.168.1.10 and uses the user 'replica' with password 'pass' for connection.
  3. Final Answer:

    Sets the slave to connect to the master at IP 192.168.1.10 using user replica -> Option D
  4. Quick Check:

    CHANGE MASTER TO = configure slave connection [OK]
Hint: CHANGE MASTER TO sets slave's master connection info [OK]
Common Mistakes:
  • Thinking it starts replication immediately
  • Assuming it creates a new master server
  • Believing it deletes master config
4. You run START SLAVE; but replication does not start. Which of these is a likely cause?
medium
A. The master server is down
B. The slave user password is empty
C. The slave has not been configured with CHANGE MASTER TO
D. The slave server is running MySQL version 8

Solution

  1. Step 1: Check slave configuration

    If the slave is not configured with CHANGE MASTER TO, it does not know which master to connect to.
  2. Step 2: Understand replication start requirements

    Without proper master info, START SLAVE cannot initiate replication, even if master is up or password is set.
  3. Final Answer:

    The slave has not been configured with CHANGE MASTER TO -> Option C
  4. Quick Check:

    Missing CHANGE MASTER TO blocks replication start [OK]
Hint: Configure slave with CHANGE MASTER TO before START SLAVE [OK]
Common Mistakes:
  • Assuming START SLAVE works without configuration
  • Blaming MySQL version without checking config
  • Ignoring master server status
5. You want to set up a slave that replicates only the database named sales. Which command helps you filter replication to this database?
hard
A. CHANGE MASTER TO MASTER_DB='sales';
B. CHANGE REPLICATION FILTER REPLICATE_DO_DB = ('sales');
C. SET REPLICATION FILTER TO 'sales';
D. CHANGE REPLICATION FILTER REPLICATE_DO_DB = 'sales';

Solution

  1. Step 1: Understand replication filtering

    MySQL uses replication filters like REPLICATE_DO_DB to replicate only specific databases.
  2. Step 2: Identify correct syntax

    The correct syntax uses CHANGE REPLICATION FILTER REPLICATE_DO_DB = ('sales'); with parentheses around the database name.
  3. Final Answer:

    CHANGE REPLICATION FILTER REPLICATE_DO_DB = ('sales'); -> Option B
  4. Quick Check:

    Use REPLICATE_DO_DB with parentheses for filtering [OK]
Hint: Use CHANGE REPLICATION FILTER with REPLICATE_DO_DB and parentheses [OK]
Common Mistakes:
  • Using non-existent commands like SET REPLICATION FILTER
  • Omitting parentheses around database name
  • Trying to filter with CHANGE MASTER TO
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard