0% found this document useful (0 votes)
26 views

Mysql Cheat Sheet: 100 Questions: 1. Basic SQL Queries

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

Mysql Cheat Sheet: 100 Questions: 1. Basic SQL Queries

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

MySQL Cheat Sheet: 100 Questions

1. Basic SQL Queries


1.1. What is the purpose of the SELECT statement?

● Answer: The SELECT statement is used to query the database and retrieve data
from one or more tables.

Example:
SELECT * FROM employees;

1.2. How do you retrieve all columns from a table named users?

● Answer: Use the SELECT * statement to retrieve all columns from the table.

Example:
SELECT * FROM users;

1.3. How can you select only specific columns from a table?

● Answer: Specify the column names in the SELECT statement.

Example:
SELECT first_name, last_name FROM employees;

1.4. How do you filter records using the WHERE clause?

● Answer: Use the WHERE clause to specify conditions for filtering records.

Example:
SELECT * FROM employees WHERE department = 'Sales';

1.5. What is the purpose of the ORDER BY clause?


● Answer: The ORDER BY clause is used to sort the result set by one or more
columns.

Example:
SELECT * FROM employees ORDER BY salary DESC;

2. Aggregate Functions
2.1. How do you find the total number of rows in a table?

● Answer: Use the COUNT() function.

Example:
SELECT COUNT(*) FROM employees;

2.2. How can you find the average value of a numeric column?

● Answer: Use the AVG() function.

Example:
SELECT AVG(salary) FROM employees;

2.3. How do you find the maximum value in a column?

● Answer: Use the MAX() function.

Example:
SELECT MAX(salary) FROM employees;

2.4. How can you find the minimum value in a column?

● Answer: Use the MIN() function.

Example:
SELECT MIN(salary) FROM employees;


2.5. How do you calculate the sum of a numeric column?

● Answer: Use the SUM() function.

Example:
SELECT SUM(salary) FROM employees;

3. Joins
3.1. What is an INNER JOIN?

● Answer: An INNER JOIN returns rows that have matching values in both tables.

Example:
SELECT employees.first_name, departments.department_name

FROM employees

INNER JOIN departments ON employees.department_id =


departments.department_id;

3.2. How does a LEFT JOIN differ from an INNER JOIN?

● Answer: A LEFT JOIN returns all rows from the left table and the matched rows
from the right table. Non-matching rows from the right table will be NULL.

Example:
SELECT employees.first_name, departments.department_name

FROM employees

LEFT JOIN departments ON employees.department_id =


departments.department_id;

3.3. What is a RIGHT JOIN?

● Answer: A RIGHT JOIN returns all rows from the right table and the matched rows
from the left table. Non-matching rows from the left table will be NULL.
Example:
SELECT employees.first_name, departments.department_name

FROM employees

RIGHT JOIN departments ON employees.department_id =


departments.department_id;

3.4. How do you perform a FULL JOIN in MySQL?

● Answer: MySQL does not support FULL JOIN directly. Use a combination of LEFT
JOIN and RIGHT JOIN.

Example:
SELECT employees.first_name, departments.department_name

FROM employees

LEFT JOIN departments ON employees.department_id =


departments.department_id

UNION

SELECT employees.first_name, departments.department_name

FROM employees

RIGHT JOIN departments ON employees.department_id =


departments.department_id;

3.5. What is a CROSS JOIN?

● Answer: A CROSS JOIN returns the Cartesian product of both tables, meaning
every combination of rows.

Example:
SELECT employees.first_name, departments.department_name

FROM employees

CROSS JOIN departments;


4. Subqueries
4.1. What is a subquery?

● Answer: A subquery is a query nested inside another query.

Example:
SELECT first_name

FROM employees

WHERE department_id = (SELECT department_id FROM departments WHERE


department_name = 'Sales');

4.2. How do you use a subquery in the WHERE clause?

● Answer: Place the subquery inside the WHERE clause to filter results based on the
result of the subquery.

Example:
SELECT first_name

FROM employees

WHERE salary > (SELECT AVG(salary) FROM employees);

4.3. What is a correlated subquery?

● Answer: A correlated subquery references columns from the outer query and is
executed for each row of the outer query.

Example:
SELECT e1.first_name

