{"id":14371,"date":"2024-01-08T19:44:49","date_gmt":"2024-01-09T02:44:49","guid":{"rendered":"https:\/\/www.mysqltutorial.org\/?page_id=14371"},"modified":"2024-01-09T07:00:25","modified_gmt":"2024-01-09T14:00:25","slug":"mysql-innodb-architecture","status":"publish","type":"page","link":"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/","title":{"rendered":"MySQL InnoDB Architecture"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you will learn about MySQL InnoDB architecture including its in-memory and on-disk structures.<\/p>\n\n\n\n<p>InnoDB is a default storage engine for MySQL, designed with a focus on reliability and performance.<\/p>\n\n\n\n<p>The following picture illustrates the InnoDB architecture of MySQL 8.0:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"856\" height=\"667\" src=\"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2024\/01\/mysq-innodb-architecture.png\" alt=\"\" class=\"wp-image-14373\" srcset=\"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2024\/01\/mysq-innodb-architecture.png 856w, https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2024\/01\/mysq-innodb-architecture-200x156.png 200w, https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2024\/01\/mysq-innodb-architecture-768x598.png 768w\" sizes=\"auto, (max-width: 856px) 100vw, 856px\" \/><\/figure>\n\n\n\n<p>The InnoDB architecture has two main kinds of structures:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In-memory structures<\/li>\n\n\n\n<li>on-disk structures<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">In-memory structures<\/h2>\n\n\n\n<p>The in-memory structures are responsible for managing and optimizing the storage and retrieval of data. The in-memory structures include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Buffer pool<\/li>\n\n\n\n<li>Change buffer<\/li>\n\n\n\n<li>Adaptive hash index<\/li>\n\n\n\n<li>Log buffer<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Buffer pool<\/h3>\n\n\n\n<p>The buffer pool caches frequently accessed data. The buffer pool allows MySQL to read and write data directly in memory, reducing expensive I\/O accesses, and significantly improving query performance.<\/p>\n\n\n\n<p>MySQL allows you to configure the size of the buffer pool by allocating a portion system&#8217;s memory for caching. If you have a dedicated MySQL server, you can allocate up to 80% of physical memory to the buffer pool for optimal performance.<\/p>\n\n\n\n<p>To optimize the MySQL server performance, you can adjust the <a href=\"https:\/\/www.mysqltutorial.org\/mysql-administration\/innodb_buffer_pool_size\/\">buffer pool size<\/a>, <a href=\"https:\/\/www.mysqltutorial.org\/mysql-administration\/innodb_buffer_pool_instances\/\">the number of buffer pool instances,<\/a> and the <a href=\"https:\/\/www.mysqltutorial.org\/mysql-administration\/innodb_buffer_pool_chunk_size\/\">buffer pool chunk size<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Change Buffer<\/h3>\n\n\n\n<p>The change buffer is in charge of caching changes to the secondary index pages when these pages are not in the buffer pool. <\/p>\n\n\n\n<p>When you execute an <a href=\"https:\/\/www.mysqltutorial.org\/mysql-basics\/mysql-insert\/\">INSERT<\/a>, <a href=\"https:\/\/www.mysqltutorial.org\/mysql-basics\/mysql-update\/\">UPDATE<\/a>, or <a href=\"https:\/\/www.mysqltutorial.org\/mysql-basics\/mysql-delete\/\">DELETE<\/a> statement, it changes the data of the table and the secondary index pages. The change buffer caches these changes when the relevant pages are not in the buffer pool to avoid time-consuming I\/O operations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Adaptive hash index<\/h3>\n\n\n\n<p>The adaptive index is an in-memory structure to optimize the performance of certain read options. It is designed to speed up access to frequently queried index pages by providing a quick in-memory lookup mechanism.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Log Buffer<\/h3>\n\n\n\n<p>The log buffer is a memory area that holds the changes to be written to transaction logs. <\/p>\n\n\n\n<p>The log buffer improves performance by writing logs to memory before periodically flushing them to the redo log on disk.<\/p>\n\n\n\n<p>The default size of the log buffer is often sufficient for most applications. But if you have a write-intensive application, you can <a href=\"https:\/\/www.mysqltutorial.org\/mysql-administration\/innodb_log_buffer_size\/\">configure the log buffer size<\/a> to enhance the MySQL server performance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">On-disk structures<\/h2>\n\n\n\n<p>InnoDB storage engine uses the on-disk structures to store data permanently on disks. These structures ensure data integrity, offer efficient storage and support transactional features.<\/p>\n\n\n\n<p>The on-disk structures include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>System tablespace<\/li>\n\n\n\n<li>File-per-table tablespaces<\/li>\n\n\n\n<li>General tablespaces<\/li>\n\n\n\n<li>Undo tablespaces<\/li>\n\n\n\n<li>Temporary tablespaces<\/li>\n\n\n\n<li>Doublewrite buffer<\/li>\n\n\n\n<li>Redo log<\/li>\n\n\n\n<li>Undo logs<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">System tablespace<\/h3>\n\n\n\n<p>The system tablespace serves as the storage area for the change buffer. <\/p>\n\n\n\n<p>InnoDB uses one or more data files for the system tablespace. By default, MySQL creates the <code>ibdata1<\/code> file in the <a href=\"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-data-directory\/\">data directory<\/a>.<\/p>\n\n\n\n<p>The <code>innodb_data_file_path<\/code> startup option determines the size and number of system tablespace data files. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">File-per-table tablespaces<\/h3>\n\n\n\n<p>The file-per-table tablespaces store the actual data of the InnoDB tables.<\/p>\n\n\n\n<p>When you <a href=\"https:\/\/www.mysqltutorial.org\/mysql-basics\/mysql-create-table\/\">create new tables<\/a> using the InnoDB storage engine, InnoDB stores each table and its associated indexes in a file-per-tablespace file with the <code>.ibd<\/code> extension.<\/p>\n\n\n\n<p>For example, if you create a table called <code>tbl_name<\/code>, InnoDB will create a corresponding file-per-tablespace data file as <code>tbl_name.idb<\/code> in the data directory.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">General tablespaces<\/h3>\n\n\n\n<p>General tablespaces are shared tablespaces that can store multiple tables. General table spaces are created using the <code>CREATE TABLESPACE<\/code> statement.<\/p>\n\n\n\n<p>General tablespaces help reduce the duplication of tablespace metadata in memory when multiple tables share the same general tablespace. Therefore, general tablespaces have potential memory advantages in comparison with file-per-table tablespaces.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Undo tablespaces<\/h3>\n\n\n\n<p>The undo tablespace stores undo logs that contain the information for undoing the latest changes by a transaction.<\/p>\n\n\n\n<p>MySQL has two default undo tablespace files <code>innodb_undo_001<\/code>&nbsp; and <code>innodb_undo_002<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Temporary tablespaces<\/h3>\n\n\n\n<p>When you create temporary tables, InnoDB stores them in the temporary table spaces more specifically session temporary tablespaces.<\/p>\n\n\n\n<p>If you make changes to the temporary tables, InnoDB stores rollback segments for changes in the global temporary tablespace.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Doublewrite buffer<\/h3>\n\n\n\n<p>InnoDB uses the Doublewrite Buffer to store pages that have been flushed from the buffer pool before their actual writing to InnoDB data files. <\/p>\n\n\n\n<p>The Doublewrite Buffer allows InnoDB to retrieve a reliable page copy for recovery in case a storage issue occurs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Redo log<\/h3>\n\n\n\n<p>A redo log is a disk-based data structure that stores the changes made to tables. InnoDB uses the redo log during crash recovery to correct the data written by incomplete transactions.<\/p>\n\n\n\n<p>For example, when you execute an SQL statement that changes the database such as <a href=\"https:\/\/www.mysqltutorial.org\/mysql-basics\/mysql-insert\/\">INSERT<\/a>, <a href=\"https:\/\/www.mysqltutorial.org\/mysql-basics\/mysql-update\/\">UPDATE<\/a>, and <a href=\"https:\/\/www.mysqltutorial.org\/mysql-basics\/mysql-delete\/\">DELETE<\/a>, the redo log stores the requests in a redo log file. <\/p>\n\n\n\n<p>If a crash occurs, MySQL replays the modification in the redo log that did not finish before accepting the connection.<\/p>\n\n\n\n<p>InnoDB uses a set of redo log files (<code>ib_logfile0<\/code>, <code>iblogfile1<\/code>, &#8230;) to store the changes to the table data.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Undo logs<\/h3>\n\n\n\n<p>The undo logs store the information needed for rollback operations. <\/p>\n\n\n\n<p>For example, if you <a href=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/mysql-transactions\/\">execute a transaction<\/a> and decide to roll it back, InnoDB will utilize the undo log to reverse the changes made during that transaction.<\/p>\n\n\n\n<p>InnoDB uses a set of undo log files, often named <code>undo_001.ibd<\/code>, <code>udo_002.ibd<\/code>, and so on to store the logs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>InnoDB architecture includes in-memory and on-disk structures.<\/li>\n\n\n\n<li>InnoDB uses a buffer pool to cache frequently accessed data, thereby, enhancing performance by allowing direct in-memory access to data and reducing disk I\/O operations.<\/li>\n\n\n\n<li>InnoDB uses on-disk structures such as doublewrite buffers, undo logs, and redo logs to maintain data integrity and facilitate recovery, ensuring database consistency.<\/li>\n<\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful? <\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"14371\"\n\t\t\t\tdata-post-url=\"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/\"\n\t\t\t\tdata-post-title=\"MySQL InnoDB Architecture\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"14371\"\n\t\t\t\tdata-post-url=\"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/\"\n\t\t\t\tdata-post-title=\"MySQL InnoDB Architecture\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you will learn how about MySQL InnoDB architecture including its in-memory and on-disk structures.<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":441,"menu_order":20,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-14371","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MySQL InnoDB Architecture<\/title>\n<meta name=\"description\" content=\"In this tutorial, you will learn how about MySQL InnoDB architecture including its in-memory and on-disk structures.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MySQL InnoDB Architecture\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, you will learn how about MySQL InnoDB architecture including its in-memory and on-disk structures.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/\" \/>\n<meta property=\"og:site_name\" content=\"MySQL Tutorial\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-09T14:00:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2024\/01\/mysq-innodb-architecture.png\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-administration\\\/mysql-innodb-architecture\\\/\",\"url\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-administration\\\/mysql-innodb-architecture\\\/\",\"name\":\"MySQL InnoDB Architecture\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-administration\\\/mysql-innodb-architecture\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-administration\\\/mysql-innodb-architecture\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mysqltutorial.org\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/mysq-innodb-architecture.png\",\"datePublished\":\"2024-01-09T02:44:49+00:00\",\"dateModified\":\"2024-01-09T14:00:25+00:00\",\"description\":\"In this tutorial, you will learn how about MySQL InnoDB architecture including its in-memory and on-disk structures.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-administration\\\/mysql-innodb-architecture\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-administration\\\/mysql-innodb-architecture\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-administration\\\/mysql-innodb-architecture\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mysqltutorial.org\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/mysq-innodb-architecture.png\",\"contentUrl\":\"https:\\\/\\\/www.mysqltutorial.org\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/mysq-innodb-architecture.png\",\"width\":856,\"height\":667},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-administration\\\/mysql-innodb-architecture\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mysqltutorial.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MySQL Administration\",\"item\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-administration\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"MySQL InnoDB Architecture\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/#website\",\"url\":\"https:\\\/\\\/www.mysqltutorial.org\\\/\",\"name\":\"MySQL Tutorial\",\"description\":\"A comprehensive MySQL Tutorial\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mysqltutorial.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MySQL InnoDB Architecture","description":"In this tutorial, you will learn how about MySQL InnoDB architecture including its in-memory and on-disk structures.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/","og_locale":"en_US","og_type":"article","og_title":"MySQL InnoDB Architecture","og_description":"In this tutorial, you will learn how about MySQL InnoDB architecture including its in-memory and on-disk structures.","og_url":"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/","og_site_name":"MySQL Tutorial","article_modified_time":"2024-01-09T14:00:25+00:00","og_image":[{"url":"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2024\/01\/mysq-innodb-architecture.png","type":"","width":"","height":""}],"twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/","url":"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/","name":"MySQL InnoDB Architecture","isPartOf":{"@id":"https:\/\/www.mysqltutorial.org\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/#primaryimage"},"image":{"@id":"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2024\/01\/mysq-innodb-architecture.png","datePublished":"2024-01-09T02:44:49+00:00","dateModified":"2024-01-09T14:00:25+00:00","description":"In this tutorial, you will learn how about MySQL InnoDB architecture including its in-memory and on-disk structures.","breadcrumb":{"@id":"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/#primaryimage","url":"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2024\/01\/mysq-innodb-architecture.png","contentUrl":"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2024\/01\/mysq-innodb-architecture.png","width":856,"height":667},{"@type":"BreadcrumbList","@id":"https:\/\/www.mysqltutorial.org\/mysql-administration\/mysql-innodb-architecture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mysqltutorial.org\/"},{"@type":"ListItem","position":2,"name":"MySQL Administration","item":"https:\/\/www.mysqltutorial.org\/mysql-administration\/"},{"@type":"ListItem","position":3,"name":"MySQL InnoDB Architecture"}]},{"@type":"WebSite","@id":"https:\/\/www.mysqltutorial.org\/#website","url":"https:\/\/www.mysqltutorial.org\/","name":"MySQL Tutorial","description":"A comprehensive MySQL Tutorial","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mysqltutorial.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/14371","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/comments?post=14371"}],"version-history":[{"count":4,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/14371\/revisions"}],"predecessor-version":[{"id":14425,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/14371\/revisions\/14425"}],"up":[{"embeddable":true,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/441"}],"wp:attachment":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/media?parent=14371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}