Thank you

I do not produce knowledge, only the porter of knowledge. The time spent writing this volume has been spent in two main ways:

  • Get to the bottom of what it is.

    This process involves studying source code, books and materials.

  • How to express what I already know.

    This process is that I kept walking on the ground, sorting out the knowledge structure, choosing the words to use the sentence, constantly will have written the article over, just want to give you a good user experience.

It takes about half the time to figure out what’s going on. In addition to reading the MySQL source code directly, looking at the references is a lazy way to learn. This book is just an introduction to MySQL. If you want to know more about MySQL, you can find some inspiration from the following materials.

Some links

  • MySQL official documentation: dev.mysql.com/doc/refman/…

    The official MySQL documentation is one of the most frequently referenced sources in writing this book. To be honest, the document is written very easy to understand, the only drawback is that it is too long, resulting in people can not begin to read.

  • MySQL Internals Manual:dev.mysql.com/doc/interna…

    The documentation on how MySQL implements its various functions is good, but there are too few, and many chapters are skipped.

  • A Critique of ANSI SQL Isolation Levels: www.microsoft.com/en-us/resea…

    An in-depth analysis of the isolation level of a paper, particularly classic.

  • He Dengcheng’s Github: github.com/hedengcheng…

    The blog is very good, and there are many details about transaction and optimization, but most of them are PPT structure with too few words, so students who are not clear about the context may be confused.

  • Orczhou’s blog is www.orczhou.com/

  • Jeremy Cole’s blog is blog.jcole.us/innodb/

    Jeremy Cole not only wrote Innodb_Ruby, a great tool for parsing InnoDB’s storage structures, but also wrote a series of blogs about them. His old man’s blog brought me back from the abyss when I almost gave up digging into table space structures.

  • That hai LAN LAN (Li Haixiang) blog: blog.csdn.net/fly2nn

  • Taobao monthly report: mysql.taobao.org/monthly/

    Because MySQL has a lot of source code, it often makes people feel helpless. Taobao Monthly is a very good source code reading guide.

    Just to make fun of it, this Taobao monthly bulletin can only be regarded as a source code reading guide. If you read the monthly bulletin without looking at the source code, it can only be regarded as a secret book.

  • MySQL Server Blog:mysqlserverteam.com/

    MySQL Team’s blog, the primary source, was a revelation when I didn’t know what to read.

  • Mysql_lover’s blog: blog.csdn.net/mysql_lover…

  • J ø rgen ‘s point of view:jorgenloland.blogspot.com/

  • Mariadb’s documentation on query optimization: mariadb.com/kb/en/libra…

    I have to say mariadb documentation is very artistic compared to MySQL documentation (there are lots of beautiful illustrations in the inside), I doubt MySQL documentation is written directly by programmers, mariadb documentation is written by product managers. When we want to understand how a feature works and can’t find our brains in the dry descriptions of MySQL documentation, we can take a look at mariadb’s verbose style.

  • Reconstructing Data Manipulation Queries from Redo Logs: www.sba-research.org/wp-content/…

  • A PPT about InnoDB transactions: mariadb.org/wp-content/…

  • Unofficial optimization document: www.unofficialmysqlguide.com/optimizer-t…

    This document is very good, very, very good

  • MySQL8.0 source document: dev.mysql.com/doc/dev/mys…

Some books

  • The Art of the Database Query optimizer by Haixiang Li

    You can see this book as a source code guide, but it is 5.6 source code, 5.7 refactoring some, but the general idea or can refer to.

  • Internal Reference to MySQL Operation and Maintenance, Zhou Yanwei, Wang Zhufeng, Qiang Changjin

    The internal reference has many code details and is a good guide to reading the source code.

  • Effective MySQL: Optimizing SQL Statements by Ronald Bradford

    The pamphlet, which can be read in one go, is helpful for understanding the general content of MySQL query optimization.

  • High-performance MySQL. By Baron Schwartz/Peter Zaitsev/Vadim Tkachenko

    Classic, for the third edition, it would have been better to leave chapters 2 and 3 to the end. However, the author prefers to talk about MySQL as a black box, mainly to explain how to better use MySQL software, which can be seen from the transformation of the second edition to the third edition, many low-level details involved in the second edition have been removed in the third edition. All in all, it is a very good introduction to MySQL progression.

  • The Art of database transaction processing by Li Haixiang

    As in The Art of the Database Query Optimizer.

  • Inside MySQL Technology: InnoDB Storage Engine 2nd edition by Jiang Chengyao

    Learn the MySQL kernel advanced reading the first book.

  • Inside MySQL Technology 5th edition. By Paul DuBois

    This book is a very detailed introduction to the use of MySQL, which means it doesn’t cover any of the kernel principles of MySQL, not even the index structure. It’s like an old woman nagging you about how to eat, how to drink, how to go to the bathroom. The overall style is more like the official documentation of MySQL, if you want to understand MySQL from the beginning of the use of students can try to have a look.

  • The Concept of Database Systems. By Abraham Silberschatz, Henry F.Korth, AND S.Sudarshan

    This is a great book for getting started on database principles, but it’s a little more academic. After all, it’s a serious textbook with a lot of formulas.

  • Transaction Concepts and Techniques. By Jim Gray/Andreas Reuter

    I only read 1 ~ 5 chapters symbolically in this book. To be honest, I can’t understand it very well. I can’t always get the point the author wants to express. However, I heard that the industry highly praised this book, and I happen to have read a little bit of it, so I wrote it down, if you are interested in it, you can read it.

Say something bad

These references are good enough, mainly because I did refer to them in the writing process, and without them I would not have been able to complete the volume for three or five years. Effectiv Effectiv MySQL: Optimizing SQL Statements I spend most of the time reading all the information except these two books, so I feel dizzy and weak. I cannot figure out the point the author wants to express without looking at it for ten or eight times. This is also my intention to write this little book — to make there is no difficult knowledge in the world.