FROM employees e1

WHERE salary > (SELECT AVG(salary) FROM employees e2 WHERE


e1.department_id = e2.department_id);

4.4. How do you use a subquery in the FROM clause?


● Answer: A subquery in the FROM clause is used as a derived table or temporary
table.

Example:
SELECT avg_salaries.department_id, AVG(salary)

FROM (SELECT department_id, salary FROM employees) AS avg_salaries

GROUP BY avg_salaries.department_id;

4.5. How can you use a subquery in the SELECT clause?

● Answer: A subquery in the SELECT clause returns a value that can be used as a
column in the result set.

Example:
SELECT first_name,

(SELECT AVG(salary) FROM employees) AS avg_salary

FROM employees;

5. Data Modification
5.1. How do you insert a new record into a table?

● Answer: Use the INSERT INTO statement.

Example:
INSERT INTO employees (first_name, last_name, department_id, salary)

VALUES ('John', 'Doe', 1, 50000);

5.2. How can you update existing records in a table?

● Answer: Use the UPDATE statement with a WHERE clause to specify which records
to update.

Example:
UPDATE employees
SET salary = 55000

WHERE first_name = 'John' AND last_name = 'Doe';

5.3. How do you delete records from a table?

● Answer: Use the DELETE FROM statement with a WHERE clause to specify which
records to delete.

Example:
DELETE FROM employees

WHERE first_name = 'John' AND last_name = 'Doe';

5.4. How can you delete all records from a table without removing the table itself?

● Answer: Use the TRUNCATE TABLE statement.

Example:
TRUNCATE TABLE employees;

5.5. What is the difference between DELETE and TRUNCATE?

● Answer: DELETE removes rows one at a time and can be rolled back, while
TRUNCATE removes all rows at once and cannot be rolled back.

Example:
-- DELETE

DELETE FROM employees;

-- TRUNCATE

TRUNCATE TABLE employees;

6. Indexing
6.1. What is an index in MySQL?

● Answer: An index is a database object that improves the speed of data retrieval
operations.

Example:
CREATE INDEX idx_salary ON employees(salary);

6.2. How do you create an index on a table?

● Answer: Use the CREATE INDEX statement.

Example:
CREATE INDEX idx_department ON employees(department_id);

6.3. What is the difference between a unique index and a non-unique index?

● Answer: A unique index ensures that all values in the indexed column are
unique, while a non-unique index does not enforce uniqueness.

Example:
-- Unique Index

CREATE UNIQUE INDEX idx_unique_email ON users(email);

-- Non-Unique Index

CREATE INDEX idx_non_unique_name ON employees(name);

6.4. How do you drop an index?

● Answer: Use the DROP INDEX statement.

Example:
DROP INDEX idx_salary ON employees;


6.5. What is a composite index?

● Answer: A composite index is an index on multiple columns.

Example:
CREATE INDEX idx_name_dept ON employees(first_name, department_id);

7. Transactions
7.1. What is a transaction in MySQL?

● Answer: A transaction is a sequence of one or more SQL operations executed as


a single unit of work.

Example:
START TRANSACTION;

INSERT INTO accounts (balance) VALUES (1000);

UPDATE accounts SET balance = balance - 500 WHERE account_id = 1;

COMMIT;

7.2. How do you start a transaction?

● Answer: Use the START TRANSACTION statement.

Example:
START TRANSACTION;

7.3. How do you commit a transaction?

● Answer: Use the COMMIT statement to save all changes made during the
transaction.

Example:
COMMIT;


7.4. How do you roll back a transaction?

● Answer: Use the ROLLBACK statement to undo changes made during the
transaction.

Example:
ROLLBACK;

7.5. What is the difference between COMMIT and ROLLBACK?

● Answer: COMMIT saves changes made during the transaction, while ROLLBACK
undoes them.

Example:
-- Commit

COMMIT;

-- Rollback

ROLLBACK;

8. User Management
8.1. How do you create a new user in MySQL?

● Answer: Use the CREATE USER statement.

Example:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

8.2. How do you grant privileges to a user?

● Answer: Use the GRANT statement to assign privileges.

Example:
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';

8.3. How do you revoke privileges from a user?

● Answer: Use the REVOKE statement to remove privileges.

