{"id":492,"date":"2021-07-28T19:45:36","date_gmt":"2021-07-28T11:45:36","guid":{"rendered":"https:\/\/egonlin.com\/?p=492"},"modified":"2025-06-10T20:46:58","modified_gmt":"2025-06-10T12:46:58","slug":"%e5%ad%98%e5%82%a8%e5%bc%95%e6%93%8e","status":"publish","type":"post","link":"https:\/\/egonlin.com\/?p=492","title":{"rendered":"\u5b58\u50a8\u5f15\u64ce"},"content":{"rendered":"<h1>\u5b58\u50a8\u5f15\u64ce<\/h1>\n<h2>\u4e00 MySQL\u7ec4\u7ec7\u67b6\u6784<\/h2>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/17-1024x603.jpg'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/17-1024x603.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/p>\n<p>1\u3001\u8fde\u63a5\u5c42<\/p>\n<pre><code class=\"language-bash\">1.\u9a8c\u8bc1\u7528\u6237\u7684\u8eab\u4efd\uff0c\u7528\u6237\u540d\u5bc6\u7801\u662f\u5426\u5339\u914d\r\n2.\u63d0\u4f9b\u4e24\u79cd\u8fde\u63a5\u65b9\u5f0f\uff08TCP\/IP\u8fde\u63a5\u3001socket\u8fde\u63a5\uff09\r\n3.\u8fde\u63a5\u5c42\u63d0\u4f9b\u4e86\u4e00\u4e2a\u4e0esql\u5c42\u4ea4\u4e92\u7684\u7ebf\u7a0b<\/code><\/pre>\n<p>2\u3001SQL\u5c42<\/p>\n<pre><code class=\"language-bash\">1.\u63a5\u6536\u8fde\u63a5\u5c42\u4f20\u8fc7\u6765\u7684SQL\u8bed\u53e5\r\n2.\u9a8c\u8bc1\u6267\u884c\u7684SQL\u8bed\u6cd5\r\n3.\u9a8c\u8bc1SQL\u7684\u8bed\u4e49\uff08DDL,DML,DQL,DCL\uff09\r\n4.\u89e3\u6790\u5668\uff1a\u89e3\u6790SQL\u8bed\u53e5\uff0c\u751f\u6210\u6267\u884c\u8ba1\u5212\r\n5.\u4f18\u5316\u5668\uff1a\u5c06\u89e3\u6790\u5668\u4f20\u6765\u7684\u6267\u884c\u8ba1\u5212\u9009\u62e9\u6700\u4f18\u7684\u4e00\u6761\u6267\u884c\r\n6.\u6267\u884c\u5668\uff1a\u5c06\u6700\u4f18\u7684\u4e00\u6761\u6267\u884c\r\n    6.1 \u4e0e\u5b58\u50a8\u5f15\u64ce\u5c42\u5efa\u7acb\u4ea4\u4e92\u7684\u7ebf\u7a0b\r\n    6.2 \u5c06\u8981\u6267\u884c\u7684sql\u53d1\u7ed9\u5b58\u50a8\u5f15\u64ce\u5c42\r\n7.\u5982\u679c\u6709\u7f13\u5b58\uff0c\u5219\u8d70\u7f13\u5b58\r\n8.\u8bb0\u5f55\u65e5\u5fd7\uff08\u5982binlog\uff09<\/code><\/pre>\n<p>3\u3001\u5b58\u50a8\u5f15\u64ce\u5c42<\/p>\n<pre><code class=\"language-bash\">1.\u63a5\u6536SQL\u5c42\u4f20\u6765\u7684\u8bed\u53e5\r\n2.\u4e0e\u78c1\u76d8\u4ea4\u4e92\uff0c\u83b7\u53d6\u6570\u636e\uff0c\u8fd4\u56de\u7ed9sql\u5c42\r\n3.\u5efa\u7acb\u4e0esql\u5c42\u4ea4\u4e92\u7684\u7ebf\u7a0b<\/code><\/pre>\n<p>\u4ec0\u4e48\u662f\u5b58\u50a8\u5f15\u64ce\uff1f\uff1f\uff1f<\/p>\n<pre><code>mysql\u4e2d\u5efa\u7acb\u7684\u5e93===&gt;\u6587\u4ef6\u5939\r\n\r\n\u5e93\u4e2d\u5efa\u7acb\u7684\u8868===&gt;\u6587\u4ef6\r\n\r\n\u73b0\u5b9e\u751f\u6d3b\u4e2d\u6211\u4eec\u7528\u6765\u5b58\u50a8\u6570\u636e\u7684\u6587\u4ef6\u6709\u4e0d\u540c\u7684\u7c7b\u578b\uff0c\u6bcf\u79cd\u6587\u4ef6\u7c7b\u578b\u5bf9\u5e94\u5404\u81ea\u4e0d\u540c\u7684\u5904\u7406\u673a\u5236\uff1a\u6bd4\u5982\u5904\u7406\u6587\u672c\u7528txt\u7c7b\u578b\uff0c\u5904\u7406\u8868\u683c\u7528excel\uff0c\u5904\u7406\u56fe\u7247\u7528png\u7b49\r\n\r\n\u6570\u636e\u5e93\u4e2d\u7684\u8868\u4e5f\u5e94\u8be5\u6709\u4e0d\u540c\u7684\u7c7b\u578b\uff0c\u8868\u7684\u7c7b\u578b\u4e0d\u540c\uff0c\u4f1a\u5bf9\u5e94mysql\u4e0d\u540c\u7684\u5b58\u53d6\u673a\u5236\uff0c\u8868\u7c7b\u578b\u53c8\u79f0\u4e3a\u5b58\u50a8\u5f15\u64ce\uff0cmysql\u6839\u636e\u4e0d\u540c\u7684\u8868\u7c7b\u578b\u4f1a\u6709\u4e0d\u540c\u7684\u5904\u7406\u673a\u5236\r\n\r\n\u5b58\u50a8\u5f15\u64ce\u8bf4\u767d\u4e86\u5c31\u662f\u5982\u4f55\u5b58\u50a8\u6570\u636e\u3001\u5982\u4f55\u4e3a\u5b58\u50a8\u7684\u6570\u636e\u5efa\u7acb\u7d22\u5f15\u548c\u5982\u4f55\u66f4\u65b0\u3001\u67e5\u8be2\u6570\u636e\u7b49\u6280\u672f\u7684\u5b9e\u73b0\u65b9\r\n\u6cd5\u3002\u56e0\u4e3a\u5728\u5173\u7cfb\u6570\u636e\u5e93\u4e2d\u6570\u636e\u7684\u5b58\u50a8\u662f\u4ee5\u8868\u7684\u5f62\u5f0f\u5b58\u50a8\u7684\uff0c\u6240\u4ee5\u5b58\u50a8\u5f15\u64ce\u4e5f\u53ef\u4ee5\u79f0\u4e3a\u8868\u7c7b\u578b\uff08\u5373\u5b58\u50a8\u548c\r\n\u64cd\u4f5c\u6b64\u8868\u7684\u7c7b\u578b\uff09\r\n\r\n\u5728Oracle \u548cSQL Server\u7b49\u6570\u636e\u5e93\u4e2d\u53ea\u6709\u4e00\u79cd\u5b58\u50a8\u5f15\u64ce\uff0c\u6240\u6709\u6570\u636e\u5b58\u50a8\u7ba1\u7406\u673a\u5236\u90fd\u662f\u4e00\u6837\u7684\u3002\u800cMySql\r\n\u6570\u636e\u5e93\u63d0\u4f9b\u4e86\u591a\u79cd\u5b58\u50a8\u5f15\u64ce\u3002\u7528\u6237\u53ef\u4ee5\u6839\u636e\u4e0d\u540c\u7684\u9700\u6c42\u4e3a\u6570\u636e\u8868\u9009\u62e9\u4e0d\u540c\u7684\u5b58\u50a8\u5f15\u64ce\uff0c\u7528\u6237\u4e5f\u53ef\u4ee5\u6839\u636e\r\n\u81ea\u5df1\u7684\u9700\u8981\u7f16\u5199\u81ea\u5df1\u7684\u5b58\u50a8\u5f15\u64ce\r\n\r\nSQL \u89e3\u6790\u5668\u3001SQL \u4f18\u5316\u5668\u3001\u7f13\u51b2\u6c60\u3001\u5b58\u50a8\u5f15\u64ce\u7b49\u7ec4\u4ef6\u5728\u6bcf\u4e2a\u6570\u636e\u5e93\u4e2d\u90fd\u5b58\u5728,\u4f46\u4e0d\u662f\u6bcf \u4e2a\u6570\u636e\u5e93\u90fd\u6709\u8fd9\u4e48\u591a\u5b58\u50a8\u5f15\u64ce\u3002MySQL \u7684\u63d2\u4ef6\u5f0f\u5b58\u50a8\u5f15\u64ce\u53ef\u4ee5\u8ba9\u5b58\u50a8\u5f15\u64ce\u5c42\u7684\u5f00\u53d1\u4eba\u5458\u8bbe \u8ba1\u4ed6\u4eec\u5e0c\u671b\u7684\u5b58\u50a8\u5c42,\u4f8b\u5982,\u6709\u7684\u5e94\u7528\u9700\u8981\u6ee1\u8db3\u4e8b\u52a1\u7684\u8981\u6c42,\u6709\u7684\u5e94\u7528\u5219\u4e0d\u9700\u8981\u5bf9\u4e8b\u52a1\u6709\u8fd9 \u4e48\u5f3a\u7684\u8981\u6c42 ;\u6709\u7684\u5e0c\u671b\u6570\u636e\u80fd\u6301\u4e45\u5b58\u50a8,\u6709\u7684\u53ea\u5e0c\u671b\u653e\u5728\u5185\u5b58\u4e2d,\u4e34\u65f6\u5e76\u5feb\u901f\u5730\u63d0\u4f9b\u5bf9\u6570\u636e \u7684\u67e5\u8be2\u3002 <\/code><\/pre>\n<p>4\u3001mysql\u67e5\u8be2\u8fc7\u7a0b<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/735751-20180615153551870-1370106855.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" class=\"alignnone size-full wp-image-10878\" data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/735751-20180615153551870-1370106855.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" width=\"900\" height=\"527\"  sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/div><\/p>\n<h2>\u4e8c \u67e5\u770b\u5b58\u50a8\u5f15\u64ce\u4fe1\u606f<\/h2>\n<p>\u67e5\u770b\u6240\u6709\u652f\u6301\u7684\u5b58\u50a8\u5f15\u64ce<\/p>\n<pre><code>MariaDB [(none)]&gt; show engines\\G<\/code><\/pre>\n<p>innodb\u5b58\u50a8\u5f15\u64ce\u652f\u6301\u7684\u6838\u5fc3\u7279\u6027<\/p>\n<pre><code>\u4e8b\u52a1              \r\n\u884c\u7ea7\u9501\uff1ainnodb\u652f\u6301\u884c\u7ea7\u9501\uff0cmyisam\u662f\u8868\u7ea7\u9501\uff0c\u9501\u7684\u7c92\u5ea6\u8d8a\u5c0f\u5e76\u53d1\u80fd\u529b\u8d8a\u5f3a\r\n\u5916\u952e\r\nMVCC        \u591a\u7248\u672c\u5e76\u53d1\u63a7\u5236\r\n\u5907\u4efd\u548c\u6062\u590d   innodb\u652f\u6301\u652f\u6301\u70ed\u5907\uff0cmyisam\u4e0d\u652f\u6301\r\n\u81ea\u52a8\u6545\u969c\u6062\u590d \uff08CSR\uff09 Crash Safe Recovery<\/code><\/pre>\n<p>\u4e86\u89e3<\/p>\n<pre><code>01\uff09InnoDB\r\n\u652f\u6301\u4e8b\u52a1,\u5176\u8bbe\u8ba1\u76ee\u6807\u4e3b\u8981\u9762\u5411\u8054\u673a\u4e8b\u52a1\u5904\u7406(OLTP)\u7684\u5e94\u7528\u3002\u5176\r\n\u7279\u70b9\u662f\u884c\u9501\u8bbe\u8ba1\u3001\u652f\u6301\u5916\u952e,\u5e76\u652f\u6301\u7c7b\u4f3c Oracle \u7684\u975e\u9501\u5b9a\u8bfb,\u5373\u9ed8\u8ba4\u8bfb\u53d6\u64cd\u4f5c\u4e0d\u4f1a\u4ea7\u751f\u9501\u3002 \r\n\r\n\u4ece MySQL 5.5.8 \u7248\u672c\u5f00\u59cb\u662f\u9ed8\u8ba4\u7684\u5b58\u50a8\u5f15\u64ce\u3002\u5982\u679c\u5e94\u7528\u5bf9\u4e8b\u52a1\u7684\u5b8c\u6574\u6027\u6709\u6bd4\u8f83\u9ad8\u7684\u8981\u6c42\uff0c\u5728\u5e76\u53d1\u6761\u4ef6\u4e0b\u8981\u6c42\u6570\u636e\u7684\u4e00\u81f4\u6027\uff0c\u6570\u636e\u64cd\u4f5c\u9664\u4e86\u63d2\u5165\u548c\u67e5\u8be2\u4e4b\u5916\uff0c\u8fd8\u5305\u62ec\u5f88\u591a\u66f4\u65b0\u548c\u5220\u9664\u64cd\u4f5c\uff0c\u90a3\u4e48InnoDB\u5b58\u50a8\u5f15\u64ce\u662f\u6bd4\u8f83\u5408\u9002\u7684\u3002InnoDB\u9664\u4e86\u6709\u6548\u7684\u964d\u4f4e\u7531\u5220\u9664\u548c\u66f4\u65b0\u5bfc\u81f4\u7684\u9501\u5b9a\uff0c\u8fd8\u53ef\u4ee5\u786e\u4fdd\u4e8b\u52a1\u7684\u5b8c\u6574\u63d0\u4ea4\u548c\u56de\u6eda\uff0c\u5bf9\u4e8e\u7c7b\u4f3c\u8ba1\u8d39\u7cfb\u7edf\u6216\u8005\u8d22\u52a1\u7cfb\u7edf\u7b49\u5bf9\u6570\u636e\u51c6\u786e\u8981\u6c42\u6027\u6bd4\u8f83\u9ad8\u7684\u7cfb\u7edf\u90fd\u662f\u5408\u9002\u7684\u9009\u62e9\u3002\r\n\r\nInnoDB \u5b58\u50a8\u5f15\u64ce\u5c06\u6570\u636e\u653e\u5728\u4e00\u4e2a\u903b\u8f91\u7684\u8868\u7a7a\u95f4\u4e2d,\u8fd9\u4e2a\u8868\u7a7a\u95f4\u5c31\u50cf\u9ed1\u76d2\u4e00\u6837\u7531 InnoDB \u5b58\u50a8\u5f15\u64ce\u81ea\u8eab\u6765\u7ba1\u7406\u3002\u4ece MySQL 4.1(\u5305\u62ec 4.1)\u7248\u672c\u5f00\u59cb,\u53ef\u4ee5\u5c06\u6bcf\u4e2a InnoDB \u5b58\u50a8\u5f15\u64ce\u7684 \u8868\u5355\u72ec\u5b58\u653e\u5230\u4e00\u4e2a\u72ec\u7acb\u7684 ibd \u6587\u4ef6\u4e2d\u3002\u6b64\u5916,InnoDB \u5b58\u50a8\u5f15\u64ce\u652f\u6301\u5c06\u88f8\u8bbe\u5907(row disk)\u7528 \u4e8e\u5efa\u7acb\u5176\u8868\u7a7a\u95f4\u3002\r\nInnoDB \u901a\u8fc7\u4f7f\u7528\u591a\u7248\u672c\u5e76\u53d1\u63a7\u5236(MVCC)\u6765\u83b7\u5f97\u9ad8\u5e76\u53d1\u6027,\u5e76\u4e14\u5b9e\u73b0\u4e86 SQL \u6807\u51c6 \u7684 4 \u79cd\u9694\u79bb\u7ea7\u522b,\u9ed8\u8ba4\u4e3a REPEATABLE \u7ea7\u522b,\u540c\u65f6\u4f7f\u7528\u4e00\u79cd\u79f0\u4e3a netx-key locking \u7684\u7b56\u7565\u6765 \u907f\u514d\u5e7b\u8bfb(phantom)\u73b0\u8c61\u7684\u4ea7\u751f\u3002\u9664\u6b64\u4e4b\u5916,InnoDB \u5b58\u50a8\u5f15\u64ce\u8fd8\u63d0\u4f9b\u4e86\u63d2\u5165\u7f13\u51b2(insert buffer)\u3001\u4e8c\u6b21\u5199(double write)\u3001\u81ea\u9002\u5e94\u54c8\u5e0c\u7d22\u5f15(adaptive hash index)\u3001\u9884\u8bfb(read ahead) \u7b49\u9ad8\u6027\u80fd\u548c\u9ad8\u53ef\u7528\u7684\u529f\u80fd\u3002\r\n\u5bf9\u4e8e\u8868\u4e2d\u6570\u636e\u7684\u5b58\u50a8,InnoDB \u5b58\u50a8\u5f15\u64ce\u91c7\u7528\u4e86\u805a\u96c6(clustered)\u7684\u65b9\u5f0f,\u6bcf\u5f20\u8868\u90fd\u662f\u6309 \u4e3b\u952e\u7684\u987a\u5e8f\u8fdb\u884c\u5b58\u50a8\u7684,\u5982\u679c\u6ca1\u6709\u663e\u5f0f\u5730\u5728\u8868\u5b9a\u4e49\u65f6\u6307\u5b9a\u4e3b\u952e,InnoDB \u5b58\u50a8\u5f15\u64ce\u4f1a\u4e3a\u6bcf\u4e00 \u884c\u751f\u6210\u4e00\u4e2a 6 \u5b57\u8282\u7684 ROWID,\u5e76\u4ee5\u6b64\u4f5c\u4e3a\u4e3b\u952e\u3002\r\nInnoDB \u5b58\u50a8\u5f15\u64ce\u662f MySQL \u6570\u636e\u5e93\u6700\u4e3a\u5e38\u7528\u7684\u4e00\u79cd\u5f15\u64ce,Facebook\u3001Google\u3001Yahoo \u7b49 \u516c\u53f8\u7684\u6210\u529f\u5e94\u7528\u5df2\u7ecf\u8bc1\u660e\u4e86 InnoDB \u5b58\u50a8\u5f15\u64ce\u5177\u5907\u9ad8\u53ef\u7528\u6027\u3001\u9ad8\u6027\u80fd\u4ee5\u53ca\u9ad8\u53ef\u6269\u5c55\u6027\u3002\u5bf9\u5176 \u5e95\u5c42\u5b9e\u73b0\u7684\u638c\u63e1\u548c\u7406\u89e3\u4e5f\u9700\u8981\u65f6\u95f4\u548c\u6280\u672f\u7684\u79ef\u7d2f\u3002\u5982\u679c\u60f3\u6df1\u5165\u4e86\u89e3 InnoDB \u5b58\u50a8\u5f15\u64ce\u7684\u5de5\u4f5c \u539f\u7406\u3001\u5b9e\u73b0\u548c\u5e94\u7528,\u53ef\u4ee5\u53c2\u8003\u300aMySQL \u6280\u672f\u5185\u5e55:InnoDB \u5b58\u50a8\u5f15\u64ce\u300b\u4e00\u4e66\u3002\r\n\r\n02\uff09MyISAM\r\n\u53ea\u662f\u8bfb\u53d6\u548c\u63d2\u5165\uff0c\u4e0d\u505a\u4fee\u6539\u548c\u5220\u9664\u4f7f\u7528\u8fd9\u4e2a\uff0cMyISAM\u4e0d\u652f\u6301\u4e8b\u52a1\u3001\u8868\u9501\u8bbe\u8ba1\u3001\u652f\u6301\u5168\u6587\u7d22\u5f15,\u4e3b\u8981\u9762\u5411\u4e00\u4e9b OLAP \u6570 \u636e\u5e93\u5e94\u7528,\u5728 MySQL 5.5.8 \u7248\u672c\u4e4b\u524d\u662f\u9ed8\u8ba4\u7684\u5b58\u50a8\u5f15\u64ce(\u9664 Windows \u7248\u672c\u5916)\u3002\u6570\u636e\u5e93\u7cfb\u7edf \u4e0e\u6587\u4ef6\u7cfb\u7edf\u4e00\u4e2a\u5f88\u5927\u7684\u4e0d\u540c\u5728\u4e8e\u5bf9\u4e8b\u52a1\u7684\u652f\u6301,MyISAM \u5b58\u50a8\u5f15\u64ce\u662f\u4e0d\u652f\u6301\u4e8b\u52a1\u7684\u3002\u7a76\u5176\u6839 \u672c,\u8fd9\u4e5f\u5e76\u4e0d\u96be\u7406\u89e3\u3002\u7528\u6237\u5728\u6240\u6709\u7684\u5e94\u7528\u4e2d\u662f\u5426\u90fd\u9700\u8981\u4e8b\u52a1\u5462?\u5728\u6570\u636e\u4ed3\u5e93\u4e2d,\u5982\u679c\u6ca1\u6709 ETL \u8fd9\u4e9b\u64cd\u4f5c,\u53ea\u662f\u7b80\u5355\u5730\u901a\u8fc7\u62a5\u8868\u67e5\u8be2\u8fd8\u9700\u8981\u4e8b\u52a1\u7684\u652f\u6301\u5417?\u6b64\u5916,MyISAM \u5b58\u50a8\u5f15\u64ce\u7684 \u53e6\u4e00\u4e2a\u4e0e\u4f17\u4e0d\u540c\u7684\u5730\u65b9\u662f,\u5b83\u7684\u7f13\u51b2\u6c60\u53ea\u7f13\u5b58(cache)\u7d22\u5f15\u6587\u4ef6,\u800c\u4e0d\u7f13\u5b58\u6570\u636e\u6587\u4ef6,\u8fd9\u4e0e \u5927\u591a\u6570\u7684\u6570\u636e\u5e93\u90fd\u4e0d\u76f8\u540c\u3002\r\n\r\n03\uff09MEMORY       \u652f\u6301hash\u7d22\u5f15\uff0c\u4f7f\u7528redis\u66ff\u6362\r\n\u6b63\u5982\u5176\u540d,Memory \u5b58\u50a8\u5f15\u64ce\u4e2d\u7684\u6570\u636e\u90fd\u5b58\u653e\u5728\u5185\u5b58\u4e2d,\u6570\u636e\u5e93\u91cd \u542f\u6216\u53d1\u751f\u5d29\u6e83,\u8868\u4e2d\u7684\u6570\u636e\u90fd\u5c06\u6d88\u5931\u3002\u5b83\u975e\u5e38\u9002\u5408\u4e8e\u5b58\u50a8 OLTP \u6570\u636e\u5e93\u5e94\u7528\u4e2d\u4e34\u65f6\u6570\u636e\u7684\u4e34\u65f6\u8868,\u4e5f\u53ef\u4ee5\u4f5c\u4e3a OLAP \u6570\u636e\u5e93\u5e94\u7528\u4e2d\u6570\u636e\u4ed3\u5e93\u7684\u7ef4\u5ea6\u8868\uff0c\u53ef\u4ee5\u63d0\u4f9b\u6781\u5feb\u7684\u8bbf\u95ee\u3002Memory\u7684\u7f3a\u9677\u662f\u5bf9\u8868\u7684\u5927\u5c0f\u6709\u9650\u5236\uff0c\u867d\u7136\u6570\u636e\u5e93\u56e0\u4e3a\u5f02\u5e38\u7ec8\u6b62\u7684\u8bdd\u6570\u636e\u53ef\u4ee5\u6b63\u5e38\u6062\u590d\uff0c\u4f46\u662f\u4e00\u65e6\u6570\u636e\u5e93\u5173\u95ed\uff0c\u5b58\u50a8\u5728\u5185\u5b58\u4e2d\u7684\u6570\u636e\u90fd\u4f1a\u4e22\u5931\u3002\r\nMemory \u5b58\u50a8\u5f15\u64ce\u9ed8\u8ba4\u4f7f\u7528\u54c8\u5e0c \u7d22\u5f15,\u800c\u4e0d\u662f\u901a\u5e38\u719f\u6089\u7684 B+ \u6811\u7d22\u5f15\u3002\r\n\r\n04\uff09BLACKHOLE\r\n\u9ed1\u6d1e\u5b58\u50a8\u5f15\u64ce\uff0c\u53ef\u4ee5\u5e94\u7528\u4e8e\u4e3b\u5907\u590d\u5236\u4e2d\u7684\u5206\u53d1\u4e3b\u5e93\u3002\r\n\r\n05\uff09NDB \u5b58\u50a8\u5f15\u64ce\r\n2003 \u5e74,MySQL AB \u516c\u53f8\u4ece Sony Ericsson \u516c\u53f8\u6536\u8d2d\u4e86 NDB \u5b58\u50a8\u5f15\u64ce\u3002 NDB \u5b58\u50a8\u5f15\u64ce\u662f\u4e00\u4e2a\u96c6\u7fa4\u5b58\u50a8\u5f15\u64ce,\u7c7b\u4f3c\u4e8e Oracle \u7684 RAC \u96c6\u7fa4,\u4e0d\u8fc7\u4e0e Oracle RAC \u7684 share everything \u7ed3\u6784\u4e0d\u540c\u7684\u662f,\u5176\u7ed3\u6784\u662f share nothing \u7684\u96c6\u7fa4\u67b6\u6784,\u56e0\u6b64\u80fd\u63d0\u4f9b\u66f4\u9ad8\u7ea7\u522b\u7684 \u9ad8\u53ef\u7528\u6027\u3002NDB \u5b58\u50a8\u5f15\u64ce\u7684\u7279\u70b9\u662f\u6570\u636e\u5168\u90e8\u653e\u5728\u5185\u5b58\u4e2d(\u4ece 5.1 \u7248\u672c\u5f00\u59cb,\u53ef\u4ee5\u5c06\u975e\u7d22\u5f15\u6570 \u636e\u653e\u5728\u78c1\u76d8\u4e0a),\u56e0\u6b64\u4e3b\u952e\u67e5\u627e(primary key lookups)\u7684\u901f\u5ea6\u6781\u5feb,\u5e76\u4e14\u80fd\u591f\u5728\u7ebf\u6dfb\u52a0 NDB \u6570\u636e\u5b58\u50a8\u8282\u70b9(data node)\u4ee5\u4fbf\u7ebf\u6027\u5730\u63d0\u9ad8\u6570\u636e\u5e93\u6027\u80fd\u3002\u7531\u6b64\u53ef\u89c1,NDB \u5b58\u50a8\u5f15\u64ce\u662f\u9ad8\u53ef\u7528\u3001 \u9ad8\u6027\u80fd\u3001\u9ad8\u53ef\u6269\u5c55\u6027\u7684\u6570\u636e\u5e93\u96c6\u7fa4\u7cfb\u7edf,\u5176\u9762\u5411\u7684\u4e5f\u662f OLTP \u7684\u6570\u636e\u5e93\u5e94\u7528\u7c7b\u578b\u3002\r\n\r\n06\uff09Infobright \u5b58\u50a8\u5f15\u64ce\r\n\u7b2c\u4e09\u65b9\u7684\u5b58\u50a8\u5f15\u64ce\u3002\u5176\u7279\u70b9\u662f\u5b58\u50a8\u662f\u6309\u7167\u5217\u800c\u975e\u884c\u7684,\u56e0\u6b64\u975e\u5e38 \u9002\u5408 OLAP \u7684\u6570\u636e\u5e93\u5e94\u7528\u3002\u5176\u5b98\u65b9\u7f51\u7ad9\u662f http:\/\/www.infobright.org\/,\u4e0a\u9762\u6709\u4e0d\u5c11\u6210\u529f\u7684\u6570\u636e \u4ed3\u5e93\u6848\u4f8b\u53ef\u4f9b\u5206\u6790\u3002\r\n\r\n07\uff09NTSE \u5b58\u50a8\u5f15\u64ce\r\n\u7f51\u6613\u516c\u53f8\u5f00\u53d1\u7684\u9762\u5411\u5176\u5185\u90e8\u4f7f\u7528\u7684\u5b58\u50a8\u5f15\u64ce\u3002\u76ee\u524d\u7684\u7248\u672c\u4e0d\u652f\u6301\u4e8b\u52a1, \u4f46\u63d0\u4f9b\u538b\u7f29\u3001\u884c\u7ea7\u7f13\u5b58\u7b49\u7279\u6027,\u4e0d\u4e45\u7684\u5c06\u6765\u4f1a\u5b9e\u73b0\u9762\u5411\u5185\u5b58\u7684\u4e8b\u52a1\u652f\u6301\u3002\r\n\r\n08\uff09ARCHIVE\r\n09\uff09FEDERATED\r\n10\uff09EXAMPLE\r\n11\uff09MERGE\r\n12\uff09NDBCLUSTER\r\n13\uff09CSV\r\n\r\n#\u8fd8\u53ef\u4ee5\u4f7f\u7528\u7b2c\u4e09\u65b9\u5b58\u50a8\u5f15\u64ce:\r\n01\uff09MySQL\u5f53\u4e2d\u63d2\u4ef6\u5f0f\u7684\u5b58\u50a8\u5f15\u64ce\u7c7b\u578b\r\n02\uff09MySQL\u7684\u4e24\u4e2a\u5206\u652f\r\n03\uff09perconaDB\r\n04\uff09mariaDB<\/code><\/pre>\n<p>\u67e5\u770b\u6b63\u5728\u4f7f\u7528\u7684\u5b58\u50a8\u5f15\u64ce<\/p>\n<pre><code>show variables like 'storage_engine%';\r\n\u6216\u8005\r\nSELECT @@default_storage_engine;<\/code><\/pre>\n<p>\u67e5\u770binnodb\u7684\u8868\u6709\u54ea\u4e9b\uff0c\u901a\u8fc7\u67e5\u8868information_schema.tables\u6765\u83b7\u53d6<\/p>\n<pre><code># table_schema\u5b57\u6bb5\u7684\u503c\u5373\u8868\u6240\u5728\u7684\u5e93\r\nselect table_schema,table_name,engine from information_schema.tables where engine='innodb';<\/code><\/pre>\n<p>\u67e5\u770bmyisam\u7684\u8868\u6709\u54ea\u4e9b\uff0c\u901a\u8fc7\u67e5\u8868information_schema.tables\u6765\u83b7\u53d6<\/p>\n<pre><code>select table_schema,table_name,engine from information_schema.tables where engine='myisam';<\/code><\/pre>\n<p>\u67e5\u770b\u8868\u7684\u5b58\u50a8\u5f15\u64ce<\/p>\n<pre><code>SHOW CREATE TABLE db1.t1\\G\r\n\u6216\u8005\r\nSELECT TABLE_NAME, ENGINE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1' AND TABLE_SCHEMA = 'db1'\\G<\/code><\/pre>\n<h2>\u4e09 \u4fee\u6539\u5b58\u50a8\u5f15\u64ce<\/h2>\n<h3>3.1 \u914d\u7f6e\u6587\u4ef6\u4fee\u6539\u5b58\u50a8\u5f15\u64ce<\/h3>\n<pre><code class=\"language-bash\">vim \/etc\/my.cnf\r\n[mysqld]\r\ndefault-storage-engine=innodb\r\ninnodb_file_per_table=1<\/code><\/pre>\n<h3>3.2 \u4e34\u65f6\u4fee\u6539\u5b58\u50a8\u5f15\u64ce<\/h3>\n<pre><code class=\"language-bash\">#\u5728MySQL\u547d\u4ee4\u884c\u4e2d\u4e34\u65f6\u8bbe\u7f6e\r\nSET @@storage_engine=myisam\r\n\r\n#\u67e5\u770b\r\nSELECT @@default_storage_engine;<\/code><\/pre>\n<h3>3.3 \u5efa\u8868\u65f6\u4fee\u6539\u5b58\u50a8\u5f15\u64ce<\/h3>\n<pre><code class=\"language-bash\">CREATE TABLE egon(id INT) ENGINE=myisam;<\/code><\/pre>\n<h2>\u56db \u5b58\u50a8\u5f15\u64ce\u5b9e\u9a8c<\/h2>\n<p>\u521b\u5efa\u56db\u4e2a\u8868\uff0c\u5206\u522b\u4f7f\u7528innodb\uff0cmyisam\uff0cmemory\uff0cblackhole\u5b58\u50a8\u5f15\u64ce\uff0c\u8fdb\u884c\u63d2\u5165\u6570\u636e\u6d4b\u8bd5<\/p>\n<pre><code>MariaDB [db1]&gt; create table t1(id int)engine=innodb;\r\nMariaDB [db1]&gt; create table t2(id int)engine=myisam;\r\nMariaDB [db1]&gt; create table t3(id int)engine=memory;\r\nMariaDB [db1]&gt; create table t4(id int)engine=blackhole;\r\nMariaDB [db1]&gt; quit\r\n[root@egon db1]# ls \/var\/lib\/mysql\/db1\/ #\u53d1\u73b0\u540e\u4e24\u79cd\u5b58\u50a8\u5f15\u64ce\u53ea\u6709\u8868\u7ed3\u6784\uff0c\u65e0\u6570\u636e\r\ndb.opt  t1.frm  t1.ibd  t2.MYD  t2.MYI  t2.frm  t3.frm  t4.frm\r\n\r\n#memory\uff0c\u5728\u91cd\u542fmysql\u6216\u8005\u91cd\u542f\u673a\u5668\u540e\uff0c\u8868\u5185\u6570\u636e\u6e05\u7a7a\r\n#blackhole\uff0c\u5f80\u8868\u5185\u63d2\u5165\u4efb\u4f55\u6570\u636e\uff0c\u90fd\u76f8\u5f53\u4e8e\u4e22\u5165\u9ed1\u6d1e\uff0c\u8868\u5185\u6c38\u8fdc\u4e0d\u5b58\u8bb0\u5f55<\/code><\/pre>\n<h2>\u4e94 \u4f01\u4e1a\u771f\u5b9e\u6848\u4f8b<\/h2>\n<h3>1.\u9879\u76ee\u80cc\u666f\uff1a<\/h3>\n<pre><code class=\"language-bash\">\u516c\u53f8\u539f\u6709\u7684\u67b6\u6784\uff1a\u4e00\u4e2a\u5c55\u793a\u578b\u7684\u7f51\u7ad9\uff0cLAMT\uff0cMySQL5.1.77\u7248\u672c\uff08MYISAM\uff09\uff0c50M\u6570\u636e\u91cf\u3002<\/code><\/pre>\n<h3>2.\u5c0f\u95ee\u9898\u4e0d\u65ad\uff1a<\/h3>\n<pre><code class=\"language-bash\">1\u3001\u8868\u7ea7\u9501\uff1a\u5bf9\u8868\u4e2d\u4efb\u610f\u4e00\u884c\u6570\u636e\u4fee\u6539\u7c7b\u64cd\u4f5c\u65f6\uff0c\u6574\u4e2a\u8868\u90fd\u4f1a\u9501\u5b9a\uff0c\u5bf9\u5176\u4ed6\u884c\u7684\u64cd\u4f5c\u90fd\u4e0d\u80fd\u540c\u65f6\u8fdb\u884c\u3002\r\n2\u3001\u4e0d\u652f\u6301\u6545\u969c\u81ea\u52a8\u6062\u590d\uff08CSR\uff09\uff1a\u5f53\u65ad\u7535\u65f6\u6709\u53ef\u80fd\u4f1a\u51fa\u73b0\u6570\u636e\u635f\u574f\u6216\u4e22\u5931\u7684\u95ee\u9898\u3002<\/code><\/pre>\n<h3>3.\u5982\u4f55\u89e3\u51b3\uff1a<\/h3>\n<pre><code class=\"language-bash\">1\u3001\u63d0\u5efa\u8bae\u5c06\u73b0\u6709\u7684MYISAM\u5f15\u64ce\u66ff\u6362\u4e3aInnodb\uff0c\u5c06\u7248\u672c\u66ff\u6362\u4e3a5.6.38\r\n    1\uff09\u5982\u679c\u4f7f\u7528MYISAM\u4f1a\u4ea7\u751f\u201d\u5c0f\u95ee\u9898\u201d\uff0c\u6027\u80fd\u5b89\u5168\u4e0d\u80fd\u5f97\u5230\u4fdd\u8bc1\uff0c\u4f7f\u7528innodb\u53ef\u4ee5\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002\r\n    2\uff095.1.77\u7248\u672c\u5bf9\u4e8einnodb\u5f15\u64ce\u652f\u6301\u4e0d\u591f\u5b8c\u5584\uff0c5.6.38\u7248\u672c\u5bf9innodb\u652f\u6301\u975e\u5e38\u5b8c\u5584\u4e86\u3002\r\n2\u3001\u63d0\u51fa\u5347\u7ea7\u7684\u65b9\u6848\r\n\u5347\u7ea7\u7684\u65b9\u6cd5\r\n\u5347\u7ea7\u7684\u65f6\u95f4\r\n\u5347\u7ea7\u7ec8\u4f1a\u51fa\u73b0\u7684\u95ee\u9898\r\n\u5347\u7ea7\u540e\u51fa\u73b0\u7684\u95ee\u9898<\/code><\/pre>\n<h4>1\uff09\u51c6\u5907\u4e00\u53f0\u65b0\u673a\u5668\uff0c\u5b89\u88c5mysql-5.6\u7248\u672c<\/h4>\n<pre><code class=\"language-bash\">\u6e90\u7801\u5305\u5b89\u88c5\uff0c\u4e8c\u8fdb\u5236\u5b89\u88c5\r\n\r\n# \u914d\u7f6eyum\u6e90\r\n[mysql56-community]\r\nname=MySQL 5.6 Community Server\r\nbaseurl=http:\/\/repo.mysql.com\/yum\/mysql-5.6-community\/el\/7\/$basearch\/\r\nenabled=1\r\ngpgcheck=0\r\n\r\n# \u83b7\u53d6mysql5.7\u521d\u59cb\u5bc6\u7801\r\ngrep \"temporary password\" \/var\/log\/mysqld.log\r\n\r\n# \u8bbe\u7f6e\u5bc6\u7801\uff0c\u5bc6\u7801\u5df2\u7ecf\u4e0d\u80fd\u518d\u7528\u5f31\u5bc6\u7801\u4e86\uff0c\u5f31\u5bc6\u7801\u4f1a\u62a5\u9519\r\nset password=password(\"Egon@123\");<\/code><\/pre>\n<h4>2\uff09\u5728\u65e7\u673a\u5668\u4e0a\u5907\u4efd\u7cfb\u7edf\u5e93\u4ee5\u5916\u7684\u751f\u4ea7\u5e93\u6570\u636e<\/h4>\n<pre><code class=\"language-bash\"># \u2013triggers (\u9ed8\u8ba4\u5bfc\u51fa\u89e6\u53d1\u5668\uff0c\u4f7f\u7528\u2013skip-triggers\u5c4f\u853d\u5bfc\u51fa)\r\n# -R:\u2013routines,\u5bfc\u51fa\u5b58\u50a8\u8fc7\u7a0b\u4ee5\u53ca\u81ea\u5b9a\u4e49\u51fd\u6570\r\n\r\nmysqldump -uroot -p123 -B db1 --triggers -R  &gt; \/tmp\/db1.sql<\/code><\/pre>\n<h4>3\uff09\u5bf9\u5907\u4efd\u6570\u636e\u8fdb\u884c\u5904\u7406\uff08\u5c06engine\u5b57\u6bb5\u66ff\u6362\uff09<\/h4>\n<pre><code class=\"language-bash\">[root@db01 ~]# sed -i 's#ENGINE=MYISAM#ENGINE=INNODB#gi' \/tmp\/db1.sql<\/code><\/pre>\n<h4>4\uff09\u5c06\u5907\u4efd\u7684\u6570\u636e\u4f20\u5230\u65b0\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\u4e0a<\/h4>\n<pre><code>scp  rsync \u786c\u4ef6\u8bbe\u5907  NFS<\/code><\/pre>\n<h4>5\uff09\u5c06\u4fee\u6539\u540e\u7684\u5907\u4efd\u6062\u590d\u5230\u65b0\u5e93<\/h4>\n<pre><code>mysql -uroot -p123 &lt; \/tmp\/db1.sql<\/code><\/pre>\n<h4>6\uff09\u5e94\u7528\u6d4b\u8bd5\u73af\u5883\u8fde\u63a5\u65b0\u5e93\uff0c\u6d4b\u8bd5\u6240\u6709\u529f\u80fd<\/h4>\n<h4>7\uff09\u505c\u5e94\u7528\uff0c\u5c06\u5907\u4efd\u4e4b\u540e\u7684\u751f\u4ea7\u5e93\u53d1\u751f\u7684\u65b0\u53d8\u5316\uff0c\u8865\u507f\u5230\u65b0\u5e93<\/h4>\n<h4>8\uff09\u5e94\u7528\u5272\u63a5\u5230\u65b0\u6570\u636e\u5e93<\/h4>\n<h2>\u516d lnnoDB\u903b\u8f91\u67b6\u6784<\/h2>\n<p>\u5982\u4e0b\u56fe\u6240\u793a\uff0cInnoDB\u7684\u903b\u8f91\u67b6\u6784\u4e3b\u8981\u5206\u4e3a\u4e09\u4e2a\u5927\u7684\u7ec4\u6210\u90e8\u5206\uff1a<br \/>\n1\u3001\u5728\u5185\u5b58\u4e2d\u7684\u67b6\u6784\uff08In-Memory Structures\uff09\uff1b<\/p>\n<p>2\u3001\u64cd\u4f5c\u7cfb\u7edf\u7f13\u5b58\uff08Operating System Cache\uff09\u3002<\/p>\n<p>3\u3001\u5728\u786c\u76d8\u4e0a\u7684\u67b6\u6784\uff08On-Disk Structures\uff09\uff1b<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/15.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/15.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/p>\n<h3>6.1 \u5185\u5b58\u4e0a\u7684\u67b6\u6784<\/h3>\n<p>InnoDB\u7684\u5185\u5b58\u67b6\u6784\u5206\u4e3a4\u4e2a\u90e8\u5206\uff1a<\/p>\n<ul>\n<li>1\u3001\u7f13\u51b2\u6c60\uff08Buffer Pool\uff09\uff1b\n<pre><code>\u7f13\u51b2\u6c60\u662f\u4e00\u5757\u7528\u4e8e\u7f13\u5b58\u88ab\u8bbf\u95ee\u8fc7\u7684\u8868\u548c\u7d22\u5f15\u6570\u636e\u7684\u5185\u5b58\u533a\u57df\uff0c\u7f13\u51b2\u6c60\u5141\u8bb8\u5728\u5185\u5b58\u4e2d\u5904\u7406\u4e00\u4e9b\u88ab\u7528\u6237\u9891\u7e41\u8bbf\u95ee\u7684\u6570\u636e\uff0c\u5728\u67d0\u4e00\u4e9b\u4e13\u7528\u7684\u670d\u52a1\u5668\u4e0a\uff0c\u751a\u81f3\u6709\u53ef\u80fd\u4f7f\u752880%\u7684\u7269\u7406\u5185\u5b58\u4f5c\u4e3a\u7f13\u51b2\u6c60\u3002\r\n\r\n\u7f13\u51b2\u6c60\u7684\u5b58\u5728\u4e3b\u8981\u662f\u4e3a\u4e86\u901a\u8fc7\u964d\u4f4e\u78c1\u76d8IO\u7684\u6b21\u6570\u6765\u63d0\u5347\u6570\u636e\u7684\u8bbf\u95ee\u6027\u80fd\u3002<\/code><\/pre>\n<\/li>\n<li>2\u3001\u5199\u7f13\u51b2\uff08Change Buffer\uff09\uff1b\n<pre><code>\u5199\u7f13\u51b2\u662f\u4e3a\u4e86\u7f13\u5b58\u7f13\u51b2\u6c60\uff08Buffer Pool\uff09\u4e2d\u4e0d\u5b58\u5728\u7684\u4e8c\u7ea7\u7d22\u5f15(Secondary Index)\u9875\u7684\u53d8\u66f4\u64cd\u4f5c\u7684\u4e00\u79cd\u7279\u6b8a\u7684\u5185\u5b58\u6570\u636e\u7ed3\u6784\u3002\r\n\r\n\u8fd9\u4e9b\u53d8\u66f4\u901a\u5e38\u662f\u4e00\u4e9bInsert\u3001Update\u3001Delete\u7b49DML\u64cd\u4f5c\u5f15\u53d1\u7684\uff0c\u5982\u679c\u6709\u4e00\u4e9b\u5176\u5b83\u7684\u8bfb\u64cd\u4f5c\u5c06\u8fd9\u4e9b\u88ab\u53d8\u66f4\u7684\u4e8c\u7ea7\u7d22\u5f15\u9875\u52a0\u8fdb\u4e86\u7f13\u51b2\u6c60\uff08Buffer Pool)\uff0c\u5219\u8fd9\u4e9b\u53d8\u66f4\u4f1a\u88ab\u9a6c\u4e0a\u5408\u5e76\u81f3\u7f13\u51b2\u6c60\u4e2d\u4ee5\u4fdd\u8bc1\u7528\u6237\u53ef\u4ee5\u8bfb\u53d6\u5230\u4e00\u81f4\u7684\u6570\u636e\u3002<\/code><\/pre>\n<\/li>\n<li>3\u3001\u65e5\u5fd7\u7f13\u51b2\uff08Log Buffer\uff09\uff1b\n<pre><code>InnoDB\u5c06\u6570\u636e\u7684\u6bcf\u6b21\u5199\u4f18\u5316\u4e3a\u4e86\u6279\u91cf\u5199\uff0c\u8fd9\u4fbf\u4ee5\u964d\u4f4e\u78c1\u76d8IO\u7684\u6b21\u6570\uff0c\u4e3a\u4e86\u9632\u6b62\u4e00\u4e9b\u6570\u636e\u5c1a\u672a\u5199\u5165\u786c\u76d8\u5c31\u65ad\u7535\u4e86\uff0c\u9700\u8981\u8bb0\u5f55\u65e5\u5fd7\u3002\r\n\u800c\u65e5\u5fd7\u7f13\u51b2\u5c31\u662f\u7528\u6765\u7f13\u5b58\u4e00\u4e9b\u5373\u5c06\u8981\u88ab\u5199\u5165\u78c1\u76d8\u65e5\u5fd7\u6587\u4ef6\uff08log files)\u4e2d\u7684\u6570\u636e\u3002<\/code><\/pre>\n<\/li>\n<li>4\u3001\u81ea\u9002\u5e94\u54c8\u5e0c\u7d22\u5f15\uff08Adaptive Hash Index)\uff1b\n<pre><code>\u5728InnoDB\u4e2d\uff0c\u7528\u6237\u662f\u4e0d\u53ef\u4ee5\u76f4\u63a5\u53bb\u521b\u5efa\u54c8\u5e0c\u7d22\u5f15\u7684\uff0c\u8fd9\u4e2a\u81ea\u9002\u5e94\u54c8\u5e0c\u7d22\u5f15\u662fInnoDB\u4e3a\u4e86\u52a0\u901f\u67e5\u8be2\u6027\u80fd\uff0c\u4f1a\u6839\u636e\u5b9e\u9645\u9700\u8981\u6765\u51b3\u5b9a\u662f\u5426\u5bf9\u4e8e\u4e00\u4e9b\u9891\u7e41\u9700\u8981\u88ab\u8bbf\u95ee\u7684\u7d22\u5f15\u9875\u6784\u5efa\u54c8\u5e0c\u7d22\u5f15\uff0c\u5b83\u4f1a\u5229\u7528key\u7684\u524d\u7f00\u6765\u6784\u5efa\u54c8\u5e0c\u7d22\u5f15\u3002\u8fd9\u6837\u505a\u53ef\u4ee5\u63d0\u9ad8\u67e5\u8be2\u6027\u80fd\uff0c\u56e0\u4e3a\u7d22\u5f15\u91c7\u7528\u7c7b\u4f3cB+\u6811\u7684\u7ed3\u6784\u8fdb\u884c\u5b58\u50a8\uff0cB+\u6811\u7684\u5355key\u67e5\u8be2\u65f6\u95f4\u590d\u6742\u5ea6\u4e3aO(log2n),\u4f46\u662f\u4f18\u5316\u4e3a\u54c8\u5e0c\u7d22\u5f15\u540e\uff0c\u5355key\u7684\u67e5\u8be2\u65f6\u95f4\u590d\u6742\u5ea6\u5c31\u4e3aO(1)\u4e86\u3002<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>6.2 \u64cd\u4f5c\u7cfb\u7edf\u7f13\u5b58<\/h3>\n<p>\u50a8\u5907\u77e5\u8bc6\uff1a<\/p>\n<pre><code class=\"language-bash\">fsync\u548cwrite\u64cd\u4f5c\u662f\u7cfb\u7edf\u8c03\u7528\u51fd\u6570\uff0c\u5728\u5f88\u591a\u6301\u4e45\u5316\u573a\u666f\u90fd\u6709\u4f7f\u7528\u5230\uff0c\u6bd4\u5982 Redis \u7684AOF\u6301\u4e45\u5316\u4e2d\u4e5f\u4f7f\u7528\u5230\u4e24\u4e2a\u51fd\u6570\u3002\r\nfsync\u64cd\u4f5c \u5c06\u6570\u636e\u63d0\u4ea4\u5230\u786c\u76d8\u4e2d\uff0c\u5f3a\u5236\u786c\u76d8\u540c\u6b65\uff0c\u5c06\u4e00\u76f4\u963b\u585e\u5230\u5199\u5165\u786c\u76d8\u5b8c\u6210\u540e\u8fd4\u56de\uff0c\u5927\u91cf\u8fdb\u884cfsync\u64cd\u4f5c\u5c31\u6709\u6027\u80fd\u74f6\u9888.\r\n\u800cwrite\u64cd\u4f5c\u5c06\u6570\u636e\u5199\u5230\u7cfb\u7edf\u7684\u9875\u9762\u7f13\u5b58\u540e\u7acb\u5373\u8fd4\u56de\uff0c\u540e\u9762\u4f9d\u9760\u7cfb\u7edf\u7684\u8c03\u5ea6\u673a\u5236\u5c06\u7f13\u5b58\u6570\u636e\u5237\u5230\u78c1\u76d8\u4e2d\u53bb,\u5176\u987a\u5e8f\u662fuser buffer\u2014\u2014&gt; page cache\u2014\u2014&gt;disk\u3002<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/20.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/20.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/p>\n<p>\u64cd\u4f5c\u7cfb\u7edf\u7f13\u5b58\uff1a<\/p>\n<pre><code class=\"language-bash\">\u64cd\u4f5c\u7cfb\u7edf\u4e3a\u4e86\u63d0\u5347\u6027\u80fd\u800c\u964d\u4f4e\u78c1\u76d8IO\u7684\u6b21\u6570\uff0c\u5728InnoDB\u7684\u7f13\u5b58\u4f53\u7cfb\u4e0e\u78c1\u76d8\u6587\u4ef6\u4e4b\u95f4\uff0c\u52a0\u4e86\u4e00\u5c42\u64cd\u4f5c\u7cfb\u7edf\u7684\u7f13\u5b58\/\u9875\u9762\u7f13\u5b58\u3002\u7528\u6237\u6001innodb\u5b58\u50a8\u5f15\u64ce\u7684\u8fdb\u7a0b\u5411\u64cd\u4f5c\u7cfb\u7edf\u53d1\u8d77write\u7cfb\u7edf\u8c03\u7528\u65f6\uff0c\u5728\u5185\u6838\u6001\u5b8c\u6210\u9875\u9762\u7f13\u5b58\u5199\u5165\u540e\u5373\u8fd4\u56de\uff0c\u5982\u679c\u60f3\u7acb\u5373\u5c06\u9875\u9762\u7f13\u5b58\u7684\u5185\u5bb9\u7acb\u5373\u5237\u5165\u78c1\u76d8\uff0cinnodb\u5b58\u50a8\u5f15\u64ce\u9700\u8981\u53d1\u8d77fsync\u7cfb\u7edf\u8c03\u7528\u624d\u53ef\u4ee5<\/code><\/pre>\n<p>O_DIRECT<\/p>\n<pre><code class=\"language-bash\">\u9009\u9879\u662f\u5728Linux\u7cfb\u7edf\u4e2d\u7684\u9009\u9879\uff0c\u4f7f\u7528\u8be5\u9009\u9879\u540e\uff0c\u5bf9\u6587\u4ef6\u8fdb\u884c\u76f4\u63a5IO\u64cd\u4f5c\uff0c\u4e0d\u7ecf\u8fc7\u6587\u4ef6\u7cfb\u7edf\u7f13\u5b58\uff0c\u76f4\u63a5\u5199\u5165\u78c1\u76d8<\/code><\/pre>\n<h3>6.3 \u5728\u786c\u76d8\u4e0a\u7684\u67b6\u6784<\/h3>\n<p>InnoDB\u5728\u786c\u76d8\u4e0a\u603b\u5171\u5206\u4e3a\u516d\u4e2a\u90e8\u5206\uff0c\u4e5f\u5c31\u662f\uff1a<\/p>\n<ul>\n<li>1\u3001\u8868\uff08Tables\uff09\uff1b\n<pre><code>1\u3001\u5982\u679c\u5df2\u7ecf\u6307\u5b9a\u4e86\u6570\u636e\u7684\u9ed8\u8ba4\u5b58\u50a8\u5f15\u64ce\uff0c\u90a3\u4e48\u521b\u5efa\u8868\u7684\u65f6\u5019\uff0c\u65e0\u9700\u6307\u5b9a\u518d\u6307\u5b9a\u5b58\u50a8\u5f15\u64ce\u3002\r\n\r\n2\u3001\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u521b\u5efaInnoDB\u8868\u7684\u65f6\u5019innodb_file_per_table\u53c2\u6570\u662f\u5f00\u542f\u7684\uff0c\u5b83\u8868\u660e\u7528\u6237\u521b\u5efa\u7684\u8868\u548c\u7d22\u5f15\uff0c\u4f1a\u88ab\u4ee5\u5355\u8868\u5355\u6587\u4ef6\u7684\u5f62\u5f0f\u653e\u5165\u5230file-per-table\u8868\u7a7a\u95f4\u4e2d\u3002\r\n\r\n3\u3001\u5982\u679c\u7981\u7528\u4e86\u8be5\u53c2\u6570innodb_file_per_table\uff0c\u90a3\u4e48\u8868\u53ca\u7d22\u5f15\u4f1a\u88ab\u653e\u5165\u7cfb\u7edf\u8868\u7a7a\u95f4(System Tablespaces)\u4e2d\u3002\r\n\r\n4\u3001\u5982\u679c\u521b\u5efa\u8868\u7684\u65f6\u5019\uff0c\u60f3\u8981\u628a\u8868\u521b\u5efa\u5728\u901a\u7528\u8868\u7a7a\u95f4\uff08General Tablespaces)\u4e2d\uff0c\u90a3\u4e48\u9700\u8981\u7528\u6237\u4f7f\u7528CREATE TABLE \u2026 TABLESPACE\u8bed\u6cd5\u6765\u521b\u5efa\u8868\u7ed3\u6784\u3002<\/code><\/pre>\n<\/li>\n<li>2\u3001\u8868\u7a7a\u95f4\uff08Tablespaces\uff09\uff1b\n<pre><code>\u5728InnoDB\u4e2d\uff0c\u8868\u7a7a\u95f4\u603b\u5171\u5206\u4e3a\uff1a\r\n1\u3001\u7cfb\u7edf\u8868\u7a7a\u95f4\uff08System Tablespaces\uff09\r\n\u7cfb\u7edf\u8868\u7a7a\u95f4\u4e3b\u8981\u7528\u4e8e\u5b58\u50a8\u53cc\u5199\u7f13\u51b2\u3001\u5199\u7f13\u5b58\u4ee5\u53ca\u7528\u6237\u521b\u5efa\u7684\u8868\u548c\u7d22\u5f15\uff08\u5f53innodb_file_per_table\u88ab\u7981\u7528\u7684\u60c5\u51b5\u4e0b\uff09\r\n\r\n2\u3001file-per-table\u8868\u7a7a\u95f4\uff08file-per-tableTablespaces\uff09\r\n\u5b58\u50a8\u7528\u6237\u521b\u5efa\u7684\u8868\u548c\u7d22\u5f15\u6570\u636e\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff08innodb_file_per_table\u53c2\u6570\u662f\u542f\u7528\u7684\uff09\r\n\r\n3\u3001\u901a\u7528\u8868\u7a7a\u95f4\uff08General Tablespaces\uff09\r\n\u901a\u7528\u8868\u7a7a\u95f4\u5141\u8bb8\u7528\u6237\u5b58\u50a8\u4e00\u4e9b\u81ea\u5df1\u60f3\u8981\u653e\u8fdb\u901a\u5e38\u8868\u7a7a\u95f4\u7684\u8868\u6216\u6570\u636e\uff0c\u9700\u8981\u7528\u6237\u521b\u5efa\u8868\u7684\u65f6\u5019\uff0c\u81ea\u5df1\u6307\u5b9a\u91c7\u7528\u901a\u7528\u8868\u7a7a\u95f4\uff0c\u4e0a\u9762\u8bb2\u8868\u7684\u65f6\u5019\u5df2\u7ecf\u4ecb\u7ecd\u8fc7\u3002\r\n\r\n4\u3001\u56de\u6eda\u8868\u7a7a\u95f4\uff08Undo Tablespaces\uff09\r\n\u56de\u6eda\u8868\u7a7a\u95f4\u662f\u4e3a\u4e86\u5b58\u50a8\u56de\u6eda\u65e5\u5fd7\uff0c\u901a\u5e38\u56de\u6eda\u65e5\u5fd7\u5728\u8868\u7a7a\u95f4\u4f1a\u4ee5\u56de\u6eda\u6bb5(Undo Segments)\u7684\u5f62\u5f0f\u5b58\u5728\u3002\r\n\r\n5\u3001\u4e34\u65f6\u8868\u7a7a\u95f4\uff08Temporary Tablespaces\uff09\r\n\u4e34\u65f6\u8868\u7a7a\u95f4\u7528\u4e8e\u5b58\u50a8\u7528\u6237\u521b\u5efa\u7684\u4e34\u65f6\u8868\uff0c\u6216\u8005\u4f18\u5316\u5668\u5185\u90e8\u81ea\u5df1\u521b\u5efa\u7684\u4e34\u65f6\u8868\u3002<\/code><\/pre>\n<\/li>\n<li>3\u3001\u7d22\u5f15\uff08Indexes\uff09\uff1b\n<pre><code>\u6309\u952e\u7684\u7c7b\u522b\u5212\u5206\uff1a\u4e3b\u952e\u7d22\u5f15\u548c\u4e8c\u7ea7\u7d22\u5f15\/\u8f85\u52a9\u7d22\u5f15\uff1b\r\n\u6309\u7d22\u5f15\u7684\u7c7b\u578b\u5206\uff1aBTree\u7d22\u5f15\u548c\u81ea\u9002\u5e94\u54c8\u5e0c\u7d22\u5f15\uff1b\r\n\u6309\u5b58\u50a8\u7ed3\u6784\u5212\u5206\uff1a\u805a\u96c6\u7d22\u5f15\u548c\u975e\u805a\u96c6\u7d22\u5f15\u3002\r\n\r\n\u7d22\u5f15\u5b58\u5728\u7684\u76ee\u7684\u4e3b\u8981\u662f\u4e3a\u4e86\u52a0\u901f\u6570\u636e\u7684\u8bfb\u53d6\u901f\u5ea6\uff0cInnoDB\u91c7\u7528BTree\uff08\u5b9e\u9645\u4e3a\u4f18\u5316\u6539\u8fdb\u540e\u7684B+\u6811\u7d22\u5f15\uff09\u3002\r\n\r\n\u4e3b\u952e\u7d22\u5f15\u4e5f\u662f\u805a\u96c6\u7d22\u5f15\uff0c\u4e8c\u7ea7\u7d22\u5f15\u90fd\u662f\u975e\u805a\u96c6\u7d22\u5f15\u3002\r\n\r\n\u81ea\u9002\u5e94\u54c8\u5e0c\u7d22\u5f15\u662fInnoDB\u4e3a\u4e86\u52a0\u901f\u67e5\u8be2\u6027\u80fd\uff0c\u5b83\u81ea\u5df1\u6309\u9700\u5728\u5185\u5b58\u4e2d\u5bf9\u52a0\u8f7d\u8fdb\u5185\u5b58\u7684BTree\u7d22\u5f15\u4f18\u5316\u4e3a\u54c8\u5e0c\u7d22\u5f15\u7684\u4e00\u79cd\u624b\u6bb5\u3002<\/code><\/pre>\n<\/li>\n<li>4\u3001\u53cc\u5199\u7f13\u51b2\uff08Doublewrite Buffer\uff09\uff1b\n<pre><code>\u53cc\u5199\u7f13\u51b2\u662f\u4e00\u4e2a\u5728\u7cfb\u7edf\u8868\u7a7a\u95f4System Tablespaces\u4e2d\u5b58\u50a8\u533a\uff0c\u5728\u8fd9\u4e2a\u5b58\u50a8\u533a\u4e2d\uff0c\u5728InnoDB\u5c06\u9875\u9762\u5199\u5165InnoDB\u6570\u636e\u6587\u4ef6\u4e2d\u7684\u9002\u5f53\u4f4d\u7f6e\u4e4b\u524d\uff0c\u4f1a\u5148\u4ece\u7f13\u51b2\u6c60\u4e2d\u5237\u65b0\u9875\u9762 \u3002\u5982\u679c\u5728\u9875\u9762\u5199\u5165\u8fc7\u7a0b\u4e2d\u53d1\u751f\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5b58\u50a8\u5b50\u7cfb\u7edf\u6216mysqld\u8fdb\u7a0b\u5d29\u6e83\uff0c\u5219InnoDB\u53ef\u4ee5\u5728\u5d29\u6e83\u6062\u590d\u671f\u95f4\u4ece\u53cc\u5199\u7f13\u51b2\u4e2d\u627e\u5230\u9875\u9762\u7684\u539f\u6765\u7684\u6570\u636e\u3002<\/code><\/pre>\n<\/li>\n<li>5\u3001Redo\u65e5\u5fd7\uff1a\u8bb0\u5f55\u7684\u662f\u5c1a\u672a\u5b8c\u6210\u7684\u64cd\u4f5c\uff0c\u65ad\u7535\u5219\u7528\u5176\u91cd\u505a<\/li>\n<\/ul>\n<pre><code>redo\u5373redo\u65e5\u5fd7\uff0c\u662f\u7528\u4e8e\u8bb0\u5f55\u6570\u636e\u5e93\u4e2d\u6570\u636e\u53d8\u5316\u7684\u65e5\u5fd7\uff0c\u53ea\u8981\u4f60\u4fee\u6539\u4e86\u6570\u636e\u5757\u90a3\u4e48\u5c31\u4f1a\u8bb0\u5f55redo\u4fe1\u606f\uff0c\u5f53\u7136nologging\u9664\u5916\u4e86\u3002\r\n\r\n\u4f60\u7684\u6bcf\u6b21\u64cd\u4f5c\u90fd\u4f1a\u5148\u8bb0\u5f55\u5230redo\u65e5\u5fd7\u4e2d\uff0c\u5f53\u51fa\u73b0\u5b9e\u4f8b\u6545\u969c\uff08\u50cf\u65ad\u7535\uff09\uff0c\u5bfc\u81f4\u6570\u636e\u672a\u80fd\u66f4\u65b0\u5230\u6570\u636e\u6587\u4ef6\uff0c\u5219\u6570\u636e\u5e93\u91cd\u542f\u65f6\u987bredo\uff0c\u91cd\u65b0\u628a\u6570\u636e\u66f4\u65b0\u5230\u6570\u636e\u6587\u4ef6<\/code><\/pre>\n<ul>\n<li>6\u3001Undo\u6bb5\uff1a\u8bb0\u5f55\u7684\u6539\u52a8\u4e4b\u524d\u7684\u65e7\u6570\u636e\uff0c\u4e00\u65e6\u6539\u9519\uff0c\u53ef\u4ee5\u56de\u6eda<\/li>\n<\/ul>\n<pre><code>undo\u5373undo\u6bb5\uff0c\u662f\u6307\u6570\u636e\u5e93\u4e3a\u4e86\u4fdd\u6301\u8bfb\u4e00\u81f4\u6027\uff0c\u5b58\u50a8\u5386\u53f2\u6570\u636e\u5728\u4e00\u4e2a\u4f4d\u7f6e\u3002\r\n\r\n\u7528\u4e8e\u8bb0\u5f55\u66f4\u6539\u524d\u7684\u4e00\u4efdcopy\uff0c\u7528\u4e8e\u56de\u6eda\u3001\u64a4\u9500\u8fd8\u539f<\/code><\/pre>\n<p>\u200b \u4e0b\u9762\u662fredo log + undo log\u7684\u7b80\u5316\u8fc7\u7a0b\uff0c\u4fbf\u4e8e\u7406\u89e3\u4e24\u79cd\u65e5\u5fd7\u7684\u8fc7\u7a0b\uff1a<\/p>\n<pre><code class=\"language-bash\">\u5047\u8bbe\u6709A\u3001B\u4e24\u4e2a\u6570\u636e\uff0c\u503c\u5206\u522b\u4e3a1,2.\r\n1. \u4e8b\u52a1\u5f00\u59cb\r\n2. \u8bb0\u5f55A=1\u5230undo log\r\n3. \u4fee\u6539A=3\r\n4. \u8bb0\u5f55A=3\u5230 redo log\r\n5. \u8bb0\u5f55B=2\u5230 undo log\r\n6. \u4fee\u6539B=4\r\n7. \u8bb0\u5f55B=4\u5230redo log\r\n8. \u5c06redo log\u5199\u5165\u78c1\u76d8\r\n9. \u4e8b\u52a1\u63d0\u4ea4<\/code><\/pre>\n<h3>6.4 innodb\u5b58\u50a8\u5f15\u64ce\u6267\u884c\u6d41\u7a0b<\/h3>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/19-1024x545.jpg'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/19-1024x545.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/p>\n<p>\u6267\u884c\u4e00\u6761\u66f4\u65b0sql\u8bed\u53e5\uff0c\u5b58\u50a8\u5f15\u64ce\u6267\u884c\u6d41\u7a0b\u53ef\u4ee5\u5206\u4e3a\u4e09\u5927\u9636\u6bb5\uff0c8\u4e2a\u5c0f\u6b65\u9aa4<\/p>\n<p>\u4e09\u5927\u9636\u6bb5<\/p>\n<ul>\n<li>1\u3001\u6267\u884c\u9636\u6bb5\n<ul>\n<li>\u6570\u636e\u52a0\u8f7d\u5230\u5185\u5b58\uff0c\u5199undo log\uff0c\u66f4\u65b0\u5185\u5b58\u4e2d\u6570\u636e\uff0c\u5199redo log buffer<\/li>\n<\/ul>\n<\/li>\n<li>2\u3001\u4e8b\u52a1\u63d0\u4ea4\u9636\u6bb5\n<ul>\n<li>redo log\u548cbinlog\u5237\u76d8\uff0ccommit\u6807\u8bb0\u5199\u5165redo log\u4e2d<\/li>\n<\/ul>\n<\/li>\n<li>3\u3001\u6700\u540e\n<ul>\n<li>\u540e\u53f0io\u7ebf\u7a0b\u968f\u673a\u628a\u5185\u5b58\u4e2d\u810f\u6570\u636e\u5237\u5230\u78c1\u76d8\u4e0a<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>8\u4e2a\u5c0f\u6b65\u9aa4<\/p>\n<ol>\n<li>\u628a\u8be5\u884c\u6570\u636e\u4ece\u78c1\u76d8\u52a0\u8f7d\u5230buffer pool\u4e2d\uff0c\u5e76\u5bf9\u8be5\u884c\u6570\u636e\u8fdb\u884c\u52a0\u9501<\/li>\n<li>\u628a\u65e7\u6570\u636e\u5199\u5165undo log\uff0c\u4ee5\u4fbf\u4fee\u6539\u51fa\u9519\u60c5\u51b5\u4e0b\u7684\u56de\u6eda<\/li>\n<li>\u5728buffer pool\u4e2d\u7684\u6570\u636e\u66f4\u65b0\uff0c\u5f97\u5230\u810f\u6570\u636e<\/li>\n<li>\u628a\u4fee\u6539\u540e\u7684\u6570\u636e\u5199\u5165\u5230redo log buffer\u5f53\u4e2d<\/li>\n<li>\u51c6\u5907\u63d0\u4ea4\u4e8b\u52a1redo log\u5237\u5165\u78c1\u76d8<\/li>\n<li>\u628a\u4fee\u6539\u7684\u64cd\u4f5c\u8bb0\u5f55\u51c6\u5907\u5199\u5165binlog\u65e5\u5fd7<\/li>\n<li>\u628abinlog\u7684\u6587\u4ef6\u540d\u548c\u4f4d\u7f6e\u5199\u5165commit\u6807\u8bb0\uff0ccommit\u6807\u8bb0\u5199\u5165redolog\u4e2d\uff08redo log\u4e2d\u5b58\u653e\u7684\u4fee\u6539\u540e\u7684\u6570\u636e\u4e0ebinlog\u4e2d\u7684\u4fee\u6539\u64cd\u4f5c\u5bf9\u5e94\u4e0a\uff0c\u53cc\u7ba1\u9f50\u4e0b\uff09\uff0c\u4e8b\u52a1\u624d\u7b97\u63d0\u4ea4\u6210\u529f\uff1b\u5426\u5219\u4e0d\u4f1a\u6210\u529f<\/li>\n<li>IO\u7ebf\u7a0bBuffer Pool\u4e2d\u7684\u810f\u6570\u636e\u5237\u5165\u78c1\u76d8\u6587\u4ef6\uff0c\u5b8c\u6210\u6700\u7ec8\u4fee\u6539<\/li>\n<\/ol>\n<p>\u5404\u90e8\u5206\u4f5c\u7528\u7b80\u4ecb<\/p>\n<pre><code class=\"language-bash\"># 1\u3001\u7f13\u51b2\u6c60 buffer pool\r\n1\uff09\u4f1a\u628a\u4e00\u4e9b\u78c1\u76d8\u4e0a\u7684\u6570\u636e\u52a0\u8f7d\u5230\u8be5\u5185\u5b58\u5f53\u4e2d\r\n2\uff09\u67e5\u8be2\u6570\u636e\u7684\u65f6\u5019\u4e0d\u4ece\u78c1\u76d8\u67e5\uff0c\u4ece\u8be5\u5185\u5b58\u91cc\u67e5\r\n\r\n# 2\u3001undo log\r\n1\uff09\u903b\u8f91\u65e5\u5fd7\uff0c\u53ef\u4ee5\u8ba4\u4e3a\u5f53delete\u4e00\u6761\u8bb0\u5f55\u65f6\uff0cundo log\u4e2d\u4f1a\u8bb0\u5f55\u4e00\u6761\u5bf9\u5e94\u7684insert\u8bb0\u5f55\uff0c\u53cd\u4e4b\u4ea6\u7136\uff0c\u5f53update\u4e00\u6761\u8bb0\u5f55\u65f6\uff0c\u5b83\u8bb0\u5f55\u4e00\u6761\u5bf9\u5e94\u76f8\u53cd\u7684update\u8bb0\u5f55\r\n2\uff09\u7528\u4e8e\u6570\u636e\u56de\u6eda\r\n3\uff09\u5b9e\u73b0mvcc\r\n\r\n# 3\u3001redo log\r\n1\uff09\u5b58\u50a8\u5f15\u64ce\u5c42\u65e5\u5fd7\r\n2\uff09\u7269\u7406\u65e5\u5fd7\uff08\u7c7b\u4f3c\u4e8e\u201c\u5bf9\u54ea\u4e2a\u6570\u636e\u9875\u4e2d\u7684\u4ec0\u4e48\u8bb0\u5f55\uff0c\u505a\u4e86\u4e2a\u4ec0\u4e48\u4fee\u6539\u201d\uff09\r\n3\uff09\u8bb0\u5f55\u5bf9\u6570\u636e\u505a\u4e86\u4ec0\u4e48\u4fee\u6539\uff0c\u9632\u6b62\u5df2\u63d0\u4ea4\u4e8b\u52a1\u7684\u6570\u636e\u4e22\u5931\u3002\u56e0\u4e3a\u6570\u636e\u4e0d\u662f\u5b9e\u65f6\u5237\u76d8\u7684\uff0c\u6570\u636e\u662f\u5728buffer pool\u5f53\u4e2d\uff0c\u5982\u679c\u6570\u636e\u5e93\u5b95\u673a\u4e86\u5e76\u4e14buffer pool\u4e2d\u7684\u6570\u636e\u8fd8\u6ca1\u6709\u5237\u76d8\uff0c\u4fee\u6539\u8fc7\u7684\u6570\u636e\u5c31\u4e22\u5931\u4e86\uff0credo log\u89e3\u51b3\u8fd9\u4e00\u95ee\u9898\r\n4\uff09redo log buffer\u662fredo log\u7684\u7f13\u51b2\u533a\uff0c\u6570\u636e\u505a\u4e86\u4ec0\u4e48\u4fee\u6539\uff0c\u9996\u5148\u4f1a\u5199\u5165\u5230redo log buffer\u4e2d\uff0c\u518d\u5237\u76d8\u5199\u5165redo log\u4e2d\r\n\r\n# 4\u3001binlog\r\n\u5f52\u6863\u65e5\u5fd7\uff0c\u5c5e\u4e8emysql server\u5c42\uff0c\u4e0d\u5c5e\u4e8e\u5b58\u50a8\u5f15\u64ce\u5c42\r\n\u903b\u8f91\u6027\u65e5\u5fd7\uff08\u7c7b\u4f3c\u4e8e\u201c\u5bf9users\u8868\u4e2d\u7684id=10\u7684\u4e00\u884c\u6570\u636e\u505a\u4e86\u66f4\u65b0\u64cd\u4f5c\uff0c\u66f4\u65b0\u4ee5\u540e\u7684\u503c\u662f\u4ec0\u4e48\u201d\uff09<\/code><\/pre>\n<p>\u95ee\u98981\uff1a\u4e8b\u52a1\u8fd8\u6ca1\u6709\u63d0\u4ea4\uff0cmysql\u5b95\u673a\u4e86\u600e\u4e48\u529e\uff1f<\/p>\n<pre><code class=\"language-bash\">\u7b54\u6848\uff1a\r\n\u4e8b\u52a1\u6ca1\u6709\u63d0\u4ea4\uff0cmysql\u5b95\u673a\uff0cbuffer pool\u548credo log buffer\u4e2d\u7684\u6570\u636e\u90fd\u4f1a\u4e22\u5931\uff0c\u6570\u636e\u5e93\u8fd4\u56de\u5f02\u5e38\uff0c\u63d0\u793a\u4e8b\u52a1\u5931\u8d25\r\n\u78c1\u76d8\u4e0a\u7684\u6570\u636e\u6ca1\u6709\u4efb\u4f55\u53d8\u5316\uff0c\u4e0d\u5f71\u54cd<\/code><\/pre>\n<p>\u95ee\u98982\uff1a\u4e8b\u52a1\u63d0\u4ea4\u4e86\uff0cmysql\u7a81\u7136\u5b95\u673a\u4e86\u600e\u4e48\u529e\uff1f<\/p>\n<pre><code class=\"language-bash\">\u7b54\u6848\uff1a\r\n\u4e8b\u52a1\u5982\u679c\u63d0\u4ea4\u4e86\uff0c\u4f46\u662f\u63d0\u4ea4\u5931\u8d25\uff0c\u90a3\u4e48\u5bf9\u78c1\u76d8\u6570\u636e\u6ca1\u6709\u4efb\u4f55\u5f71\u54cd\r\n\u4e8b\u52a1\u5982\u679c\u63d0\u4ea4\u4e86\uff0c\u4f46\u662f\u63d0\u4ea4\u6210\u529f\u4e86\uff0c\u5982\u679cmysql\u7a81\u7136\u6302\u6389\uff0cbuffer pool\u548credo log buffer\u4e2d\u7684\u6570\u636e\u90fd\u4f1a\u4e22\u5931\uff0c\u4f46\u4e8b\u52a1\u63d0\u4ea4\u6210\u529f\u610f\u5473\u7740\u5df2\u7ecf\u5199\u5165\u4e86redo log file\uff0c\u6b64\u65f6\u5373\u4fbfbuffer\u4e2d\u7684\u6570\u636e\u4e22\u5931\uff0c\u4f9d\u7136\u53ef\u4ee5\u51ed\u501fredo log file\u6062\u590d\u6570\u636e<\/code><\/pre>\n<h3>6.5 redo log\u5237\u76d8\u7b56\u7565<\/h3>\n<ul>\n<li>\u5f53\u63d0\u4ea4\u4e8b\u52a1\u7684\u65f6\u5019\uff0credo log buffer\u91cc\u7684\u6570\u636e\u4f1a\u6839\u636e\u4e00\u5b9a\u89c4\u5219\u5237\u5230\u78c1\u76d8\u4e0a<\/li>\n<li>\u901a\u8fc7innodb_flush_log_at_trx_commit\u53c2\u6570\u6765\u914d\u7f6e\n<ul>\n<li>0 \u63d0\u4ea4\u4e8b\u52a1\u7684\u65f6\u5019\uff0c\u4e0d\u7acb\u5373\u628a redo log buffer \u91cc\u7684\u6570\u636e\u5237\u5165\u78c1\u76d8\u6587\u4ef6\u7684\uff0c\u800c\u662f\u4f9d\u9760 InnoDB \u7684\u4e3b\u7ebf\u7a0b\u6bcf\u79d2\u6267\u884c\u4e00\u6b21\u5237\u65b0\u5230\u78c1\u76d8\u3002\u6b64\u65f6\u53ef\u80fd\u4f60\u63d0\u4ea4\u4e8b\u52a1\u4e86\uff0c\u7ed3\u679c mysql \u5b95\u673a\u4e86\uff0c\u7136\u540e\u6b64\u65f6\u5185\u5b58\u91cc\u7684\u6570\u636e\u5168\u90e8\u4e22\u5931<\/li>\n<li>1 \uff08\u9ed8\u8ba4\u503c\uff0c\u5efa\u8bae\uff09\u63d0\u4ea4\u4e8b\u52a1\u7684\u65f6\u5019\uff0c\u5c31\u5fc5\u987b\u628a redo log \u4ece\u5185\u5b58\u5237\u5165\u5230\u78c1\u76d8\u6587\u4ef6\u91cc\u53bb\uff0c\u53ea\u8981\u4e8b\u52a1\u63d0\u4ea4\u6210\u529f\uff0c\u90a3\u4e48 redo log \u5c31\u5fc5\u7136\u5728\u78c1\u76d8\u91cc\u4e86<\/li>\n<li>2 \u63d0\u4ea4\u4e8b\u52a1\u7684\u65f6\u5019\uff0c\u628a redo \u65e5\u5fd7\u5199\u5165\u78c1\u76d8\u6587\u4ef6\u5bf9\u5e94\u7684 os cache \u7f13\u5b58\u91cc\u53bb\uff0c\u800c\u4e0d\u662f\u76f4\u63a5\u8fdb\u5165\u78c1\u76d8\u6587\u4ef6\uff0c\u53ef\u80fd 1 \u79d2\u540e\u624d\u4f1a\u628a os cache \u91cc\u7684\u6570\u636e\u5199\u5165\u5230\u78c1\u76d8\u6587\u4ef6\u91cc\u53bb\u3002\u6b64\u65f6mysql\u5b95\u673a\uff0c\u6570\u636e\u4e0d\u4f1a\u4e22\u5931\uff1b\u5982\u679c\u673a\u5668\u5b95\u673a\uff0c\u6570\u636e\u4f1a\u4e22\u5931<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>6.6 binlog\u5237\u76d8\u7b56\u7565<\/h3>\n<ul>\n<li>\u5f53\u63d0\u4ea4\u4e8b\u52a1\u7684\u65f6\u5019\uff0cbinlog\u4e5f\u4f1a\u5237\u5230\u78c1\u76d8\u4e0a\u53bb<\/li>\n<li>\u901a\u8fc7sync_binlog\u53c2\u6570\u6765\u914d\u7f6e\n<ul>\n<li>0 \u9ed8\u8ba4\u503c\u3002\u4e8b\u52a1\u63d0\u4ea4\u540e\uff0c\u5c06\u4e8c\u8fdb\u5236\u65e5\u5fd7\u5199\u5165\u4e86\u64cd\u4f5c\u7cfb\u7edf\u7f13\u51b2\uff0c\u82e5\u64cd\u4f5c\u7cfb\u7edf\u5b95\u673a\u5219\u4f1a\u4e22\u5931\u90e8\u5206\u4e8c\u8fdb\u5236\u65e5\u5fd7<\/li>\n<li>1 \uff08\u63a8\u8350\uff09\u4e8b\u52a1\u63d0\u4ea4\u540e\uff0c\u5c06\u4e8c\u8fdb\u5236\u6587\u4ef6\u5199\u5165\u78c1\u76d8\u5e76\u7acb\u5373\u6267\u884c\u5237\u65b0\u64cd\u4f5c\uff0c\u76f8\u5f53\u4e8e\u662f\u540c\u6b65\u5199\u5165\u78c1\u76d8\uff0c\u4e0d\u7ecf\u8fc7\u64cd\u4f5c\u7cfb\u7edf\u7684\u7f13\u5b58<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>6.7 commit\u6807\u8bb0\u7684\u610f\u4e49<\/h3>\n<p>commit\u5199\u5165redo log\uff0c\u624d\u80fd\u5224\u5b9a\u4e8b\u52a1\u6210\u529f\uff1b\u56e0\u4e3a\u6b64\u65f6\uff0credo log\u4e2d\u6709\u8fd9\u6b21\u66f4\u65b0\u8bb0\u5f55\uff0cbinlog\u4e5f\u6709\u8fd9\u6b21\u66f4\u65b0\u8bb0\u5f55\uff0credo log\u548cbinlog\u4fdd\u6301\u4e86\u4e00\u81f4\uff0c\u5426\u5219<\/p>\n<ul>\n<li>1\u3001redo log\u5237\u76d8\u6210\u529f\uff0cbinlog\u8fd8\u6ca1\u5237\u76d8\n<p>\u6570\u636e\u5e93\u5b95\u673a\uff0c\u6ca1\u6709commit\u6807\u8bb0\u5199\u5230redo log\u4e2d\uff0c\u4e8b\u52a1\u5224\u5b9a\u4e3a\u5931\u8d25\u3002<\/p>\n<p>\u56e0\u4e3aredolog\u4e2d\u6709\u8fd9\u6b21\u66f4\u65b0\u65e5\u5fd7\uff0cbinlog\u4e2d\u6ca1\u6709\u8fd9\u6b21\u66f4\u65b0\u65e5\u5fd7\uff0c\u4f1a\u51fa\u73b0\u6570\u636e\u4e0d\u4e00\u81f4\u95ee\u9898<\/li>\n<li>2\u3001redo log\u5237\u76d8\u6210\u529f\uff0cbinlog\u5237\u76d8\u6210\u529f\n<p>commit\u6807\u8bb0\u8fd8\u6ca1\u6765\u5f97\u53ca\u5199\u5165redo log\u4e2d\uff0c\u6570\u636e\u5e93\u5b95\u673a\uff0c\u540c\u6837\u5224\u5b9a\u4e8b\u52a1\u63d0\u4ea4\u5931\u8d25<\/li>\n<\/ul>\n<h3>6.8 \u5185\u5b58(buffer pool)\u4e2d\u66f4\u65b0\u8fc7\u810f\u6570\u636e\u4ec0\u4e48\u65f6\u5019\u5237\u76d8<\/h3>\n<ul>\n<li>\u540e\u53f0io\u7ebf\u7a0b\u6709\u65f6\u95f4\u4f1a\u628a\u5185\u5b58buffer pool\u4e2d\u66f4\u65b0\u8fc7\u7684\u810f\u6570\u636e(\u56e0\u4e3a\u66f4\u65b0\u8fc7\uff0c\u548c\u78c1\u76d8\u4e0a\u7684\u6570\u636e\u4e0d\u4e00\u6837\uff0c\u6240\u4ee5\u53eb\u810f\u6570\u636e)\u5237\u56de\u5230\u78c1\u76d8\u4e0a\uff0c\u54ea\u6015\u8fd9\u65f6\u5019mysql\u5b95\u673a\uff0c\u4e5f\u6ca1\u6709\u5173\u7cfb\uff0c\u53ef\u901a\u8fc7redo log\u548cbinlog\u6062\u590d\u6570\u636e\u5230\u5185\u5b58\u4e2d\uff0cio\u7ebf\u7a0b\u6709\u65f6\u95f4\u518d\u628a\u6570\u636e\u5237\u76d8\uff0c\u90a3\u4f55\u65f6\u5237\u5462\uff1f\n<pre><code class=\"language-bash\">- 1\u3001redo log\u6ee1\u7684\u60c5\u51b5\u4e0b\u624d\u4f1a\u4e3b\u52a8\u5237\u5165\u78c1\u76d8\r\n- 2\u3001\u7cfb\u7edf\u5185\u5b58\u4e0d\u8db3\u65f6\uff0c\u9700\u8981\u5c06\u4e00\u90e8\u5206\u6570\u636e\u9875\u6dd8\u6c70\u6389\uff0c\u5982\u679c\u6dd8\u6c70\u7684\u662f\u810f\u9875\uff0c\u9700\u8981\u5148\u5c06\u810f\u9875\u540c\u6b65\u5230\u78c1\u76d8\uff1b\r\n- 3\u3001MySQL \u8ba4\u4e3a\u7a7a\u95f2\u7684\u65f6\u95f4\uff0c\u8fd9\u79cd\u60c5\u51b5\u6ca1\u6709\u6027\u80fd\u95ee\u9898\uff1b\r\n- 4\u3001MySQL \u6b63\u5e38\u5173\u95ed\u4e4b\u524d\uff0c\u4f1a\u628a\u6240\u6709\u7684\u810f\u9875\u5237\u5165\u5230\u78c1\u76d8\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e5f\u6ca1\u6709\u6027\u80fd\u95ee\u9898\u3002<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>6.9 LRU(Least Recently Used) \u6dd8\u6c70\u7b56\u7565<\/h3>\n<p><strong>\u4ee5\u4e0a\u6211\u4eec\u4e86\u89e3\u4e86 InnoDB \u7684\u66f4\u65b0\u548c\u63d2\u5165\u64cd\u4f5c\u7684\u5177\u4f53\u5b9e\u73b0\u539f\u7406\uff0c\u63a5\u4e0b\u6765\u6211\u4eec\u518d\u6765\u4e86\u89e3\u4e0b\u5b83\u7684\u5b9e\u73b0\u548c\u4f18\u5316\u65b9\u5f0f\u3002<\/strong><\/p>\n<p>InnoDB \u5b58\u50a8\u5f15\u64ce\u662f\u57fa\u4e8e\u96c6\u5408\u7d22\u5f15\u5b9e\u73b0\u7684\u6570\u636e\u5b58\u50a8\uff0c<strong>\u4e5f\u5c31\u662f\u9664\u4e86\u7d22\u5f15\u5217\u4ee5\u53ca\u4e3b\u952e\u662f\u5b58\u50a8\u5728 B + \u6811\u4e4b\u5916\uff0c<\/strong>\u5176\u5b83\u5217\u6570\u636e\u4e5f\u5b58\u50a8\u5728 B + \u6811\u7684\u53f6\u5b50\u8282\u70b9\u4e2d\u3002\u800c\u8fd9\u91cc\u7684\u7d22\u5f15\u9875\u548c\u6570\u636e\u9875\u90fd\u4f1a\u7f13\u5b58\u5728\u7f13\u51b2\u6c60\u4e2d\uff0c\u5728\u67e5\u8be2\u6570\u636e\u65f6\uff0c<strong>\u53ea\u8981\u5728\u7f13\u51b2\u6c60\u4e2d\u5b58\u5728\u8be5\u6570\u636e\uff0cInnoDB \u5c31\u4e0d\u7528\u6bcf\u6b21\u90fd\u53bb\u78c1\u76d8\u4e2d\u8bfb\u53d6\u9875\uff0c\u4ece\u800c\u63d0\u9ad8\u6570\u636e\u5e93\u7684\u67e5\u8be2\u6027\u80fd\u3002<\/strong><\/p>\n<p><strong>\u867d\u7136\u7f13\u51b2\u6c60\u662f\u4e00\u4e2a\u5f88\u5927\u7684\u5185\u5b58\u533a\u57df\uff0c\u4f46\u7531\u4e8e\u5b58\u653e\u4e86\u5404\u79cd\u7c7b\u578b\u7684\u6570\u636e\uff0c<\/strong>\u52a0\u4e0a\u5b58\u50a8\u6570\u636e\u91cf\u4e4b\u5927\uff0c\u7f13\u51b2\u6c60\u65e0\u6cd5\u5c06\u6240\u6709\u7684\u6570\u636e\u90fd\u5b58\u50a8\u5728\u5176\u4e2d\u3002<strong>\u56e0\u6b64\uff0c\u7f13\u51b2\u6c60\u9700\u8981\u901a\u8fc7 LRU \u7b97\u6cd5\u5c06\u6700\u8fd1\u4e14\u7ecf\u5e38\u67e5\u8be2\u7684\u6570\u636e\u7f13\u5b58\u5728\u5176\u4e2d\uff0c\u800c\u4e0d\u5e38\u67e5\u8be2\u7684\u6570\u636e\u5c31\u6dd8\u6c70\u51fa\u53bb\u3002<\/strong><\/p>\n<p><strong>InnoDB \u5bf9 LRU \u505a\u4e86\u4e00\u4e9b\u4f18\u5316\uff0c<\/strong>\u6211\u4eec\u719f\u6089\u7684 LRU \u7b97\u6cd5\u901a\u5e38\u662f\u5c06\u6700\u8fd1\u67e5\u8be2\u7684\u6570\u636e\u653e\u5230 LRU \u5217\u8868\u7684\u9996\u90e8\uff0c\u800c InnoDB \u5219\u662f\u5c06\u6570\u636e\u653e\u5728\u4e00\u4e2a midpoint \u4f4d\u7f6e\uff0c<strong>\u901a\u5e38\u8fd9\u4e2a midpoint \u4e3a\u5217\u8868\u957f\u5ea6\u7684 5\/8\u3002<\/strong><\/p>\n<p><strong>\u8fd9\u79cd\u7b56\u7565\u4e3b\u8981\u662f\u4e3a\u4e86\u907f\u514d\u4e00\u4e9b\u4e0d\u5e38\u67e5\u8be2\u7684\u64cd\u4f5c\u7a81\u7136\u5c06\u70ed\u70b9\u6570\u636e\u6dd8\u6c70\u51fa\u53bb\uff0c\u800c\u70ed\u70b9\u6570\u636e\u88ab\u518d\u6b21\u67e5\u8be2\u65f6\uff0c\u9700\u8981\u518d\u6b21\u4ece\u78c1\u76d8\u4e2d\u83b7\u53d6\uff0c\u4ece\u800c\u5f71\u54cd\u6570\u636e\u5e93\u7684\u67e5\u8be2\u6027\u80fd\u3002<\/strong><\/p>\n<p><strong>\u5982\u679c\u6211\u4eec\u7684\u70ed\u70b9\u6570\u636e\u6bd4\u8f83\u591a\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u8c03\u6574 midpoint \u503c\u6765\u589e\u52a0\u70ed\u70b9\u6570\u636e\u7684\u5b58\u50a8\u91cf\uff0c\u4ece\u800c\u964d\u4f4e\u70ed\u70b9\u6570\u636e\u7684\u6dd8\u6c70\u7387\u3002<\/strong><\/p>\n<h2>\u4e03 innodb\u5b58\u50a8\u5f15\u64ce\u8868\u7a7a\u95f4\u8be6\u89e3<\/h2>\n<h3>7.1 \u6bb5\u3001\u533a\u3001\u9875\u3001\u884c<\/h3>\n<p>\u4e4b\u524d\u6211\u4eec\u63d0\u8fc7msyql\u4e2d\u7684\u5e93\u3001\u8868\u3001\u8bb0\u5f55\u884c\u4e0e\u6211\u4eec\u81ea\u5df1\u64cd\u4f5c\u7684\u6587\u4ef6\u5939\u3001\u6587\u4ef6\u3001\u6587\u4ef6\u884c\u7684\u5bf9\u5e94\u5173\u7cfb<\/p>\n<pre><code>\u5e93 -------------&gt; \u6587\u4ef6\u5939\r\n\u8868 -------------&gt; \u6587\u4ef6\r\nrow\uff08\u8bb0\u5f55\u884c\uff09 ---&gt; \u6587\u4ef6\u4e2d\u7684\u4e00\u884c\u5185\u5bb9<\/code><\/pre>\n<p>\u5f53\u65f6\u6211\u4eec\u4e3a\u4e86\u65b9\u4fbf\u7406\u89e3\uff0c\u5bf9\u4e8e\u6570\u636e\u5e93\u4e2d\u7684\u4e00\u5f20\u8868<\/p>\n<pre><code class=\"language-python\"># \u5e93\uff1adb1\r\nuse db1;\r\n\r\n# \u8868\uff1at1\r\ncreate table t1(id int,name varchar(16),age int);\r\n\r\n# \u8bb0\u5f55\u884c\r\ninsert t1 values\r\n(1,\"egon\",18),\r\n(2,\"tom\",19),\r\n(3,\"jack\",20);\r\n\r\nmysql&gt; select * from t1;\r\n+------+------+------+\r\n| id   | name | age  |\r\n+------+------+------+\r\n|    1 | egon |   18 |\r\n|    2 | tom  |   19 |\r\n|    3 | jack |   20 |\r\n+------+------+------+\r\n3 rows in set (0.00 sec)<\/code><\/pre>\n<p>\u6211\u4eec\u53ef\u4ee5\u7406\u89e3\u6210\uff0c\u5728db1\u6587\u4ef6\u5939\u4e0b\u6709\u4e00\u4e2a\u6587\u672c\u6587\u4ef6\uff0c\u6587\u4ef6\u4e2d\u6709\u4e09\u884c\u5185\u5bb9<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/14.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/14.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/p>\n<p>\u4e8b\u5b9e\u4e0a\uff0cmysql\u7684\u5b58\u50a8\u5f15\u64ce\u4e2d\u5173\u4e8e\u8868\u4e2d\u6570\u636e\u7684\u5b58\u50a8\u7ed3\u6784\u8981\u590d\u6742\u7684\u591a<\/p>\n<p>InnoDB\u5b58\u50a8\u5f15\u64ce\u7684\u903b\u8f91\u5b58\u50a8\u7ed3\u6784\u548c Oracle\u5927\u81f4\u76f8\u540c \uff0c\u6240\u6709\u6570\u636e\u90fd\u88ab\u903b\u8f91\u5730\u5b58\u653e\u5728\u4e00\u4e2a\u7a7a\u95f4\u4e2d \uff0c\u6211\u4eec\u79f0\u4e4b\u4e3a\u8868\u7a7a\u95f4 \uff08 tablespace \uff09 \uff0c\u8868\u7a7a\u95f4\u53c8\u7531\uff1a\u6bb5 \uff08 segment \uff09 \u3001\u533a \uff08 extent \uff09 \u3001\u9875 ( page \uff09 \u7ec4\u6210 \u3002\u9875\u5728\u4e00\u4e9b\u6587\u6863\u4e2d\u6709\u65f6\u4e5f\u79f0\u4e3a\u5757\uff08block)\u6216\u78c1\u76d8\u5757\uff0c\u4e00\u6b21io\u64cd\u4f5c\u7684\u662f\u4e00\u4e2a\u78c1\u76d8\u7684\u6570\u636e\uff0c\u5373\u4e00\u9875\u6570\u636e\u3002<\/p>\n<p>InnoDB\u5b58\u50a8\u5f15\u64ce\u7684\u903b\u8f91\u5b58\u50a8\u7ed3\u6784\u5927\u81f4\u5982\u4e0b\u56fe\u6240\u793a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/13-1024x689.jpg'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/13-1024x689.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/p>\n<p>\u8be6\u89e3\u5982\u4e0b<\/p>\n<ul>\n<li>Row\u884c\n<pre><code>\u4e00\u4e2aRow\u5b58\u653e\u7684\u662f\u4e00\u884c\u5185\u5bb9\uff0c\u6709trx id\uff0c\u56de\u6eda\u6307\u9488\uff0c\u8be5\u884c\u5305\u542b\u7684n\u5217\u5185\u5bb9\r\nInnoDB\u5b58\u50a8\u5f15\u64ce\u662f\u9762\u5411\u884c\u7684\uff08row-oriented\uff09\uff0c\u4e5f\u5c31\u662f\u8bf4\u6570\u636e\u7684\u5b58\u653e\u662f\u6309\u884c\u8fdb\u884c\u5b58\u653e\u7684\u3002\r\n\u8fd9\u91cc\u63d0\u5230\u9762\u5411\u884c\uff08row-oriented\uff09\u7684\u6570\u636e\u5e93\uff0c\u90a3\u4e48\u4e5f\u5c31\u662f\u8bf4\uff0c\u8fd8\u5b58\u5728\u6709\u9762\u5411\u5217\uff08column-orientied\uff09\u7684\u6570\u636e\u5e93\u3002MySQL infobright\u50a8\u5b58\u5f15\u64ce\u5c31\u662f\u6309\u5217\u6765\u5b58\u653e\u6570\u636e\u7684\uff0c\u8fd9\u5bf9\u4e8e\u6570\u636e\u4ed3\u5e93\u4e0b\u7684\u5206\u6790\u7c7bSQL\u8bed\u53e5\u7684\u6267\u884c\u4ee5\u53ca\u6570\u636e\u538b\u7f29\u5f88\u6709\u597d\u5904\u3002\u7c7b\u4f3c\u7684\u6570\u636e\u5e93\u8fd8\u6709Sybase IQ\u3001Google Big Table\u3002\u9762\u5411\u5217\u7684\u6570\u636e\u5e93\u662f\u5f53\u524d\u6570\u636e\u5e93\u53d1\u5c55\u7684\u4e00\u4e2a\u65b9\u5411\u3002<\/code><\/pre>\n<\/li>\n<li>Page\u9875\uff1a\u6700\u591a\u5305\u542b7992\u884c\u8bb0\u5f55\n<pre><code>\u591a\u4e2aRow\u7ec4\u7ec7\u5230\u4e00\u4e2aPage\u9875\u4e2d\uff0c\u4e00\u4e2aPage\u9875\u5373\u4e00\u4e2a\u78c1\u76d8\u5757\u5927\u5c0f\uff0c\u662fio\u64cd\u4f5c\u7684\u6700\u5c0f\u7269\u7406\u5b58\u50a8\u5355\u5143\uff0c\u4e5f\u5c31\u662f\u6211\u4eec\u8bfb\u53d6\u4e00\u9875\u5185\u7684\u6570\u636e\u65f6\u5019\uff0c\u5b9e\u9645\u4e0a\u624d\u53d1\u751f\u4e86\u4e00\u6b21IO\uff0c\u8fd9\u4e2a\u7406\u8bba\u5bf9\u4e8e\u7d22\u5f15\u7684\u6570\u636e\u7ed3\u6784\u8bbe\u8ba1\u975e\u5e38\u6709\u5e2e\u52a9\u3002\r\n\u6bcf\u4e2a\u9875\u5b58\u653e\u7684\u884c\u8bb0\u5f55\u4e5f\u662f\u6709\u786c\u6027\u5b9a\u4e49\u7684\uff0c\u6700\u591a\u5141\u8bb8\u5b58\u653e16KB\/2\uff5e200\u884c\u7684\u8bb0\u5f55\uff0c\u53737992\u884c\u8bb0\u5f55\u3002\r\nInnoDB\u5b58\u50a8\u5f15\u64cepage\u9875\u7684\u5927\u5c0f\u4e3a16KB\uff0c\u4e14\u4e0d\u53ef\u4ee5\u66f4\u6539\uff08\u4e5f\u8bb8\u901a\u8fc7\u66f4\u6539\u6e90\u7801\u53ef\u4ee5\uff09\u3002<\/code><\/pre>\n<\/li>\n<li>Extent\u533a\uff1a\u753164\u4e2a\u8fde\u7eed\u7684\u9875\u7ec4\u6210\u7684\n<pre><code>\u533a\u662f\u753164\u4e2a\u8fde\u7eed\u7684\u9875\u7ec4\u6210\u7684\uff0c\u6bcf\u4e2a\u9875\u5927\u5c0f\u4e3a16KB\uff0c\u5373\u6bcf\u4e2a\u533a\u7684\u5927\u5c0f\u4e3a1MB\u3002<\/code><\/pre>\n<\/li>\n<li>Segment \u6bb5 \uff1a\u6700\u591a\u75314\u4e2a\u533a\u7ec4\u6210\n<pre><code>\u5bf9\u4e8e\u5927\u7684\u6570\u636e\u6bb5\uff0cInnoDB\u5b58\u50a8\u5f15\u64ce\u6700\u591a\u6bcf\u6b21\u53ef\u4ee5\u7533\u8bf74\u4e2a\u533a\uff0c\u4ee5\u6b64\u6765\u4fdd\u8bc1\u6570\u636e\u7684\u987a\u5e8f\u6027\u80fd\u3002<\/code><\/pre>\n<\/li>\n<li>Tablespace \u8868\u7a7a\u95f4\n<pre><code>\u8868\u7a7a\u95f4\u7531\u4e09\u79cd\u6bb5\u6784\u6210\r\n1\u3001\u53f6\u5b50\u8282\u70b9\u6570\u636e\u6bb5\uff1a\u5373\u6570\u636e\u6bb5\r\n2\u3001\u975e\u53f6\u5b50\u8282\u70b9\u6570\u636e\u6bb5\uff1a\u5373\u7d22\u5f15\u6bb5\r\n3\u3001\u56de\u6eda\u6bb5<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\u603b\u7ed3\uff1a<\/p>\n<p>7992\u884c&#8212;&gt;\u4e00\u9875\uff0816kB\uff09<\/p>\n<p>64\u4e2a\u9875&#8212;&gt;\u4e00\u4e2a\u533a\uff081MB\uff09<\/p>\n<p>4\u4e2a\u533a&#8212;&gt; \u4e00\u4e2a\u6570\u636e\u6bb5\uff084M\uff09<\/p>\n<p>\u53f6\u5b50\u8282\u70b9\u6570\u636e\u6bb5+\u975e\u53f6\u5b50\u8282\u70b9\u6570\u636e\u6bb5+\u56de\u6eda\u6570\u636e\u6bb5-\u300b\u4e00\u4e2a\u8868\u7a7a\u95f4<\/p>\n<h3>7.2 \u8868\u7a7a\u95f4tablespace<\/h3>\n<p>\u8868\u7a7a\u95f4\u53ef\u4ee5\u770b\u505a\u662fInnoDB\u5b58\u50a8\u5f15\u64ce\u903b\u8f91\u7ed3\u6784\u7684\u6700\u9ad8\u5c42\uff0c\u6240\u6709\u7684\u6570\u636e\u90fd\u5b58\u653e\u5728\u8868\u7a7a\u95f4\u4e2d\u3002\u8868\u7a7a\u95f4\u7684\u7ba1\u7406\u6a21\u5f0f\u7684\u51fa\u73b0\u662f\u4e3a\u4e86\u6570\u636e\u5e93\u7684\u5b58\u50a8\u66f4\u5bb9\u6613\u6269\u5c55\uff0c\u5173\u4e8e\u8868\u7a7a\u95f4\u6211\u4eec\u8fd8\u9700\u8981\u8be6\u7ec6\u8bf4\u4e00\u4e0b<\/p>\n<ul>\n<li>mysql 5.5\u7248\u672c\u4ee5\u540e\u51fa\u73b0\u5171\u4eab\u8868\u7a7a\u95f4\u6982\u5ff5<\/li>\n<li>mysql5.6\u7248\u672c\u4e2d\u9ed8\u8ba4\u7684\u662f\u72ec\u7acb\u8868\u7a7a\u95f4<\/li>\n<li>mysql5.7\u7248\u672c\u65b0\u7279\u6027\u5171\u4eab\u4e34\u65f6\u8868\u7a7a\u95f4<\/li>\n<\/ul>\n<h4>7.2.1 \u5171\u4eab\u8868\u7a7a\u95f4<\/h4>\n<h5>1\uff09\u6982\u5ff5<\/h5>\n<pre><code class=\"language-bash\">\u7c7b\u4f3c\u4e8eLVM\u903b\u8f91\u5377\uff0c\u662f\u52a8\u6001\u6269\u5c55\u7684\r\n\u9ed8\u8ba4\u53ea\u670912M\uff0c\u4f1a\u6839\u636e\u6570\u636e\u7684\u91cf\u6162\u6162\u53d8\u8d8a\u6765\u8d8a\u5927\r\n\r\n\u4f18\u70b9\uff1a\u53ef\u4ee5\u5c06\u8868\u7a7a\u95f4\u5206\u6210\u591a\u4e2a\u6587\u4ef6\u5b58\u653e\u5230\u5404\u4e2a\u78c1\u76d8\u4e0a\uff08\u8868\u7a7a\u95f4\u6587\u4ef6\u5927\u5c0f\u4e0d\u53d7\u8868\u5927\u5c0f\u7684\u9650\u5236\uff0c\u5982\u4e00\u4e2a\u8868\u53ef\u4ee5\u5206\u5e03\u5728\u4e0d\u540c\u7684\u6587\u4ef6\u4e0a\uff09\u3002\u6570\u636e\u548c\u6587\u4ef6\u653e\u5728\u4e00\u8d77\u65b9\u4fbf\u7ba1\u7406\u3002\r\n\r\n\u7f3a\u70b9\uff1a\u6240\u6709\u7684\u6570\u636e\u548c\u7d22\u5f15\u5b58\u653e\u5230\u4e00\u4e2a\u6587\u4ef6\u4e2d\uff0c\u867d\u7136\u53ef\u4ee5\u628a\u4e00\u4e2a\u5927\u6587\u4ef6\u5206\u6210\u591a\u4e2a\u5c0f\u6587\u4ef6\uff0c\u4f46\u662f\u591a\u4e2a\u8868\u53ca\u7d22\u5f15\u5728\u8868\u7a7a\u95f4\u4e2d\u6df7\u5408\u5b58\u50a8\uff0c\u8fd9\u6837\u5bf9\u4e8e\u4e00\u4e2a\u8868\u505a\u4e86\u5927\u91cf\u5220\u9664\u64cd\u4f5c\u540e\u8868\u7a7a\u95f4\u4e2d\u5c06\u4f1a\u6709\u5927\u91cf\u7684\u7a7a\u9699\uff0c\u7279\u522b\u662f\u5bf9\u4e8e\u7edf\u8ba1\u5206\u6790\uff0c\u65e5\u503c\u7cfb\u7edf\u8fd9\u7c7b\u5e94\u7528\u6700\u4e0d\u9002\u5408\u7528\u5171\u4eab\u8868\u7a7a\u95f4\u3002<\/code><\/pre>\n<h5>2\uff09\u67e5\u770b\u5171\u4eab\u8868\u7a7a\u95f4<\/h5>\n<pre><code class=\"language-bash\">mysql&gt; show variables like '%path%';\r\n+----------------------------------+------------------------+\r\n| Variable_name                    | Value                  |\r\n+----------------------------------+------------------------+\r\n| innodb_data_file_path            | ibdata1:12M:autoextend |\r\n| sha256_password_private_key_path | private_key.pem        |\r\n| sha256_password_public_key_path  | public_key.pem         |\r\n| ssl_capath                       |                        |\r\n| ssl_crlpath                      |                        |\r\n+----------------------------------+------------------------+\r\n5 rows in set (0.01 sec)<\/code><\/pre>\n<h5>3\uff09\u4fee\u6539\u5171\u4eab\u8868\u7a7a\u95f4<\/h5>\n<div id=\"rml_readmorelogin_placeholder\" style=\"position:relative;\"><div id=\"rml_fade_content\" style=\"position: absolute;\r\ntop:-10em;\r\nwidth:100%;\r\nheight:10em;\r\nbackground: -webkit-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: -moz-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: -o-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: -ms-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\"><\/div><div class=\"wpf-controller aru_rml_from_in_post\" style=\"background-color:#eeeeee;border:5px solid #cce6ff;\" id=\"ARU_ReadMoreLogin_ReadMoreLoginController\"><h2 id=\"Header\">\u67e5\u770b\u66f4\u591a<\/h2><div id=\"Message\"><p>\u8054\u7cfb\u7ba1\u7406\u5458\u5fae\u4fe1tutu19192010\uff0c\u6ce8\u518c\u8d26\u53f7<\/p>\n<\/div><div id=\"StatusBarHeader\"><\/div><form id=\"ARU_ReadMoreLogin_ReadMoreLoginController\"><input name=\"post_id\" value=\"492\" type=\"hidden\"\/><input name=\"_init_callback\" value=\"InitLogin\" type=\"hidden\"\/><input name=\"post_id\" value=\"492\" type=\"hidden\"\/><input name=\"rt_ype\" value=\"1\" type=\"hidden\"\/><input name=\"nonce\" value=\"2a9e38a868\" type=\"hidden\"\/><input name=\"_wpnonce\" value=\"ee095c8387\" type=\"hidden\"\/><input name=\"_controller\" value=\"ARU_ReadMoreLogin\\ReadMoreLoginController\" type=\"hidden\"\/><input name=\"_proxy_controller\" value=\"ARU_ReadMoreLogin\\ReadMoreLoginController\" type=\"hidden\"\/><input name=\"_view\" value=\"ARU_ReadMoreLogin\\ReadMoreLoginView\" type=\"hidden\"\/><table class=\"wpf-table-placeholder\"><tbody class=\"wpf-table-placeholder\"><tr class=\"wpf-table-placeholder\"><td class=\"wpf-table-placeholder-input\" width=\"400px\"><table class=\"wpf-table-placeholder\"><tbody class=\"wpf-table-placeholder\"><tr class=\"wpf-table-placeholder\"><th class=\"wpf-table-placeholder-input\"><label class=\"wpf-label\">Username:<\/label><\/th><\/tr><tr class=\"wpf-table-placeholder\"><td class=\"wpf-table-placeholder-input\"><input class=\"regular-text text_input\" name=\"username\" value=\"\" type=\"text\"\/><\/td><\/tr><tr class=\"wpf-table-placeholder\"><th class=\"wpf-table-placeholder-input\"><label class=\"wpf-label\">Password:<\/label><\/th><\/tr><tr class=\"wpf-table-placeholder\"><td class=\"wpf-table-placeholder-input\"><input class=\"regular-text text_input\" name=\"password\" value=\"\" type=\"password\"\/><\/td><\/tr><\/tbody><\/table><p class=\"wpf-table-placeholder submit\"><button class=\"wp_plugin_framework_ajax_button\" type=\"button\" style=\"background-color:#4D90FE;;color:#ffffff;;border:1px solid #3079ed;\" name=\"_event\" value=\"ButtonLogin\">Log in<\/button><\/p><\/td><td class=\"wpf-table-placeholder-input\"><\/td><\/tr><\/tbody><\/table><\/form><div id=\"ButtonStartRegister\"><a href=\"https:\/\/egonlin.com\/wp-login.php?action=register\">Register<\/a><\/div><div id=\"Link1\"><a href=\"https:\/\/egonlin.com\/wp-login.php?action=lostpassword\">Forgotten username or password?<\/a><\/div><div id=\"StatusBarFooter\"><\/div><\/div><\/div><div id=aru_remaining_content><\/div>","protected":false},"excerpt":{"rendered":"<p>\u5b58\u50a8\u5f15\u64ce \u4e00 MySQL\u7ec4\u7ec7\u67b6\u6784 1\u3001\u8fde\u63a5\u5c42 1.\u9a8c\u8bc1\u7528\u6237\u7684\u8eab\u4efd\uff0c\u7528\u6237\u540d\u5bc6\u7801\u662f\u5426\u5339\u914d 2.\u63d0\u4f9b\u4e24\u79cd\u8fde\u63a5\u65b9\u5f0f\uff08T [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":498,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[82],"tags":[21,19,99,22,100,20],"_links":{"self":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/492"}],"collection":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=492"}],"version-history":[{"count":1,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/492\/revisions"}],"predecessor-version":[{"id":10879,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/492\/revisions\/10879"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/media\/498"}],"wp:attachment":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=492"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}