Top Banner
MySQL Performance Tuning Student Guide D61820GC20 Edition 2.0 May 2011 May 2011 D73030
10

MySQL Performance Tuning

May 04, 2023

Download

Documents

Khang Minh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MySQL Performance Tuning

MySQL Performance Tuning

Student Guide

D61820GC20

Edition 2.0

May 2011May 2011

D73030

Page 2: MySQL Performance Tuning

Copyright © 2011, Oracle and/or it affiliates. All rights reserved.

Disclaimer

This document contains proprietary information and is protected by copyright and

Author

Jeff Gorton

This document contains proprietary information and is protected by copyright and other intellectual property laws. You may copy and print this document solely for your own use in an Oracle training course. The document may not be modified or altered in any way. Except where your use constitutes "fair use" under copyright law, you may not use, share, download, upload, copy, print, display, perform, reproduce, publish, license, post, transmit, or distribute this document in whole or in part without the express authorization of Oracle.

The information contained in this document is subject to change without notice. If you find any problems in the document, please report them in writing to: Oracle University, 500 Oracle Parkway, Redwood Shores, California 94065 USA. This document is not

Technical Contributors and Reviewers

Paul DuboisJohn RussellJames DayKimseong LohMattias Jonsson

warranted to be error-free.

Restricted Rights Notice

If this documentation is delivered to the United States Government or anyone using the documentation on behalf of the United States Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTSThe U.S. Government’s rights to use, modify, reproduce, release, perform, display, or disclose these training materials are restricted b the terms of the applicable Oracle

Mattias JonssonOle Solberg

Editors

MalavikaRichard Wallis

G hi D i disclose these training materials are restricted by the terms of the applicable Oracle license agreement and/or the applicable U.S. Government contract.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Graphic Designer

Maheshwari Krishnamurthy

Publishers

Jayanthy KeshavamurthyVeena Narasimhan

Page 3: MySQL Performance Tuning

iii

Contents

Preface

1 Introduction Course Goals 1-2 Course Lesson Map 1-3 Introductions 1-5 Classroom Environment 1-6 MySQL: Overview 1-7 Acquisitions of the MySQL Company 1-8 MySQL Is Powering the World! 1-9 MySQL Database Server Editions 1-10 MySQL Tools 1-11 MySQL Drivers 1-12 MySQL Services 1-13 Community Support 1-14 Oracle Lifetime Support for MySQL 1-15 MySQL: Supported Operating Systems 1-16 MySQL Websites 1-17 MySQL Curriculum Footprint 1-18 MySQL Certifications: Overview 1-19 MySQL Online Documentation 1-20

2 Performance Tuning Basics

Objectives 2-2 Thinking About Performance 2-3 Areas to Tune 2-4 Performance Tuning Terminology 2-5 Quiz 2-10 Benchmark Planning 2-11 Benchmark Errors 2-13 Tuning Steps 2-15 General Tuning Session 2-16 Deploying MySQL 2-17 Quiz 2-19 Summary 2-20

Page 4: MySQL Performance Tuning

iv

3 Performance Tuning Tools Objectives 3-2 MySQL Monitoring Tools 3-3 Practice 3-1 Overview: MySQL Monitoring Tools 3-5 Quiz 3-6 Open Source Community Monitoring Tools 3-7 Practice 3-2 Overview: Open Source Community Monitoring Tools 3-10 Quiz 3-11 Benchmark Tools 3-12 Stress Tools 3-14 Practice 3-3 Overview: Benchmark Tools 3-15 Quiz 3-16 Summary 3-17

4 MySQL Server Tuning

Objectives 4-2 Major Components of the MySQL Server 4-3 Quiz 4-4 MySQL Thread Handling 4-5 Quiz 4-6 MySQL Memory Usage 4-7 Quiz 4-8 Simultaneous Connections in MySQL 4-9 Quiz 4-11 Reusing Threads 4-12 Thread Cache: Scenario 4-14 Practice 4-1 Overview: Effects of Thread Caching 4-15 Reusing Tables 4-16 Setting table_open_cache 4-17 Setting table_open_cache: Scenario 1 4-18 Setting table_open_cache: Scenario 2 4-19 Setting table_open_cache: Scenario 3 4-20 Practice 4-2 Overview: Table Caching 4-21 Quiz 4-22 Managing Files 4-23 Quiz 4-26 Practice 4-4 Overview: Setting max_connections 4-27 Other Connection Status Variables 4-28 Practice 4-5 Overview: Evaluating the Effect of Numerous Connections 4-29 Other Thread Status Variables 4-30 Setting thread_cache_size: Scenario 4-31

Page 5: MySQL Performance Tuning

v

Per-Session Thread Buffers 4-32 Quiz 4-36 Total Thread Memory Usage 4-37 Total Thread Memory Usage: Scenario 4-38 Practice 4-6 Overview: Total Thread Memory Usage 4-39 Optimal Sorting of Data 4-40 Practice 4-7 Overview: Sort Queries 4-42 Network Problems 4-43 Quiz 4-44 Binary Logs Performance 4-45 Quiz 4-46 All Statements 4-47 Quiz 4-49 SELECT Statements 4-50 Quiz 4-52 Table Locks Performance 4-53 Quiz 4-54 Summary 4-55

5 MySQL Query Cache