Example:
REVOKE ALL PRIVILEGES ON database_name.* FROM 'newuser'@'localhost';

8.4. How do you drop a user in MySQL?

● Answer: Use the DROP USER statement.

Example:
DROP USER 'newuser'@'localhost';

8.5. How do you change a user’s password?

● Answer: Use the ALTER USER statement.

Example:
ALTER USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';

9. Data Types
9.1. What are the different types of data in MySQL?

● Answer: MySQL supports several data types, including numeric, date/time, and
string types.

Example:
-- Numeric Types

INT, FLOAT, DOUBLE

-- Date/Time Types

DATE, DATETIME, TIMESTAMP


-- String Types

CHAR, VARCHAR, TEXT

9.2. What is the difference between CHAR and VARCHAR?

● Answer: CHAR is a fixed-length string, while VARCHAR is a variable-length string.

Example:
-- CHAR

CREATE TABLE test_char (

col CHAR(10)

);

-- VARCHAR

CREATE TABLE test_varchar (

col VARCHAR(10)

);

9.3. How do you store a date in MySQL?

● Answer: Use the DATE or DATETIME data type.

Example:
CREATE TABLE events (

event_date DATE

);

9.4. What is the purpose of the TEXT data type?

● Answer: The TEXT data type is used to store large amounts of text.
Example:
CREATE TABLE articles (

content TEXT

);

9.5. How do you define a column that auto-increments?

● Answer: Use the AUTO_INCREMENT attribute for an integer column.

Example:
CREATE TABLE users (

user_id INT AUTO_INCREMENT PRIMARY KEY,

username VARCHAR(50)

);

10. Performance Optimization


10.1. What is a query optimizer?

● Answer: The query optimizer analyzes SQL queries and determines the most
efficient way to execute them.

Example:
EXPLAIN SELECT * FROM employees WHERE salary > 50000;

10.2. How do you analyze a query execution plan?

● Answer: Use the EXPLAIN statement to get insights into how a query will be
executed.

Example:
EXPLAIN SELECT * FROM employees WHERE department_id = 1;


10.3. How can you improve query performance with indexes?

● Answer: Create indexes on columns frequently used in WHERE, JOIN, and ORDER BY
clauses.

Example:
CREATE INDEX idx_dept ON employees(department_id);

10.4. What is query caching?

● Answer: Query caching stores the result of a query to speed up subsequent


executions of the same query.
● Example: Query caching is automatically managed by MySQL.

10.5. How do you optimize a large table?

● Answer: Regularly use the OPTIMIZE TABLE statement to defragment and improve
table performance.

Example:
OPTIMIZE TABLE employees;

11. Transactions and Concurrency


11.1. What are isolation levels in MySQL transactions?

● Answer: Isolation levels define the extent to which the operations in one
transaction are isolated from those in other transactions. Levels include READ
UNCOMMITTED, READ COMMITTED, REPEATABLE READ, and SERIALIZABLE.

Example:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

11.2. How do you handle deadlocks in MySQL?

● Answer: Use transaction retry mechanisms and ensure that transactions access
resources in the same order to avoid deadlocks.
● Example: Detect and handle deadlocks programmatically in application code.
11.3. What is a savepoint in MySQL?

● Answer: A savepoint allows you to set a point within a transaction to which you
can roll back.

Example:
SAVEPOINT my_savepoint;

-- Perform operations

ROLLBACK TO SAVEPOINT my_savepoint;

11.4. How do you lock tables in MySQL?

● Answer: Use the LOCK TABLES statement to lock tables for reading or writing.

Example:
LOCK TABLES employees WRITE;

-- Perform operations

UNLOCK TABLES;

11.5. What is an implicit lock?

● Answer: Implicit locks are automatically managed by MySQL and occur when
rows or tables are accessed in transactions.
● Example: Implicit locks are managed by the MySQL engine during transaction
execution.

12. Data Integrity and Constraints


12.1. What is a primary key in MySQL?

● Answer: A primary key is a unique identifier for each record in a table.

Example:
CREATE TABLE employees (

employee_id INT PRIMARY KEY,

name VARCHAR(50)
);

12.2. How do you create a foreign key constraint?

● Answer: Use the FOREIGN KEY constraint to establish a relationship between


