Learning MySQL. 2nd Edition - Helion

ISBN: 9781492085874
stron: 632, Format: ebook
Data wydania: 2021-09-09
Księgarnia: Helion
Cena książki: 186,15 zł (poprzednio: 216,45 zł)
Oszczędzasz: 14% (-30,30 zł)
Get a comprehensive overview on how to set up and design an effective database with MySQL. This thoroughly updated edition covers MySQL's latest version, including its most important aspects. Whether you're deploying an environment, troubleshooting an issue, or engaging in disaster recovery, this practical guide provides the insights and tools necessary to take full advantage of this powerful RDBMS.
Authors Vinicius Grippa and Sergey Kuzmichev from Percona show developers and DBAs methods for minimizing costs and maximizing availability and performance. You'll learn how to perform basic and advanced querying, monitoring and troubleshooting, database management and security, backup and recovery, and tuning for improved efficiency. This edition includes new chapters on high availability, load balancing, and using MySQL in the cloud.
- Get started with MySQL and learn how to use it in production
- Deploy MySQL databases on bare metal, on virtual machines, and in the cloud
- Design database infrastructures
- Code highly efficient queries
- Monitor and troubleshoot MySQL databases
- Execute efficient backup and restore operations
- Optimize database costs in the cloud
- Understand database concepts, especially those pertaining to MySQL
Osoby które kupowały "Learning MySQL. 2nd Edition", wybierały także:
- Jak zhakowa 125,00 zł, (10,00 zł -92%)
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Efekt piaskownicy. Jak szefować żeby roboty nie zabrały ci roboty 59,50 zł, (11,90 zł -80%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
Spis treści
Learning MySQL. 2nd Edition eBook -- spis treści
- Preface
- Who This Book Is For
- How This Book Is Organized
- Starting with MySQL
- Using MySQL
- MySQL in Production
- Miscellaneous Topics
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- From Vinicius Grippa
- From Sergey Kuzmichev
- 1. Installing MySQL
- MySQL Forks
- MySQL Community Edition
- Percona Server for MySQL
- MariaDB Server
- MySQL Enterprise Edition
- Installation Choices and Platforms
- 1. Download the Distribution that You Want to Install
- 2. Install the Distribution
- 3. Perform Any Necessary Post-Installation Setup
- 4. Run Benchmarks
- Installing MySQL on Linux
- Installing MySQL on CentOS 7
- Installing MySQL 8.0
- Log in to Linux server
- Become root in Linux
- Configure the yum repository
- Install MySQL 8.0 Community Server
- Start the MySQL service
- Discover the default password for the root user
- Secure the MySQL installation
- Connect to MySQL
- Start MySQL 8.0 upon server start (optional)
- Installing MariaDB 10.5
- Become root in Linux
- Install the MariaDB repository
- Install MariaDB
- Start MariaDB
- Secure MariaDB
- Installing Percona Server 8.0
- Become root in Linux
- Install the Percona repository
- Install Percona Server 8.0
- Initialize Percona Server 8.0 with systemctl
- Installing MySQL 5.7
- Become root in Linux
- Install the MySQL 5.7 repository
- Install the MySQL 5.7 binaries
- Initialize MySQL 5.7 with systemctl
- Installing Percona Server 5.7
- Become root in Linux
- Install the Percona repository
- Install the Percona Server 5.7 binaries
- Initialize Percona Server 5.7 with systemctl
- Installing MySQL 8.0
- Installing MySQL on CentOS 8
- Installing MySQL 8.0
- Become root in Linux
- Install the MySQL 8.0 binaries
- Start MySQL
- Check if the service is running
- Secure MySQL 8.0
- Start MySQL 8.0 upon server start (optional)
- Installing Percona Server 8.0
- Become root in Linux
- Install the Percona Server 8.0 binaries
- Enable the repository for Percona 8.0
- Install the Percona Server 8.0 binaries
- Start and secure Percona Server 8.0
- Check the service status
- Installing MySQL 5.7
- Become root in Linux
- Disable the MySQL default module
- Configure the MySQL 5.7 repository
- Install the MySQL 5.7 binaries
- Start MySQL
- Check if the service is running
- Secure MySQL 5.7
- Start MySQL 5.7 upon server start (optional)
- Installing MySQL 8.0
- Installing MySQL on Ubuntu 20.04 LTS (Focal Fossa)
- Installing MySQL 8.0
- Become root in Linux
- Configure the apt repository
- Install MySQL 8.0
- Start MySQL
- Check if the service is running
- Secure MySQL 8.0
- Installing Percona Server 8
- Become root in Linux
- Install the GNU Privacy Guard
- Fetch the repository packages from the Percona website
- Install the downloaded package with dpkg
- Enable the repository
- Install the Percona Server 8.0 binaries
- Start MySQL
- Check if the service is running
- Installing MariaDB 10.5
- Become root in Linux
- Update the system with the apt package manager
- Import the MariaDB GPG key
- Add the MariaDB repository
- Install the MariaDB 10.5 binaries
- Check if the service is running
- Installing MySQL 5.7
- Become root in Linux
- Update the system with the apt package manager
- Add and configure the MySQL 5.7 repository
- Install the MySQL 5.7 binaries
- Check if the service is running
- Installing MySQL 8.0
- Installing MySQL on CentOS 7
- Installing MySQL on macOS Big Sur
- Installing MySQL 8
- Installing MySQL on Windows 10
- The Contents of the MySQL Directory
- MySQL 5.7 Default Files
- MySQL 8.0 Default Files
- Using the Command-Line Interface
- Using Docker
- Installing Docker
- Installing Docker on CentOS 7
- Installing Docker on Ubuntu 20.04 (Focal Fossa)
- Deploying the MySQL container
- Deploying MariaDB and Percona Server containers
- Installing Docker
- Using Sandboxes
- Installing DBdeployer
- Using DBdeployer
- Upgrading MySQL Server
- MySQL Forks
- 2. Modeling and Designing Databases
- How Not to Develop a Database
- The Database Design Process
- The Entity Relationship Model
- Representing Entities
- Representing Relationships
- Partial and Total Participation
- Entity or Attribute?
- Entity or Relationship?
- Intermediate Entities
- Weak and Strong Entities
- Database Normalization
- Normalizing an Example Table
- First Normal Form: No Repeating Groups
- Second Normal Form: Eliminate Redundant Data
- Third Normal Form: Eliminate Data Not Dependent on Key
- Entity Relationship Modeling Examples
- Using the Entity Relationship Model
- Mapping Entities and Relationships to Database Tables
- Map the entities to database tables
- Map the relationships to database tables
- Creating a Bank Database ER Model
- Many to many relationships (N:M)
- One to many relationship (1:N)
- Converting the EER to a MySQL Database Using Workbench
- Mapping Entities and Relationships to Database Tables
- 3. Basic SQL
- Using the sakila Database
- The SELECT Statement and Basic Querying Techniques
- Single-Table SELECTs
- Choosing Columns
- Selecting Rows with the WHERE Clause
- WHERE basics
- Combining conditions with AND, OR, NOT, and XOR
- The ORDER BY Clause
- The LIMIT Clause
- Joining Two Tables
- The INSERT Statement
- INSERT Basics
- Alternative Syntaxes
- The DELETE Statement
- DELETE Basics
- Using WHERE, ORDER BY, and LIMIT
- Removing All Rows with TRUNCATE
- The UPDATE Statement
- Examples
- Using WHERE, ORDER BY, and LIMIT
- Exploring Databases and Tables with SHOW and mysqlshow
- 4. Working with Database Structures
- Creating and Using Databases
- Creating Tables
- Basics
- Collation and Character Sets
- Other Features
- Column Types
- Integer types
- Fixed-point types
- Floating-point types
- String types
- Date and time types
- Other types
- Keys and Indexes
- The AUTO_INCREMENT Feature
- Altering Structures
- Adding, Removing, and Changing Columns
- Adding, Removing, and Changing Indexes
- Renaming Tables and Altering Other Structures
- Deleting Structures
- Dropping Databases
- Removing Tables
- 5. Advanced Querying
- Aliases
- Column Aliases
- Table Aliases
- Aggregating Data
- The DISTINCT Clause
- The GROUP BY Clause
- Aggregate functions
- The HAVING Clause
- Advanced Joins
- The Inner Join
- The Union
- The Left and Right Joins
- The Natural Join
- Constant Expressions in Joins
- Nested Queries
- Nested Query Basics
- The ANY, SOME, ALL, IN, and NOT IN Clauses
- Using ANY and IN
- Using ALL
- Writing row subqueries
- The EXISTS and NOT EXISTS Clauses
- EXISTS and NOT EXISTS basics
- Correlated subqueries
- Nested Queries in the FROM Clause
- Nested Queries in JOINs
- User Variables
- Aliases
- 6. Transactions and Locking
- Isolation Levels
- REPEATABLE READ
- READ COMMITTED
- READ UNCOMMITTED
- SERIALIZABLE
- Locking
- Metadata Locks
- Row Locks
- Deadlocks
- MySQL Parameters Related to Isolation and Locks
- Isolation Levels
- 7. Doing More with MySQL
- Inserting Data Using Queries
- Loading Data from Comma-Delimited Files
- Writing Data into Comma-Delimited Files
- Creating Tables with Queries
- Performing Updates and Deletes with Multiple Tables
- Deletion
- Updates
- Replacing Data
- The EXPLAIN Statement
- Alternative Storage Engines
- InnoDB
- MyISAM and Aria
- MyRocks and TokuDB
- Other Table Types
- 8. Managing Users and Privileges
- Understanding Users and Privileges
- The root User
- Creating and Using New Users
- Grant Tables
- User Management Commands and Logging
- Modifying and Dropping Users
- Modifying a User
- Dropping a User
- Privileges
- Static Versus Dynamic Privileges
- The SUPER Privilege
- Privilege Management Commands
- GRANT
- REVOKE
- Checking Privileges
- The GRANT OPTION Privilege
- Roles
- Changing roots Password and Insecure Startup
- Some Ideas for Secure Setup
- 9. Using Option Files
- Structure of the Option File
- Scope of Options
- Search Order for Option Files
- Special Option Files
- Login Path Configuration File
- Persistent System Variables Configuration File
- Determining the Options in Effect
- 10. Backups and Recovery
- Physical and Logical Backups
- Logical Backups
- Physical Backups
- Overview of Logical and Physical Backups
- Replication as a Backup Tool
- Infrastructure Failure
- Deployment Bug
- The mysqldump Program
- Bootstrapping Replication with mysqldump
- Loading Data from a SQL Dump File
- mysqlpump
- mydumper and myloader
- Cold Backup and Filesystem Snapshots
- Percona XtraBackup
- Backing Up and Recovering
- Advanced Features
- Incremental Backups with XtraBackup
- Other Physical Backup Tools
- MySQL Enterprise Backup
- mariabackup
- Point-in-Time Recovery
- Technical Background on Binary Logs
- Preserving Binary Logs
- Identifying a PITR Target
- Point-in-Time-Recovery Example: XtraBackup
- Point-in-Time-Recovery Example: mysqldump
- Exporting and Importing InnoDB Tablespaces
- Technical Background
- Exporting a Tablespace
- Importing a Tablespace
- XtraBackup Single-Table Restore
- Testing and Verifying Your Backups
- Database Backup Strategy Primer
- Physical and Logical Backups
- 11. Configuring and Tuning the Server
- The MySQL Server Daemon
- MySQL Server Variables
- Checking Server Settings
- Best Practices
- Operating system best practices
- The swappiness setting and swap usage
- I/O scheduler
- Filesystems and mount options
- Transparent Huge Pages
- jemalloc
- CPU governor
- MySQL best practices
- Buffer pool size
- The innodb_buffer_pool_instances parameter
- Redo log size
- The sync_binlog parameter
- The binlog_expire_logs_seconds and expire_logs_days parameters
- The innodb_flush_log_at_trx_commit parameter
- The innodb_thread_concurrency parameter
- NUMA architecture
- Operating system best practices
- 12. Monitoring MySQL Servers
- Operating System Metrics
- CPU
- Disk
- Memory
- Network
- MySQL Server Observability
- Status Variables
- Basic Monitoring Recipes
- MySQL server availability
- Client connections
- Query counts
- Query types and quality
- Types of queries
- Query quality
- Temporary objects
- InnoDB I/O and transaction metrics
- The Slow Query Log
- InnoDB Engine Status Report
- Investigation Methods
- The USE Method
- RED Method
- MySQL Monitoring Tools
- Incident/Diagnostic and Manual Data Collection
- Gathering System Status Variable Values Periodically
- Using pt-stalk to Collect MySQL and OS Metrics
- Extended Manual Data Collection
- Operating System Metrics
- 13. High Availability
- Asynchronous Replication
- Basic Parameters to Set on the Source and the Replica
- Creating a Replica Using PerconaXtraBackup
- Creating a Replica Using the Clone Plugin
- Creating a Replica Using mysqldump
- Creating a Replica Using mydumper and myloader
- Setting up the mydumper and myloader utilities
- Extracting data from the source
- Restoring data in a replica server
- Establishing the replication
- Group Replication
- Installing Group Replication
- Setting up MySQL Group Replication
- Synchronous Replication
- Galera/PXC Cluster
- Asynchronous Replication
- 14. MySQL in the Cloud
- Database-as-a-Service (DBaaS)
- Amazon RDS for MySQL/MariaDB
- Google Cloud SQL for MySQL
- Azure SQL
- Amazon Aurora
- MySQL Cloud Instances
- MySQL in Kubernetes
- Deploying Percona XtraDB Cluster in Kubernetes
- Database-as-a-Service (DBaaS)
- 15. Load Balancing MySQL
- Load Balancing with Application Drivers
- ProxySQL Load Balancer
- Installing and Configuring ProxySQL
- HAProxy Load Balancer
- Installing and Configuring HAProxy
- MySQL Router
- 16. Miscellaneous Topics
- MySQL Shell
- Installing MySQL Shell
- Installing MySQL Shell on Ubuntu 20.04 Focal Fossa
- Installing MySQL Shell on CentOS 8
- Deploying a Sandbox InnoDB Cluster with MySQL Shell
- MySQL Shell Utilities
- util.dumpInstance()
- util.dumpSchemas()
- util.dumpTables()
- util.loadDump(url[, options])
- Flame Graphs
- Building MySQL from Source
- Building MySQL for Ubuntu Focal Fossa and ARM Processors
- Analyzing a MySQL Crash
- MySQL Shell
- Index