Objectives 5-2 MySQL Query Cache 5-3 MySQL Query Cache Settings 5-4 When Not to Use the MySQL Query Cache 5-6 When to Use the MySQL Query Cache 5-7 Quiz 5-8 MySQL Query Cache Status Variables 5-9 Practice 5-1 Overview: Query Cache 5-12 Quiz 5-13 Improve Query Cache Results 5-14 Quiz 5-15 Summary 5-16

6 InnoDB

Objectives 6-2 InnoDB Storage Engine 6-3 InnoDB Storage Engine: Uses 6-4 Using the InnoDB Storage Engine 6-5 Quiz 6-7 InnoDB Log Files and Buffers 6-8 Quiz 6-9

Page 6: MySQL Performance Tuning

vi

Practice 6-1 Overview: Commit Transactions 6-10 InnoDB Table Design 6-11 Quiz 6-13 SHOW ENGINE INNODB STATUS 6-14 Other SHOW ENGINE INNODB STATUS Sections 6-16 Practice 6-2 Overview: SHOW ENGINE INNODB STATUS 6-18 Quiz 6-19 InnoDB Monitors 6-20 Practice 6-3 Overview: InnoDB Monitors 6-21 Quiz 6-22 InnoDB Settings 6-23 Practice 6-4 Overview: InnoDB Settings 6-31 Quiz 6-32 Summary 6-33

7 MyISAM

Objectives 7-2 MyISAM Storage Engine 7-3 MyISAM Storage Engine: Uses 7-4 MyISAM Table Design 7-5 Quiz 7-6 Optimizing MyISAM 7-7 Practice 7-1 Overview: Optimize MyISAM 7-8 Quiz 7-9 Minimizing MyISAM Table Lock Issues 7-10 Practice 7-2 Overview: MyISAM Table Locks 7-12 MyISAM Settings 7-13 Quiz 7-15 MyISAM Key Cache 7-16 MyISAM Key Cache: Status Variables 7-18 Practice 7-3 Overview: Key Cache Effectiveness 7-20 Quiz 7-21 MyISAM Full-Text Search 7-22 MyISAM Full-Text Search: Tips 7-23 Practice 7-4 Overview: Full-Text Indexing 7-24 Summary 7-25

8 Other MySQL Storage Engines and Issues

Objectives 8-2 Large Objects 8-3 Practice 8-1 Overview: Large Objects 8-4

Page 7: MySQL Performance Tuning

vii

Quiz 8-5 MEMORY Storage Engine 8-6 MEMORY Storage Engine: Uses 8-7 MEMORY Storage Engine: Performance 8-8 Practice 8-2 Overview: MEMORY Storage Engine 8-9 Quiz 8-10 Using Multiple Storage Engines: Advantages 8-11 Using a Single Storage Engine: Advantages 8-12 Quiz 8-13 Summary 8-14

9 Schema Design and Performance

Objectives 9-2 Schema Design Considerations 9-3 Schema Design Tasks 9-4 Quiz 9-6 Normalization and Performance 9-7 Non-Normalization and Performance 9-8 Mixing Normalization and Performance 9-9 Practice 9-1 Overview: Schema Design 9-11 Quiz 9-12 Data Types 9-13 Practice 9-2 Overview: Data Types 9-15 Quiz 9-16 Indexes 9-17 Indexing 9-19 Index Types 9-22 Practice 9-3 Overview: Indexes 9-23 Quiz 9-24 Partitioning 9-25 Partitioning and the File System 9-26 Other Partitioning Performance Issues 9-27 Partitioning Limitations 9-28 Practice 9-4 Overview: Partitioning 9-29 Quiz 9-30 Summary 9-31

10 MySQL Query Performance

Objectives 10-2 SQL Tuning: General Best Practices 10-3 Quiz 10-4

Page 8: MySQL Performance Tuning

viii

EXPLAIN 10-5 Quiz 10-6 EXPLAIN Output 10-7 Quiz 10-9 EXPLAIN select_type 10-10 Quiz 10-11 EXPLAIN type 10-12 Quiz 10-15 EXPLAIN key 10-16 Quiz 10-17 EXPLAIN Extra 10-18 Quiz 10-20 Practice 10-1 Overview: EXPLAIN Outputs 10-21 MySQL Query Optimizer 10-22 Quiz 10-23 Finding Problematic Queries 10-24 Quiz 10-26 Practice 10-2 Overview: Improve Query Executions 10-27 Practice 10-3 Overview: Locate and Correct Problematic Queries 10-28 Summary 10-29

11 Performance Tuning Extras

Objectives 11-2 Hardware Considerations 11-3 Quiz 11-5 Hardware Considerations 11-6 Quiz 11-8 Configuring Hardware 11-9 Quiz 11-10 Operating System Considerations 11-11 Quiz 11-12 Operating System Configuration 11-13 Quiz 11-16 Logging 11-17 Quiz 11-18 Backup and Recovery 11-19 Quiz 11-20 Summary 11-21

Page 9: MySQL Performance Tuning

ix

12 Conclusion Course Goals: Review (1 of 3) 12-2 Course Goals: Review (2 of 3) 12-3 Course Goals: Review (3 of 3) 12-4 MySQL Curriculum Path 12-5 MySQL Resources 12-6 We Need Your Evaluation! 12-7 Thank You! 12-8 Q&A Session 12-9

Appendix: Example Schema Data Models Appendix: Lab Scripts

Appendix: Appendix: Basic Linux vi Editor Commands

Page 10: MySQL Performance Tuning