columns in different tables.

Example:
CREATE TABLE departments (

department_id INT PRIMARY KEY,

department_name VARCHAR(50)

);

CREATE TABLE employees (

employee_id INT PRIMARY KEY,

department_id INT,

FOREIGN KEY (department_id) REFERENCES departments(department_id)

);

12.3. What is a unique constraint?

● Answer: A unique constraint ensures that all values in a column or a group of


columns are distinct.

Example:
CREATE TABLE users (

user_id INT PRIMARY KEY,

email VARCHAR(100) UNIQUE

);


12.4. How do you define a default value for a column?

● Answer: Use the DEFAULT keyword to set a default value for a column.

Example:
CREATE TABLE products (

product_id INT PRIMARY KEY,

stock_quantity INT DEFAULT 0

);

**12.5. What is a

check constraint?**

● Answer: A check constraint enforces a condition on the values in a column.

Example:
CREATE TABLE employees (

employee_id INT PRIMARY KEY,

salary DECIMAL(10, 2) CHECK (salary > 0)

);

13. Stored Procedures and Functions


13.1. What is a stored procedure in MySQL?

● Answer: A stored procedure is a saved set of SQL statements that can be


executed as a unit.

Example:
CREATE PROCEDURE GetEmployeeById(IN emp_id INT)

BEGIN

SELECT * FROM employees WHERE employee_id = emp_id;

END;

13.2. How do you call a stored procedure?

● Answer: Use the CALL statement to execute a stored procedure.

Example:
CALL GetEmployeeById(1);

13.3. What is a user-defined function (UDF) in MySQL?

● Answer: A user-defined function is a custom function created by the user to


perform specific tasks and return a value.

Example:
CREATE FUNCTION CalculateBonus(salary DECIMAL(10,2))

RETURNS DECIMAL(10,2)

BEGIN

RETURN salary * 0.10;

END;

13.4. How do you create a function in MySQL?

● Answer: Use the CREATE FUNCTION statement.

Example:
CREATE FUNCTION GetEmployeeCount()

RETURNS INT

BEGIN

DECLARE emp_count INT;

SELECT COUNT(*) INTO emp_count FROM employees;

RETURN emp_count;

END;

13.5. What is the difference between a stored procedure and a function?

● Answer: A stored procedure performs an action and may not return a value, while
a function returns a value and can be used in SQL expressions.

Example:
-- Stored Procedure

CREATE PROCEDURE GetAllEmployees()

BEGIN

SELECT * FROM employees;

END;

-- Function

CREATE FUNCTION GetTotalEmployees()

RETURNS INT

BEGIN

RETURN (SELECT COUNT(*) FROM employees);

END;

14. Data Backup and Restoration


14.1. How do you create a backup of a MySQL database?

● Answer: Use the mysqldump command to create a backup.

Example:
mysqldump -u username -p database_name > backup.sql

14.2. How do you restore a MySQL database from a backup?


● Answer: Use the mysql command to restore a database from a backup.

Example:
mysql -u username -p database_name < backup.sql

14.3. What is the purpose of the mysqldump command?

● Answer: mysqldump creates a logical backup of a MySQL database by generating


a SQL script that can be used to recreate the database.

Example:
mysqldump -u username -p database_name > backup.sql

14.4. How can you create a backup of a single table?

● Answer: Use mysqldump with the table name.

Example:
mysqldump -u username -p database_name table_name > table_backup.sql

14.5. How do you automate database backups?

● Answer: Schedule mysqldump commands using cron jobs or scheduled tasks.

Example (cron job):


0 2 * * * mysqldump -u username -p database_name > /path/to/backup_$(date
+\%F).sql

15. Advanced Features


15.1. What is partitioning in MySQL?

● Answer: Partitioning divides a table into smaller, more manageable pieces while
maintaining a single logical view.

Example:
CREATE TABLE orders (
order_id INT,

order_date DATE

PARTITION BY RANGE (YEAR(order_date)) (

PARTITION p0 VALUES LESS THAN (2000),

PARTITION p1 VALUES LESS THAN (2010),

PARTITION p2 VALUES LESS THAN (2020),

PARTITION p3 VALUES LESS THAN (MAXVALUE)

);

15.2. How do you use views in MySQL?

● Answer: Views are virtual tables created by a query and can simplify complex
queries.

Example:
CREATE VIEW employee_view AS

SELECT first_name, last_name, department_name

FROM employees

JOIN departments ON employees.department_id = departments.department_id;

15.3. What is a materialized view?

● Answer: A materialized view is a view that stores the result set physically,
allowing faster query performance. MySQL does not support materialized views
directly; use tables with periodic refreshes.
● Example: Simulate using tables and scheduled jobs.

15.4. How do you implement full-text search in MySQL?

● Answer: Use FULLTEXT indexes to enable full-text search capabilities.


Example:
CREATE TABLE articles (

id INT PRIMARY KEY,

content TEXT,

FULLTEXT(content)

);

15.5. What is the purpose of SHOW TABLE STATUS?

● Answer: SHOW TABLE STATUS provides information about the status and structure
of tables, such as size and number of rows.
● Example: ```sql SHOW TABLE STATUS LIKE employees; Certainly! Here are
advanced MySQL questions, continuing from where we left off:

16. Advanced Query Optimization


16.1. How do you analyze and optimize slow queries in MySQL?

● Answer: Use the slow_query_log to identify slow queries and the EXPLAIN
statement to analyze their execution plans.

Example:
SET GLOBAL slow_query_log = 'ON';

SET GLOBAL slow_query_log_file = 'slow-query.log';

16.2. What is a covering index and how does it improve query performance?

● Answer: A covering index includes all columns needed by a query, allowing the
query to be resolved using the index alone.

Example:
CREATE INDEX idx_name_age ON employees(name, age);

16.3. How do you use ANALYZE TABLE for optimization?


● Answer: ANALYZE TABLE updates statistics about table key distributions, helping
the optimizer make better decisions.

Example:
ANALYZE TABLE employees;

16.4. What are the implications of using JOIN vs. SUBQUERY for performance?

● Answer: Joins are often more efficient than subqueries because they use indexes
and optimize query plans better.

Example:
-- Join

SELECT e.name, d.department_name

FROM employees e

JOIN departments d ON e.department_id = d.department_id;

-- Subquery

SELECT name, (SELECT department_name FROM departments WHERE department_id


= e.department_id) AS department_name

FROM employees e;

16.5. How can you improve the performance of GROUP BY queries?

● Answer: Index columns used in GROUP BY and ensure statistics are up-to-date to
improve performance.

Example:
CREATE INDEX idx_department ON employees(department_id);

17. High Availability and Replication


17.1. What is MySQL replication and how does it work?
● Answer: MySQL replication involves copying data from a master database to one
or more slave databases to ensure data redundancy and load balancing.

Example:
-- On master

CHANGE MASTER TO MASTER_HOST='slave_host',


MASTER_USER='replication_user', MASTER_PASSWORD='password';

START SLAVE;

17.2. How do you set up a master-slave replication in MySQL?

● Answer: Configure the master and slave servers with appropriate replication
settings and start the replication process.

Example:
-- On master

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_host'


IDENTIFIED BY 'password';

-- On slave

CHANGE MASTER TO MASTER_HOST='master_host',


MASTER_USER='replication_user', MASTER_PASSWORD='password';

START SLAVE;

17.3. What is a replication lag, and how can you monitor it?

● Answer: Replication lag is the delay between the master and slave databases.
Use SHOW SLAVE STATUS to monitor it.

Example:
SHOW SLAVE STATUS \G;

17.4. How do you implement MySQL Cluster for high availability?


● Answer: MySQL Cluster uses data nodes, management nodes, and SQL nodes
to provide high availability and fault tolerance.
● Example: Installation and configuration are done through MySQL Cluster
management tools and configuration files.

17.5. What is the difference between statement-based and row-based replication?

● Answer: Statement-based replication logs the SQL statements executed, while


row-based replication logs the actual changes to the data.

Example:
-- Statement-based

binlog_format = STATEMENT;

-- Row-based

binlog_format = ROW;

18. Security and Encryption


18.1. How do you encrypt data in MySQL?

● Answer: Use MySQL's built-in encryption functions or the ENCRYPT and


AES_ENCRYPT functions to encrypt data.

Example:
-- Encryption

SELECT AES_ENCRYPT('password', 'encryption_key');

-- Decryption

SELECT AES_DECRYPT(encrypted_column, 'encryption_key') FROM table;

18.2. How do you use SSL/TLS to secure MySQL connections?


● Answer: Configure MySQL to use SSL/TLS by setting the
--require_secure_transport option and providing SSL certificates.

Example:
-- Server-side

[mysqld]

ssl-ca=/path/to/ca-cert.pem

ssl-cert=/path/to/server-cert.pem

ssl-key=/path/to/server-key.pem

-- Client-side

[client]

ssl-ca=/path/to/ca-cert.pem

ssl-cert=/path/to/client-cert.pem

ssl-key=/path/to/client-key.pem

18.3. What is MySQL's approach to user authentication and how can it be improved?

● Answer: MySQL uses the mysql.user table for authentication. Improve security
by using strong passwords and enabling caching_sha2_password authentication.

Example:
CREATE USER 'user'@'host' IDENTIFIED WITH caching_sha2_password BY
'password';

18.4. How can you restrict user privileges in MySQL?

● Answer: Use the GRANT and REVOKE statements to control user access to
databases and tables.

Example:
GRANT SELECT, INSERT ON database_name.* TO 'user'@'host';

REVOKE ALL PRIVILEGES ON database_name.* FROM 'user'@'host';


18.5. How do you audit MySQL activity for security purposes?

● Answer: Use MySQL Enterprise Audit plugin or third-party tools to log and
monitor user activity.

Example:
INSTALL PLUGIN audit_log SONAME 'audit_log.so';

19. Data Warehousing and ETL


19.1. What is ETL and how is it implemented in MySQL?

● Answer: ETL (Extract, Transform, Load) involves extracting data from various
sources, transforming it, and loading it into a data warehouse. Implement ETL
using MySQL’s LOAD DATA INFILE, INSERT INTO ... SELECT, and other data
import/export methods.

Example:
LOAD DATA INFILE '/path/to/file.csv' INTO TABLE table_name

FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

19.2. How do you perform data transformation in MySQL?

● Answer: Use SQL functions and expressions to transform data during insertion or
querying.

Example:
INSERT INTO new_table (name, age)

SELECT UPPER(name), age + 1 FROM old_table;

19.3. What is the purpose of data partitioning in a data warehouse?

● Answer: Data partitioning improves query performance and manageability by


dividing large tables into smaller, more manageable pieces.
Example:
CREATE TABLE sales (

sale_id INT,

sale_date DATE

PARTITION BY RANGE (YEAR(sale_date)) (

PARTITION p0 VALUES LESS THAN (2000),

PARTITION p1 VALUES LESS THAN (2010),

PARTITION p2 VALUES LESS THAN (2020)

);

19.4. How do you handle large data imports efficiently?

● Answer: Use bulk data loading commands like LOAD DATA INFILE and optimize
import settings.

Example:
LOAD DATA INFILE '/path/to/large_file.csv' INTO TABLE table_name

FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

19.5. How do you manage schema changes in a data warehouse?

● Answer: Use schema migration tools and version control to manage and apply
schema changes systematically.
● Example: Tools like Liquibase or Flyway can be used for schema migration and
version control.

20. Backup and Recovery


20.1. How do you perform point-in-time recovery in MySQL?

● Answer: Use binary logs to restore the database to a specific point in time.
Example:
mysqlbinlog --stop-datetime="2024-07-01 12:00:00" /path/to/binlog >
recovery.sql

mysql -u username -p database_name < recovery.sql

20.2. How do you backup and restore MySQL databases using snapshots?

● Answer: Use filesystem-level snapshots or MySQL’s built-in backup tools to


create and restore backups.

Example:
# Create snapshot

xtrabackup --backup --stream=tar | gzip > backup.tar.gz

# Restore snapshot

gunzip < backup.tar.gz | xtrabackup --prepare --apply-log

20.3. How can you use MySQL Enterprise Backup for hot backups?

● Answer: MySQL Enterprise Backup allows hot backups with no downtime by


taking consistent snapshots of data.
● Example: ```bash mysql

backup --backup-dir=/backup --backup-image=mybackup.img --backup

You might also like