{"id":2087,"date":"2023-04-01T21:55:37","date_gmt":"2023-04-01T13:55:37","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=2087"},"modified":"2023-04-06T14:50:00","modified_gmt":"2023-04-06T06:50:00","slug":"index-explanation-in-mysql","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/04\/01\/index-explanation-in-mysql\/","title":{"rendered":"MySQL\u4e2d\u7684\u7d22\u5f15\u8be6\u89e3"},"content":{"rendered":"<h2>\u524d\u8a00<\/h2>\n<p>\u56e0\u4e3a\u73b0\u5728\u4f7f\u7528\u7684MySQL\u9ed8\u8ba4\u5b58\u50a8\u5f15\u64ce\u662fInnodb\uff0c\u6240\u4ee5\u672c\u7bc7\u6587\u7ae0\u91cd\u70b9\u8bb2\u8ff0Innodb\u4e0b\u7684\u7d22\u5f15\uff0c\u987a\u5e26\u7b80\u5355\u8bb2\u8ff0\u5176\u4ed6\u5f15\u64ce\u3002\u5e0c\u671b\u5c0f\u4f19\u4f34\u4eec\u80fd\u901a\u8fc7\u8fd9\u7247\u6587\u7ae0\u5bf9MySQL\u7684\u7d22\u5f15\u6709\u66f4\u52a0\u6e05\u6670\u7684\u8ba4\u8bc6\uff0c\u5e9f\u8bdd\u4e0d\u591a\u8bf4\uff0c\u6211\u4eec\u5f00\u59cb\u5427\u3002<\/p>\n<h2>\u7d22\u5f15\u4ecb\u7ecd<\/h2>\n<p><!-- more --><\/p>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u5148\u5e26\u7740\u4e00\u4e9b\u95ee\u9898\u6765\u770b\u63a5\u4e0b\u6765\u7684\u5185\u5bb9\u3002<\/p>\n<ul>\n<li>\u7d22\u5f15\u662f\u4e2a\u4ec0\u4e48\u4e1c\u897f\uff1f<\/li>\n<li>\u6211\u4eec\u53ef\u4ee5\u521b\u5efa\u54ea\u4e9b\u7d22\u5f15\uff1f<\/li>\n<li>\u54ea\u4e9b\u5b57\u6bb5\u9002\u5408\u5efa\u7acb\u7d22\u5f15\u5462\uff1f<\/li>\n<li>\u7d22\u5f15\u662f\u4e0d\u662f\u8d8a\u591a\u8d8a\u597d\u5462\uff1f<\/li>\n<li>\u4e3a\u4ec0\u4e48\u6211\u4eec\u4e0d\u5efa\u8bae\u4f7f\u7528uuid\u3001\u8eab\u4efd\u8bc1\u53f7\u7b49\u6570\u636e\u505a\u4e3a\u4e3b\u952e\uff1f<\/li>\n<li>\u4e3a\u4ec0\u4e48\u4e0d\u5efa\u8bae\u4f7f\u7528<code>select * from table<\/code>\uff1f<\/li>\n<li>\u6211\u4eec\u4f7f\u7528\u6a21\u7cca\u5339\u914d <code>%\u4e09<\/code> <code>\u5f20%<\/code>\uff0c\u5728\u524d\u5728\u540e\u4f1a\u5f71\u54cd\u7d22\u5f15\u7684\u4f7f\u7528\u5417\uff1f<\/li>\n<\/ul>\n<p>\u4e0a\u9762\u7684\u95ee\u9898\u6211\u4eec\u5927\u5bb6\u53ef\u80fd\u90fd\u5b58\u5728\u6216\u8005\u90e8\u5206\u5b58\u5728\u7591\u60d1\uff0c\u63a5\u4e0b\u6765\u5c31\u662f\u89e3\u60d1\u7684\u65f6\u95f4\u3002<\/p>\n<h2>\u4ec0\u4e48\u662f\u7d22\u5f15<\/h2>\n<p>\u5728\u5173\u7cfb\u6570\u636e\u5e93\u4e2d\uff0c\u7d22\u5f15\u662f\u4e00\u79cd\u5355\u72ec\u7684\u3001\u7269\u7406\u7684\u5bf9\u6570\u636e\u5e93\u8868\u4e2d\u4e00\u5217\u6216\u591a\u5217\u7684\u503c\u8fdb\u884c\u6392\u5e8f\u7684\u4e00\u79cd\u5b58\u50a8\u7ed3\u6784\uff0c\u5b83\u662f\u67d0\u4e2a\u8868\u4e2d\u4e00\u5217\u6216\u82e5\u5e72\u5217\u503c\u7684\u96c6\u5408\u548c\u76f8\u5e94\u7684\u6307\u5411\u8868\u4e2d\u7269\u7406\u6807\u8bc6\u8fd9\u4e9b\u503c\u7684\u6570\u636e\u9875\u7684\u903b\u8f91\u6307\u9488\u6e05\u5355\u3002\u7d22\u5f15\u7684\u4f5c\u7528\u76f8\u5f53\u4e8e\u56fe\u4e66\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u6839\u636e\u76ee\u5f55\u4e2d\u7684\u9875\u7801\u5feb\u901f\u627e\u5230\u6240\u9700\u7684\u5185\u5bb9\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-\u4ec0\u4e48\u662f\u7d22\u5f15.png\" alt=\"MySQL\u7d22\u5f15-\u4ec0\u4e48\u662f\u7d22\u5f15\" \/><\/p>\n<h2>MySQL\u4e2d\u7d22\u5f15\u6709\u54ea\u4e9b\u7c7b\u578b<\/h2>\n<h3>\u666e\u901a\u7d22\u5f15<\/h3>\n<p>\u666e\u901a\u7d22\u5f15\u662fMySQL\u91cc\u6700\u57fa\u672c\u7684\u7d22\u5f15\uff0c\u6ca1\u6709\u4ec0\u4e48\u7279\u6b8a\u6027\uff0c\u5728\u4efb\u4f55\u4e00\u5217\u4e0a\u90fd\u80fd\u8fdb\u884c\u521b\u5efa\u3002<\/p>\n<pre><code class=\"language-sql\">-- \u521b\u5efa\u7d22\u5f15\u7684\u57fa\u672c\u8bed\u6cd5\nCREATE INDEX indexName ON table(column(length));\n-- \u4f8b\u5b50 length\u9ed8\u8ba4\u6211\u4eec\u53ef\u4ee5\u5ffd\u7565\nCREATE INDEX idx_name ON user(name);<\/code><\/pre>\n<h3>\u4e3b\u952e\u7d22\u5f15<\/h3>\n<p>\u6211\u4eec\u77e5\u9053\u6bcf\u5f20\u8868\u4e00\u822c\u90fd\u4f1a\u6709\u81ea\u5df1\u7684\u4e3b\u952e\uff0cMySQL\u4f1a\u5728\u4e3b\u952e\u4e0a\u5efa\u7acb\u4e00\u4e2a\u7d22\u5f15\uff0c\u8fd9\u5c31\u662f\u4e3b\u952e\u7d22\u5f15\u3002\u4e3b\u952e\u662f\u5177\u6709\u552f\u4e00\u6027\u5e76\u4e14\u4e0d\u5141\u8bb8\u4e3aNULL\uff0c\u6240\u4ee5\u4ed6\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u552f\u4e00\u7d22\u5f15\u3002\u4e00\u822c\u5728\u5efa\u7acb\u8868\u7684\u65f6\u5019\u9009\u5b9a\u3002<\/p>\n<h3>\u590d\u5408\u7d22\u5f15<\/h3>\n<p>\u590d\u5408\u7d22\u5f15\u4e5f\u53eb\u7ec4\u5408\u7d22\u5f15\uff0c\u6307\u7684\u662f\u6211\u4eec\u5728\u5efa\u7acb\u7d22\u5f15\u7684\u65f6\u5019\u4f7f\u7528\u591a\u4e2a\u5b57\u6bb5\uff0c\u4f8b\u5982\u540c\u65f6\u4f7f\u7528\u8eab\u4efd\u8bc1\u548c\u624b\u673a\u53f7\u5efa\u7acb\u7d22\u5f15\uff0c\u540c\u6837\u7684\u53ef\u4ee5\u5efa\u7acb\u4e3a\u666e\u901a\u7d22\u5f15\u6216\u8005\u662f\u552f\u4e00\u7d22\u5f15\u3002<\/p>\n<p>\u590d\u5408\u7d22\u5f15\u7684\u4f7f\u7528\u590d\u5408\u6700\u5de6\u539f\u5219\u3002\u4e3e\u4e2a\u4f8b\u5b50 \u6211\u4eec\u4f7f\u7528 phone\u548cname\u521b\u5efa\u7d22\u5f15\u3002<\/p>\n<pre><code class=\"language-sql\">-- \u521b\u5efa\u7d22\u5f15\u7684\u57fa\u672c\u8bed\u6cd5\nCREATE  INDEX indexName ON table(column1(length),column2(length));\n-- \u4f8b\u5b50 \nCREATE INDEX idx_phone_name ON user(phone,name);<\/code><\/pre>\n<p>\u6211\u4eec\u770b\u4e0b\u9762\u7684\u67e5\u8be2\u8bed\u53e5\uff0c<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM user_innodb where name = &#039;\u7a0b\u51af\u51af&#039;;\nSELECT * FROM user_innodb where phone = &#039;15100086637&#039;;\nSELECT * FROM user_innodb where phone = &#039;15100086637&#039; and name = &#039;\u7a0b\u51af\u51af&#039;;\nSELECT * FROM user_innodb where name = &#039;\u7a0b\u51af\u51af&#039; and phone = &#039;15100086637&#039;;<\/code><\/pre>\n<p>\u4e09\u6761sql\u53ea\u6709 2 \u3001 3\u30014\u80fd\u4f7f\u7528\u7684\u5230\u7d22\u5f15<code>idx_phone_name<\/code>\uff0c\u56e0\u4e3a\u6761\u4ef6\u91cc\u9762\u5fc5\u987b\u5305\u542b\u7d22\u5f15\u524d\u9762\u7684\u5b57\u6bb5\u624d\u80fd\u591f\u8fdb\u884c\u5339\u914d\u3002\u800c3\u548c4\u76f8\u6bd4where\u6761\u4ef6\u7684\u987a\u5e8f\u4e0d\u4e00\u6837\uff0c\u4e3a\u4ec0\u4e484\u53ef\u4ee5\u7528\u5230\u7d22\u5f15\u5462\uff1f\u662f\u56e0\u4e3amysql\u672c\u8eab\u5c31\u6709\u4e00\u5c42sql\u4f18\u5316\uff0c\u4ed6\u4f1a\u6839\u636esql\u6765\u8bc6\u522b\u51fa\u6765\u8be5\u7528\u54ea\u4e2a\u7d22\u5f15\uff0c\u6211\u4eec\u53ef\u4ee5\u7406\u89e3\u4e3a3\u548c4\u5728mysql\u773c\u4e2d\u662f\u7b49\u4ef7\u7684\u3002<\/p>\n<h3>\u5168\u6587\u7d22\u5f15<\/h3>\n<p>\u5168\u6587\u7d22\u5f15\u4e3b\u8981\u7528\u6765\u67e5\u627e\u6587\u672c\u4e2d\u7684\u5173\u952e\u5b57\uff0c\u800c\u4e0d\u662f\u76f4\u63a5\u4e0e\u7d22\u5f15\u4e2d\u7684\u503c\u76f8\u6bd4\u8f83\u3002fulltext\u7d22\u5f15\u8ddf\u5176\u5b83\u7d22\u5f15\u5927\u4e0d\u76f8\u540c\uff0c\u5b83\u66f4\u50cf\u662f\u4e00\u4e2a\u641c\u7d22\u5f15\u64ce\uff0c\u800c\u4e0d\u662f\u7b80\u5355\u7684where\u8bed\u53e5\u7684\u53c2\u6570\u5339\u914d\u3002fulltext\u7d22\u5f15\u914d\u5408<code>match against<\/code>\u64cd\u4f5c\u4f7f\u7528\uff0c\u800c\u4e0d\u662f\u4e00\u822c\u7684where\u8bed\u53e5\u52a0like\u3002<\/p>\n<p>\u5b83\u53ef\u4ee5\u5728<code>create table<\/code>\uff0c<code>alter table<\/code>\uff0c<code>create index<\/code>\u4f7f\u7528\uff0c\u4e0d\u8fc7\u76ee\u524d\u53ea\u6709char\u3001varchar\uff0ctext \u5217\u4e0a\u53ef\u4ee5\u521b\u5efa\u5168\u6587\u7d22\u5f15\u3002\u6b63\u5e38\u60c5\u51b5\u4e0b\u6211\u4eec\u4e5f\u4e0d\u4f1a\u4f7f\u7528\u5230\u5168\u6587\u7d22\u5f15\uff0c\u56e0\u4e3a\u8fd9\u4e0d\u662fmysql\u7684\u4e13\u957f\u3002<\/p>\n<h3>\u7a7a\u95f4\u7d22\u5f15<\/h3>\n<p>\u7a7a\u95f4\u7d22\u5f15\u662f\u5bf9\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u7684\u5b57\u6bb5\u5efa\u7acb\u7684\u7d22\u5f15\uff0cMySQL\u4e2d\u7684\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u67094\u79cd\uff0c\u5206\u522b\u662f<code>GEOMETRY<\/code>\u3001<code>POINT<\/code>\u3001<code>LINESTRING<\/code>\u3001<code>POLYGON<\/code>\u3002MYSQL\u4f7f\u7528<code>SPATIAL<\/code>\u5173\u952e\u5b57\u8fdb\u884c\u6269\u5c55\uff0c\u4f7f\u5f97\u80fd\u591f\u7528\u4e8e\u521b\u5efa\u6b63\u89c4\u7d22\u5f15\u7c7b\u578b\u7684\u8bed\u6cd5\u521b\u5efa\u7a7a\u95f4\u7d22\u5f15\u3002<\/p>\n<p>\u521b\u5efa\u7a7a\u95f4\u7d22\u5f15\u7684\u5217\uff0c\u5fc5\u987b\u5c06\u5176\u58f0\u660e\u4e3a<code>NOT NULL<\/code>\uff0c\u7a7a\u95f4\u7d22\u5f15\u53ea\u80fd\u5728\u5b58\u50a8\u5f15\u64ce\u4e3aMYISAM\u7684\u8868\u4e2d\u521b\u5efa\u3002\u7a7a\u95f4\u7d22\u5f15\u4e00\u822c\u7528\u4e0d\u5230\uff0c\u4e86\u89e3\u5373\u53ef\u3002<\/p>\n<h2>\u7d22\u5f15\u7684\u6570\u636e\u7ed3\u6784<\/h2>\n<h3>B+Tree<\/h3>\n<p>InnoDB\u9ed8\u8ba4\u7d22\u5f15\u6570\u636e\u7ed3\u6784\u662fB+Tree\uff0c\u4ec0\u4e48\u662fB+Tree\u5462\uff0c\u5b83\u7684\u5168\u540d\u53eb\u505a\u5e73\u8861\u591a\u8def\u67e5\u627e\u6811PLUS\u3002\u4ed6\u662f\u7531\u5e73\u8861\u4e8c\u53c9\u6811\u67e5\u627e\u6811\uff08AVL\u6811\uff09\u6f14\u5316\u800c\u6765\u3002\u6211\u4eec\u6765\u4ecb\u7ecd\u4e00\u4e0b\u4ed6\u7684\u6f14\u5316\u53f2\uff08\u6572\u9ed1\u677f\uff0c\u5fc5\u8003\u9898\uff09\u3002<\/p>\n<p>\u6211\u4eec\u4e0a\u9762\u8bb2\u5230\uff0c\u7d22\u5f15\u662f\u4e00\u79cd\u6709\u5e8f\u7684\u6570\u636e\u7ed3\u6784\uff0c\u56e0\u4e3a\u6709\u5e8f\u624d\u80fd\u5feb\u901f\u7684\u8fdb\u884c\u67e5\u627e\uff0c\u6240\u4ee5\u6211\u4eec\u4e00\u6b65\u6b65\u770b\u4e00\u4e0b\u7d22\u5f15\u7684\u5b9a\u578b\u6f14\u5316\uff0c\u9996\u5148\u6211\u4eec\u8bb2\u4e00\u4e0b\u4ec0\u4e48\u662f\u4e8c\u53c9\u67e5\u627e\u6811\u3002<\/p>\n<h3>\u4e8c\u53c9\u67e5\u627e\u6811\uff08Binary Search Trees\uff09<\/h3>\n<p>\u4e8c\u53c9\u67e5\u627e\u6811\u5177\u6709\u4ee5\u4e0b\u6027\u8d28\uff1a\u5de6\u5b50\u6811\u7684\u952e\u503c\u5c0f\u4e8e\u6839\u7684\u952e\u503c\uff0c\u53f3\u5b50\u6811\u7684\u952e\u503c\u5927\u4e8e\u6839\u7684\u952e\u503c\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-\u4e8c\u53c9\u67e5\u627e\u6811\u6700\u597d\u60c5\u51b5.png\" alt=\"MySQL\u7d22\u5f15-\u4e8c\u53c9\u67e5\u627e\u6811\u6700\u597d\u60c5\u51b5\" \/><\/p>\n<p>\u8282\u70b9\u7684\u987a\u5e8f\u5c31\u662f11\u300125\u300136\u300180\u3001110\u3001120\u3001300\u3002\u4ed6\u7684\u95ee\u9898\u662f\u4e0d\u591f\u7a33\u5b9a\uff0c\u4e0a\u56fe\u6211\u4eec\u770b\u5230\u4e86\u8fd9\u662f\u6700\u597d\u7684\u4e00\u79cd\u60c5\u51b5\uff0c\u63d2\u5165\u987a\u5e8f\u662f80\u300125\u300111\u300136\u3001120\u3001110\u3001300\uff0c\u4f46\u662f\u5982\u679c\u6211\u4eec\u7684\u63d2\u5165\u987a\u5e8f\u53d8\u621011\u300125\u300136\u300180\u3001110\u3001120\u3001300\uff0c\u90a3\u4e48\u4ed6\u7684\u6811\u7ed3\u6784\u4f1a\u53d8\u6210\u4e0b\u56fe\u8fd9\u6837\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-\u4e8c\u53c9\u67e5\u627e\u6811\u6700\u574f\u60c5\u51b5.png\" alt=\"MySQL\u7d22\u5f15-\u4e8c\u53c9\u67e5\u627e\u6811\u6700\u574f\u60c5\u51b5\" \/><\/p>\n<p>\u4e0a\u56fe\u597d\u597d\u7684\u4e00\u4e2a\u4e8c\u53c9\u6811\u53d8\u6210\u4e86\u4e00\u4e2a\u94fe\u8868\u3002\u4e4b\u524d\u6211\u4eec\u67e5\u627e\u5230300\u9700\u89813\u6b21\u67e5\u8be2\uff0c\u540e\u8005\u5219\u9700\u89817\u6b21\u6548\u7387\u662f\u76f4\u7ebf\u4e0b\u964d\u3002<\/p>\n<p>\u8fd9\u91cc\u5927\u5bb6\u53ef\u4ee5\u53bb\u8fd9\u4e2a\u7f51\u5740Data Structure Visualizations\u81ea\u5df1\u53bb\u64cd\u4f5c\u4e0b\u8fd9\u4e2a\u6d41\u7a0b\u3002<\/p>\n<blockquote>\n<p><a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/www.cs.usfca.edu\/~galles\/visualization\/Algorithms.html\">https:\/\/www.cs.usfca.edu\/~galles\/visualization\/Algorithms.html<\/a><\/p>\n<\/blockquote>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-Data-Structure-Visualizations.png\" alt=\"MySQL\u7d22\u5f15-Data Structure Visualizations\" \/><\/p>\n<p>\u90a3\u4e48\u5982\u4f55\u89e3\u51b3\u6389\u8fd9\u79cd\u4e0d\u5e73\u8861\u7684\u95ee\u9898\u5462\uff1f<\/p>\n<h3>AVL Trees (Balanced binary search trees)<\/h3>\n<p>\u8fd9\u4e2a\u65f6\u5019\u5e73\u8861\u4e8c\u53c9\u67e5\u627e\u6811\u51fa\u73b0\u4e86\u3002\u4ec0\u4e48\u662fAVL\u6811\uff0c\u5728\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\uff0cAVL\u6811\u662f\u6700\u5148\u53d1\u660e\u7684\u81ea\u5e73\u8861\u4e8c\u53c9\u67e5\u627e\u6811\u3002\u5728AVL\u6811\u4e2d\u4efb\u4f55\u8282\u70b9\u7684\u4e24\u4e2a\u5b50\u6811\u7684\u9ad8\u5ea6\u6700\u5927\u5dee\u522b\u4e3a1\uff0c\u6240\u4ee5\u5b83\u4e5f\u88ab\u79f0\u4e3a\u9ad8\u5ea6\u5e73\u8861\u6811\u3002\u589e\u52a0\u548c\u5220\u9664\u53ef\u80fd\u9700\u8981\u901a\u8fc7\u4e00\u6b21\u6216\u591a\u6b21\u6811\u65cb\u8f6c\u6765\u91cd\u65b0\u5e73\u8861\u8fd9\u4e2a\u6811\u3002<\/p>\n<p>AVL\u6811\u5f97\u540d\u4e8e\u5b83\u7684\u53d1\u660e\u8005G. M. Adelson-Velsky\u548cE. M. Landis\uff0c\u540d\u5b57\u5df2\u62fc\u63a5AVL\u6811\u7684\u5927\u540d\u5c31\u51fa\u6765\u4e86\u3002\u6211\u4eec\u4e0b\u9762\u770b\u4e0bavl\u6309\u716711\u300125\u300136\u300180\u3001110\u3001120\u3001300\u987a\u5e8f\u8fdb\u884c\u63d2\u5165\u7684\u6548\u679c\u56fe\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-\u5e73\u8861\u4e8c\u53c9\u67e5\u627e\u6811\u52a8\u6001\u63d2\u5165.gif\" alt=\"MySQL\u7d22\u5f15-\u5e73\u8861\u4e8c\u53c9\u67e5\u627e\u6811\u52a8\u6001\u63d2\u5165\" \/><\/p>\n<p>\u5f53\u5b50\u6811\u7684\u9ad8\u5ea6\u8d85\u8fc71\u65f6\u4ed6\u4f1a\u901a\u8fc7\u81ea\u65cb\u7684\u65b9\u5f0f\u91cd\u65b0\u5e73\u8861\u6811\uff0c\u6240\u4ee5\u8fd9\u6837\u6211\u4eec\u67e5\u8be2\u6570\u636e\u7684\u65f6\u95f4\u590d\u6742\u5ea6\u5c31\u7a33\u5b9a\u4e86\u3002\u6709\u5173avl\u6811\u662f\u600e\u6837\u8fdb\u884c\u65cb\u8f6c\u5e73\u8861\u7684\u8fd9\u91cc\u5c31\u4e0d\u6982\u8ff0\u4e86\u3002<\/p>\n<p>\u90a3\u4e48\uff0c\u6211\u4eec\u4f7f\u7528AVL\u6811\u4f5c\u4e3a\u7d22\u5f15\u662f\u4e0d\u662f\u5c31\u53ef\u4ee5\u4e86\u5462\uff0c\u7b54\u6848\u662f\u5426\u5b9a\u7684\u3002\u6211\u4eec\u7684\u7d22\u5f15\u662f\u5b58\u50a8\u5230\u78c1\u76d8\u4e0a\u7684\uff0c\u6bcf\u6b21\u8fdb\u884c\u6570\u636e\u67e5\u8be2\u4f1a\u5c06\u78c1\u76d8\u91cc\u7684\u6570\u636e\u8bfb\u53d6\u5230\u5185\u5b58\u4e2d\uff0c\u5bf9\u78c1\u76d8io\u662f\u975e\u5e38\u8017\u65f6\u7684\uff0c\u800c\u5185\u5b58\u64cd\u4f5c\u975e\u5e38\u5feb\u3002\u8ba1\u7b97\u673a\u7684\u6700\u5c0f\u5b58\u50a8\u5355\u5143\u662f\u5757\uff08block\uff09\u9ed8\u8ba44k\u5927\u5c0f\uff0c\u8bfb\u53d6\u6570\u636e\u662f\u4e00\u5757\u4e00\u5757\u8bfb\u53d6\u7684\uff0c\u800c\u4e0d\u662f\u968f\u610f\u7684\u8bfb\u53d61\/2\u5757\u6570\u636e\uff0c\u5bf9\u5e94\u7684\u6211\u4eecMySQL\u5b58\u50a8\u6570\u636e\u4e5f\u662f\u4ee5\u9875\uff08page\uff09\u4e3a\u5355\u4f4d\u8fdb\u884c\u5b58\u50a8\uff0c\u9ed8\u8ba4\u4e3a16K\uff0816384B\uff09\uff0cMySQL\u5728\u8bfb\u53d6\u7684\u65f6\u5019\u4e5f\u662f\u4e00\u9875\u4e00\u9875\u8bfb\u53d6\u7684\u3002<\/p>\n<pre><code class=\"language-sql\">--\u4e0b\u9762\u7684\u8fd9\u4e2a\u547d\u4ee4\u5c31\u662f\u67e5\u8be2page\u5927\u5c0f\nMYSQL&gt; show variables like &#039;innodb_page_size&#039;;<\/code><\/pre>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-\u4e8c\u53c9\u67e5\u627e\u6811\u78c1\u76d8\u5206\u9875\u6570\u636e\u5b58\u50a8\u7ed3\u6784.png\" alt=\"MySQL\u7d22\u5f15-\u4e8c\u53c9\u67e5\u627e\u6811\u78c1\u76d8\u5206\u9875\u6570\u636e\u5b58\u50a8\u7ed3\u6784\" \/><\/p>\n<p>\u5982\u679c\u4f7f\u7528AVL\u6811\uff0c\u6211\u4eec\u7684\u4e00\u4e2a\u8282\u70b9\u5c31\u662f\u4e00\u9875\uff0c\u4f46\u662f\u4e00\u4e2a\u8282\u70b9\u662f16k\u554a\u5144\u5f1f\u4eec\uff0c\u4e00\u9875\u5c31\u653e\u4e00\u4e2a\u8282\u70b9\u80af\u5b9a\u662f\u592a\u6d6a\u8d39\u7a7a\u95f4\u4e86\uff0c\u800c\u4e14\u5982\u679c\u67091000w\u7684\u6570\u636e\uff0c\u90a3\u4e48\u4e8c\u53c9\u6811\u6df1\u5ea6\u662f55\uff0c\u6211\u4eec\u8981\u67e5\u627e\u4e00\u4e2a\u6570\u636eio\u7684\u6b21\u6570\u5c31\u6709\u70b9\u592a\u591a\u4e86\uff0c\u663e\u7136\u8fd9\u6837\u662f\u4e0d\u5408\u7406\u7684\uff0c\u6211\u4eec\u53ef\u4ee5\u600e\u4e48\u505a\u5462\uff1f<\/p>\n<h3>B-Tree(\u8bfb\u4f5c b\u6811 \u4e0d\u662fb\u51cf\u6811)<\/h3>\n<p>\u4e3a\u4e86\u89e3\u51b3AVL\u6d6a\u8d39\u78c1\u76d8\u7a7a\u95f4\u4ee5\u53caIO\u6b21\u6570\u8fc7\u591a\u7684\u95ee\u9898\uff0c\u6211\u4eec\u5728\u4e00\u4e2a\u8282\u70b9\u4e2d\u591a\u5b58\u50a8\u4e00\u4e9b\u6570\u636e\uff0c\u4e4b\u524d\u6211\u4eec\u653e\u4e00\u4e2a\uff0c\u73b0\u5728\u6211\u4eec\u653e\u591a\u4e2a\u3002\u5982\u679c\u653eint\u503c\uff084B\uff09\u6211\u4eec\u8fd1\u4e4e\u53ef\u4ee5\u653e4096\u4e2a\u503c\uff0c\u5f53\u7136\u7d22\u5f15\u91cc\u9762\u8fd8\u5305\u542b\u5176\u4ed6\u7684\u6570\u636e\uff0c\u4e0d\u80fd\u591f\u653e\u8fd9\u4e48\u591a\uff0c\u4f46\u662f\u8fd9\u4e5f\u662f\u8db3\u591f\u7684\u591a\u4e86\u3002<\/p>\n<p>\u8fd9\u6837\u4e00\u4e2a\u8282\u70b9\u7684\u503c\u591a\u4e86\u90a3\u4e48\u6811\u7684\u5206\u53c9\u80af\u5b9a\u5c31\u591a\u4e86\uff0c\u5047\u5982\u4e00\u4e2a\u8282\u70b9\u53ef\u4ee5\u5b58\u50a81000\u7684\u503c\uff0c\u90a3\u4e481000 <em> 1000 <\/em> 1000 = 10\u4ebf\u8282\u70b9\uff0c3\u5c42\u7684\u7ed3\u6784\u5c31\u80fd\u5b58\u50a810\u4ebf\u7684\u6570\u636e\uff0c\u8fd9\u6837\u662f\u4e0d\u662f\u6700\u591aIO3\u6b21\u5c31\u8db3\u591f\u4e86\u5462\u3002<\/p>\n<p>\u6240\u4ee5AVL\u7684\u8fdb\u5316\u4f53B-Tree\u51fa\u73b0\u4e86\uff0cB-Tree\u7684\u5168\u540d\u662f\u591a\u8def\u5e73\u8861\u67e5\u627e\u6811\uff0cB-tree\u4e2d\uff0c\u6bcf\u4e2a\u7ed3\u70b9\u5305\u542b\uff1a<\/p>\n<ul>\n<li>\u672c\u7ed3\u70b9\u6240\u542b\u5173\u952e\u5b57\u7684\u4e2a\u6570<\/li>\n<li>\u6307\u5411\u7236\u7ed3\u70b9\u7684\u6307\u9488<\/li>\n<li>\u5173\u952e\u5b57<\/li>\n<li>\u6307\u5411\u5b50\u7ed3\u70b9\u7684\u6307\u9488<\/li>\n<\/ul>\n<p>\u5bf9\u4e8e\u4e00\u68f5m\u9636B-Tree\uff0c\u6bcf\u4e2a\u7ed3\u70b9\u81f3\u591a\u53ef\u4ee5\u62e5\u6709m\u4e2a\u5b50\u7ed3\u70b9\u3002\u5404\u7ed3\u70b9\u7684\u5173\u952e\u5b57\u548c\u53ef\u4ee5\u62e5\u6709\u7684\u5b50\u7ed3\u70b9\u6570\u90fd\u6709\u9650\u5236\uff0c\u89c4\u5b9am\u9636B-Tree\u4e2d\uff0c\u6839\u7ed3\u70b9\u81f3\u5c11\u67092\u4e2a\u5b50\u7ed3\u70b9\uff0c\u9664\u975e\u6839\u7ed3\u70b9\u4e3a\u53f6\u5b50\u8282\u70b9\uff0c\u76f8\u5e94\u7684\uff0c\u6839\u7ed3\u70b9\u4e2d\u5173\u952e\u5b57\u7684\u4e2a\u6570\u4e3a<code>1~m-1<\/code>\uff1b\u975e\u6839\u7ed3\u70b9\u81f3\u5c11\u6709<code>[m\/2]<\/code>\uff08[]\uff0c\u5411\u4e0a\u53d6\u6574\uff09\u4e2a\u5b50\u7ed3\u70b9\uff0c\u76f8\u5e94\u7684\uff0c\u5173\u952e\u5b57\u4e2a\u6570\u4e3a<code>[m\/2]-1 ~ m-1<\/code>\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-m\u9636B-Tree\u8282\u70b9\u5206\u5e03.png\" alt=\"MySQL\u7d22\u5f15-m\u9636B-Tree\u8282\u70b9\u5206\u5e03\" \/><\/p>\n<p>B-Tree\u7684\u5ea6\u662f\u53ef\u4ee5\u8bbe\u7f6e\u7684\uff0c\u4e0a\u9762\u622a\u56fe\u6211\u8bbe\u7f6e\u7684\u5ea6\u4e3a3\uff08\u8fbe\u52303\u5373\u8fdb\u884c\u5206\u88c2\uff09\uff0c\u771f\u6b63\u7d22\u5f15\u5ea6\u5c31\u6bd4\u8f83\u5927\u4e86\uff0c\u4e00\u822c\u5ea6\u7684\u5927\u5c0f\u4f1a\u6839\u636e\u7d22\u5f15\u5217\u7684\u7c7b\u578b\u8fdb\u884c\u53d8\u66f4\u3002\u5927\u5bb6\u5229\u7528\u597d\u8fd9\u4e2a\u7f51\u7ad9Data Structure Visualizations\uff0c\u81ea\u5df1\u591a\u505a\u4e00\u4e9b\u6a21\u62df\u4f1a\u7406\u89e3\u7684\u66f4\u52a0\u6df1\u523b\u3002<\/p>\n<p>\u8bf4\u5230\u8fd9\u91cc\u6211\u4eec\u8d8a\u6765\u8d8a\u63a5\u8fd1\u771f\u76f8\u4e86\uff0c\u6211\u4eecMySQL\u7d22\u5f15\u7684\u6570\u636e\u7ed3\u6784\u5230\u5e95\u662f\u4e0d\u662fB-Tree\u5462\uff1f<\/p>\n<p>\u8fd9\u5c31\u9700\u8981\u8bf4\u9053MySQL\u8bbe\u8ba1\u7684\u53e6\u5916\u4e00\u4e2a\u6982\u5ff5\u4e86\u2014\u2014\u805a\u96c6\u7d22\u5f15\u548c\u8f85\u52a9\u7d22\u5f15\u3002<\/p>\n<h2>\u805a\u96c6\u7d22\u5f15\u548c\u8f85\u52a9\u7d22\u5f15\uff08\u975e\u805a\u96c6\u7d22\u5f15\uff09<\/h2>\n<p>\u4ec0\u4e48\u662f\u805a\u96c6\u7d22\u5f15\uff08clustered index organize table\uff09\uff0c\u805a\u96c6\u7d22\u5f15\u4e2d\u952e\u503c\u7684\u903b\u8f91\u987a\u5e8f\u548c\u8868\u4e2d\u76f8\u5e94\u884c\u7684\u7269\u7406\u987a\u5e8f\u76f8\u540c\u3002<\/p>\n<p>\u805a\u96c6\u7d22\u5f15\u7c7b\u4f3c\u4e8e\u7535\u8bdd\u7c3f\uff0c\u540e\u8005\u6309\u59d3\u6c0f\u6392\u5217\u6570\u636e\u3002\u7531\u4e8e\u805a\u96c6\u7d22\u5f15\u89c4\u5b9a\u6570\u636e\u5728\u8868\u4e2d\u7684\u7269\u7406\u5b58\u50a8\u987a\u5e8f\uff0c\u56e0\u6b64\u4e00\u4e2a\u8868\u53ea\u80fd\u5305\u542b\u4e00\u4e2a\u805a\u96c6\u7d22\u5f15\u3002\u4f46\u8be5\u7d22\u5f15\u53ef\u4ee5\u5305\u542b\u591a\u4e2a\u5217\uff08\u8054\u5408\u7d22\u5f15\uff09\uff0c\u5c31\u50cf\u7535\u8bdd\u7c3f\u6309\u59d3\u6c0f\u548c\u540d\u5b57\u8fdb\u884c\u7ec4\u7ec7\u4e00\u6837\uff0c\u4f46\u662f\u5728InnoDB\u7684\u8bbe\u8ba1\u4e2d\u805a\u96c6\u7d22\u5f15\u5305\u542b\u6574\u884c\u7684\u6570\u636e\uff0c\u6240\u4ee5InnoDB\u4e2d\u7d22\u5f15\u5c31\u662f\u6570\u636e\u672c\u8eab\uff0c\u8fd9\u5c31\u662f\u5927\u5bb6\u5e38\u8bf4\u7684\u7d22\u5f15\u5373\u6570\u636e\u3002<\/p>\n<p>\u5b98\u65b9\u89e3\u91ca\u805a\u96c6\u7d22\u5f15:<\/p>\n<blockquote>\n<p>Every InnoDB table has a special index called the clustered index where the data for the rows is stored. Typically, the clustered index is synonymous with the primary key.<\/p>\n<\/blockquote>\n<p>\u6bcf\u4e2aInnoDB\u8868\u90fd\u6709\u4e00\u4e2a\u7279\u6b8a\u7684\u7d22\u5f15\uff0c\u79f0\u4e3a\u805a\u7c07\u7d22\u5f15\uff0c\u7528\u4e8e\u5b58\u50a8\u884c\u6570\u636e\u3002\u901a\u5e38\uff0c\u805a\u7c07\u7d22\u5f15\u4e0e\u4e3b\u952e\u540c\u4e49\u3002<\/p>\n<p>\u975e\u805a\u96c6\u7d22\u5f15\u7684\u8bdd\u5176\u5b9e\u5c31\u662f\u4e00\u4e2a\u666e\u901a\u7d22\u5f15\uff0c\u4f46\u662f\u975e\u805a\u96c6\u7d22\u5f15\u4e0d\u5b58\u50a8\u5168\u90e8\u6570\u636e\uff0c\u53ea\u5b58\u50a8\u805a\u96c6\u7d22\u5f15\u7684\u503c\uff08\u4e00\u822c\u4e3a\u4e3b\u952eid\uff09\u3002<\/p>\n<p>\u6240\u4ee5\u6211\u4eec\u5982\u679c\u4f7f\u7528B-Tree\u6765\u4f5c\u4e3a\u7d22\u5f15\u7ed3\u6784\u7684\u8bdd\uff0c\u5982\u679c\u6570\u636e\u884c\u8fc7\u5927\uff0c\u90a3\u4e48\u4e00\u4e2a\u9875\u5b58\u50a8\u7684\u6570\u636e\u5c31\u4f1a\u5927\u5927\u51cf\u5c11\uff0c\u8fd9\u5c31\u8fdd\u80cc\u4e86\u6211\u4eecB-Tree\u7684\u521d\u8877\u4e86\u2014\u2014\u5728\u4e00\u4e2a\u9875\u4e2d\u5c3d\u53ef\u80fd\u7684\u5b58\u50a8\u591a\u7684\u6570\u636e\u3002\u50cf\u524d\u9762\u8bf4\u7684\u5982\u679c\u6211\u4eec\u5b58\u50a8int\u7c7b\u578b\u53ef\u4ee5\u5b58\u50a8\u51e0\u5343\u4e2a\uff0c\u90a3\u4e48\u5982\u679c\u6211\u4eec\u5b58\u50a8\u6574\u884c\u6570\u636e\u5462\uff0c\u53ef\u80fd\u53ea\u80fd\u5b58\u50a8\u4e09\u56db\u4e2a\uff0c\u90a3\u4e48\u6811\u7684\u6df1\u5ea6\u5c31\u4f1a\u5927\u5927\u589e\u52a0\uff0c\u800c\u4e14\u6211\u4eec\u7684\u5185\u5b58\u7a7a\u95f4\u662f\u6709\u9650\u7684\uff0c\u6bcf\u6b21MySQL\u9884\u8bfb\u8fdb\u6765\u7684\u7d22\u5f15\u6570\u91cf\u6709\u9650\uff0c\u8fd9\u8fdb\u4e00\u6b65\u5bfc\u81f4\u641c\u7d22\u6548\u7387\u53d8\u5dee\u3002<\/p>\n<p>\u6240\u4ee5\u6211\u4eec\u60f3\u8981\u7684\u7d22\u5f15\u5c31\u662f\u53ea\u5305\u542b\u7d22\u5f15\u5b57\u6bb5\uff0c\u4e0d\u5e94\u8be5\u5305\u542b\u5168\u90e8\u7684\u6570\u636e \uff0c\u770b\u4e0b\u9762\u7684\u5bf9\u6bd4\u56fe\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-B-Tree\u5b58\u50a8\u7d22\u5f15\u53ca\u6570\u636e.png\" alt=\"MySQL\u7d22\u5f15-B-Tree\u5b58\u50a8\u7d22\u5f15\u53ca\u6570\u636e\" \/><\/p>\n<p>\u597d\u4e86\uff0c\u8be5\u4e3b\u89d2\u51fa\u573a\u4e86\u3002<\/p>\n<h2>B+Tree<\/h2>\n<p>\u4e3a\u4e86\u89e3\u51b3\u53ea\u5b58\u50a8\u7d22\u5f15\u7684\u95ee\u9898\uff0cB-Tree\u7684plus\u7248\u672c\u6a2a\u7a7a\u51fa\u4e16\uff0c\u90a3\u5c31\u662fB+\u6811\u3002<\/p>\n<p>B+ \u6811\u662f\u4e00\u79cd\u6811\u6570\u636e\u7ed3\u6784\uff0c\u662f\u4e00\u4e2an\u53c9\u6811\uff0c\u6bcf\u4e2a\u8282\u70b9\u901a\u5e38\u6709\u591a\u4e2a\u5b69\u5b50\uff0c\u4e00\u9897B+\u6811\u5305\u542b\u6839\u8282\u70b9\u3001\u5185\u90e8\u8282\u70b9\u548c\u53f6\u5b50\u8282\u70b9\uff0c\u548cB-Tree\u51e0\u4e4e\u4e00\u6837\uff0c\u53ea\u4e0d\u8fc7B+Tree\u4e0d\u518d\u5305\u542b\u6574\u884c\u7684\u6570\u636e\u4e86\u3002B+ \u6811\u901a\u5e38\u7528\u4e8e\u6570\u636e\u5e93\u548c\u64cd\u4f5c\u7cfb\u7edf\u7684\u6587\u4ef6\u7cfb\u7edf\u4e2d\u3002B+ \u6811\u7684\u7279\u70b9\u662f\u80fd\u591f\u4fdd\u6301\u6570\u636e\u7a33\u5b9a\u6709\u5e8f\uff0c\u5176\u63d2\u5165\u4e0e\u4fee\u6539\u62e5\u6709\u8f83\u7a33\u5b9a\u7684\u5bf9\u6570\u65f6\u95f4\u590d\u6742\u5ea6\u3002B+ \u6811\u5143\u7d20\u81ea\u5e95\u5411\u4e0a\u63d2\u5165\u3002<\/p>\n<p>\u4e00\u4e2am\u9636\u7684B\u6811\u5177\u6709\u5982\u4e0b\u51e0\u4e2a\u7279\u5f81\uff1a<\/p>\n<ul>\n<li>\u6839\u7ed3\u70b9\u81f3\u5c11\u6709\u4e24\u4e2a\u5b50\u5973<\/li>\n<li>\u6bcf\u4e2a\u4e2d\u95f4\u8282\u70b9\u90fd\u81f3\u5c11\u5305\u542b<code>ceil(m \/ 2)<\/code>\u4e2a\u5b69\u5b50\uff0c\u6700\u591a\u6709m\u4e2a\u5b69\u5b50<\/li>\n<li>\u6bcf\u4e00\u4e2a\u53f6\u5b50\u8282\u70b9\u90fd\u5305\u542bk-1\u4e2a\u5143\u7d20\uff0c\u5176\u4e2d m\/2 &lt;= k &lt;= m<\/li>\n<li>\u6240\u6709\u7684\u53f6\u5b50\u7ed3\u70b9\u90fd\u4f4d\u4e8e\u540c\u4e00\u5c42<\/li>\n<li>\u6bcf\u4e2a\u8282\u70b9\u4e2d\u7684\u5143\u7d20\u4ece\u5c0f\u5230\u5927\u6392\u5217\uff0c\u8282\u70b9\u5f53\u4e2dk-1\u4e2a\u5143\u7d20\u6b63\u597d\u662fk\u4e2a\u5b69\u5b50\u5305\u542b\u7684\u5143\u7d20\u7684\u503c\u57df\u5206\u5212<\/li>\n<\/ul>\n<p>\u4e0b\u9762\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u5c55\u793a\u56fe\uff0c\u8ba9\u5927\u5bb6\u4e86\u89e3B+Tree\u7684\u6570\u636e\u7ed3\u6784\u3002\u76f8\u5bf9\u4e8eB-Tree\u6700\u5927\u7684\u53d8\u5316\u6709\u4e09\u70b9\uff1a<\/p>\n<ul>\n<li>\u6570\u636e\u4e0b\u79fb\uff0c\u6240\u6709\u7684\u975e\u53f6\u5b50\u8282\u70b9\u4e0d\u518d\u5b58\u50a8\u6570\u636e\u800c\u5c06\u6570\u636e\u5168\u90e8\u5b58\u50a8\u5230\u53f6\u5b50\u8282\u70b9<\/li>\n<li>\u6240\u6709\u7684\u53f6\u5b50\u8282\u70b9\u90fd\u6709\u4e00\u4e2a\u53cc\u5411\u7684\u6307\u9488\uff0c\u505a\u4e86\u4e00\u4e2a\u53cc\u5411\u94fe\u8868<\/li>\n<li>\u4f7f\u7528B+Tree\u67e5\u8be2\u6b21\u6570\u76f8\u5bf9\u56fa\u5b9a\uff0c\u56e0\u4e3a\u6570\u636e\u90fd\u5728\u53f6\u5b50\u8282\u70b9\uff0c\u6bcf\u4e00\u4e2a\u5c42\u7ea7\u90fd\u4f1a\u88ab\u52a0\u8f7d\u626b\u63cf<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-B+Tree\u78c1\u76d8\u5206\u9875\u6570\u636e\u5b58\u50a8\u7ed3\u6784.png\" alt=\"MySQL\u7d22\u5f15-B+Tree\u78c1\u76d8\u5206\u9875\u6570\u636e\u5b58\u50a8\u7ed3\u6784\" \/><\/p>\n<p>\u8fd8\u6709\u4e00\u70b9\u4e3a\u4ec0\u4e48\u4f7f\u7528B+Tree\u5462\uff0c\u56e0\u4e3aMySQL\u67e5\u8be2\u8def\u5f84\u7684\u9009\u62e9\u662f\u6839\u636ecost\uff08cost = cpu cost + io cost\uff09\u8ba1\u7b97\u7684\uff0c\u56e0\u4e3a\u7d22\u5f15\u7684\u67e5\u8be2\u6b21\u6570\u56fa\u5b9a\uff0c\u6240\u4ee5io cost\u8ba1\u7b97\u4e2d\u4ed6\u5c31\u53ef\u4ee5\u76f4\u63a5\u820d\u53bb\u4e86\uff0c\u51cf\u8f7b\u4e86MySQL\u7684\u8ba1\u7b97\u91cf\u3002\u5177\u4f53cost\u7684\u8ba1\u7b97\u4e0d\u5728\u672c\u7bc7\u6587\u7ae0\u5c55\u5f00\u3002<\/p>\n<ul>\n<li><code>cpu cost<\/code>\uff1aserver\u5c42\u5bf9\u8fd4\u56de\u7684\u8bb0\u5f55\u6570\u7684compare\u65f6\u95f4<\/li>\n<li><code>io cost<\/code>\uff1a\u5f15\u64ce\u5c42\u6839\u636e\u626b\u63cf\u8bb0\u5f55\u7684\u8bb0\u5f55\u6570\u8ba1\u7b97cost<\/li>\n<\/ul>\n<p>\u53e6\u5916\u9700\u8981\u8865\u5145\u7684\u4e00\u70b9\uff0c\u6211\u4eec\u5df2\u7ecf\u4e86\u89e3\u5230\u4e86InnoDB\u5f15\u64ce\u4e2d\u6570\u636e\u548c\u7d22\u5f15\u662f\u5728\u4e00\u8d77\u7684\uff0c\u800cMyISAM\u5f15\u64ce\u6570\u636e\u548c\u7d22\u5f15\u662f\u5206\u5f00\u7684\uff0c\u8fd9\u4e2a\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u67e5\u770b\u672c\u5730\u6587\u4ef6\u53ef\u4ee5\u770b\u5230\u3002<\/p>\n<pre><code class=\"language-sql\">MYSQL&gt; show variables like &#039;datadir&#039;;<\/code><\/pre>\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u53ef\u4ee5\u8ba9\u4f60\u770b\u5230MySQL\u7684\u5e93\u6587\u4ef6\u5b58\u50a8\u4f4d\u7f6e\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-MySQL\u5f15\u64ce\u5e93\u6587\u4ef6\u5b58\u50a8.png\" alt=\"MySQL\u7d22\u5f15-MySQL\u5f15\u64ce\u5e93\u6587\u4ef6\u5b58\u50a8\" \/><\/p>\n<p>\u4ee5\u6211\u672c\u673a\u4e3a\u4f8b\uff0c<code>user_innodb<\/code>\u8868\u7684\u5b58\u50a8\u5f15\u64ce\u662fInnoDB\uff0c\u4ed6\u6709\u4e24\u4e2a\u6587\u4ef6<code>.frm<\/code>\uff08\u8868\u63cf\u8ff0\u6587\u4ef6\uff09\u548c<code>.ibd<\/code>\uff08\u7d22\u5f15\u548c\u6570\u636e\u6587\u4ef6\uff09<\/p>\n<p><code>user_myisam<\/code>\u8868\u7684\u5b58\u50a8\u5f15\u64ce\u662fMyISAM\uff0c\u4ed6\u4f1a\u6709\u4e09\u4e2a\u6587\u4ef6<code>.MYD<\/code>\uff08\u6570\u636e\u6587\u4ef6\uff09\u3001<code>.MYI<\/code>\uff08\u7d22\u5f15\u6587\u4ef6\uff09\u548c<code>.frm<\/code>\uff08\u8868\u63cf\u8ff0\u6587\u4ef6\uff09\u3002MYD\u5176\u4e2dD\u5c31\u662fdata\u7684\u610f\u601dI\u5c31\u662findex\u7684\u610f\u601d\u8fd9\u6837\u5c31\u8bb0\u4f4f\u4e86\u3002ibd\u731c\u6d4b\u4e0b<code>index + B+Tree + data<\/code><\/p>\n<p>MyISAM\u5f15\u64ce\u7684\u7d22\u5f15\u6587\u4ef6\u6301\u6709\u7684\u662f\u6570\u636e\u6587\u4ef6\u7684\u5730\u5740\u5f15\u7528\u3002<\/p>\n<p>MyISAM\u548cInnoDB\u7684\u7d22\u5f15\u533a\u522b\uff1a<\/p>\n<ul>\n<li>InnoDB\u6570\u636e\u548c\u7d22\u5f15\u5728\u4e00\u8d77\uff08\u6570\u636e\u5373\u7d22\u5f15\uff0c\u7d22\u5f15\u5373\u6570\u636e\uff09\uff0c\u800cMyISAM\u662f\u5206\u5f00\u5b58\u50a8\u7684<\/li>\n<li>InnoDB\u7d22\u5f15\u662f\u6709\u4e3b\u6b21\u7684\uff0c\u4e5f\u5c31\u662f\u533a\u5206\u805a\u96c6\u7d22\u5f15\u548c\u975e\u805a\u96c6\u7d22\u5f15\u3002\u800cMyISAM\u662f\u4e0d\u533a\u5206\u4e3b\u6b21\u7684<\/li>\n<\/ul>\n<h3>\u975e\u805a\u96c6\u7d22\u5f15\u662f\u600e\u4e48\u67e5\u627e\u6570\u636e\u7684<\/h3>\n<p>\u4e0a\u9762\u6211\u4eec\u5df2\u7ecf\u4e86\u89e3\u4e86\u805a\u96c6\u7d22\u5f15\uff08\u4e00\u822c\u662f\u4e3b\u952e\u7d22\u5f15\uff09\u662f\u5982\u4f55\u83b7\u53d6\u7684\uff0c\u90a3\u975e\u805a\u96c6\u7d22\u5f15\u5462\uff1f\u4e0b\u9762\u6211\u4eec\u770b\u4e00\u5f20\u56fe\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-\u805a\u96c6\u7d22\u5f15\u53ca\u975e\u805a\u96c6\u7d22\u67e5\u8be2\u6570\u636e.png\" alt=\"MySQL\u7d22\u5f15-\u805a\u96c6\u7d22\u5f15\u53ca\u975e\u805a\u96c6\u7d22\u67e5\u8be2\u6570\u636e\" \/><\/p>\n<p>\u4ece\u8fd9\u4e2a\u56fe\u6211\u4eec\u5c31\u53ef\u4ee5\u76f4\u89c2\u7684\u770b\u5230\uff0c\u975e\u805a\u96c6\u7d22\u5f15\u662f\u600e\u4e48\u67e5\u8be2\u6570\u636e\u7684\u3002\u6bcf\u6b21\u67e5\u975e\u805a\u96c6\u7d22\u5f15\u90fd\u4f1a\u518d\u6b21\u901a\u8fc7\u4e3b\u952e\u518d\u6b21\u53bb\u805a\u96c6\u7d22\u5f15\u91cc\u9762\u67e5\u8be2\u3002<\/p>\n<p>\u8fd9\u91cc\u6211\u4eec\u518d\u5f15\u7533\u51fa\u4e00\u4e2a\u6982\u5ff5\u90a3\u5c31\u662f\u56de\u8868\uff0c\u6211\u4eec\u4e0a\u56fe\u6240\u63cf\u8ff0\u7684\u6d41\u7a0b\u5c31\u662f\u56de\u8868\u3002\u56de\u8868\u7684\u539f\u56e0\u662f\u6211\u4eec\u9700\u8981\u83b7\u53d6\u7684\u662f\u6574\u884c\u6216\u8005\u662f\u5305\u542b\u975e\u7d22\u5f15\u5b57\u6bb5\u7684\u6570\u636e\uff0c\u56e0\u975e\u805a\u96c6\u7d22\u5f15\u6ca1\u6709\u8be5\u5b57\u6bb5\u6240\u4ee5\u9700\u8981\u56de\u8868\u67e5\u8be2\u3002<\/p>\n<p>\u56e0\u6b64\u6211\u4eec\u5efa\u8bae\u5c3d\u91cf\u5c11\u7528<code>SELECT * FROM TABLE<\/code>\uff0c\u4f8b\u5982\u6211\u4eec\u67e5\u8be2<code>SELECT * FROM USER WHERE name LIKE &#039;\u5f20%&#039;<\/code>\uff0c\u4f46\u662f\u6211\u4eec\u5176\u5b9e\u60f3\u8981\u7684\u53ea\u662f\u540d\u5b57\u7684\u96c6\u5408\u800c\u5df2\uff0c\u90a3\u4e48\u6211\u4eec\u5c31\u53ef\u4ee5\u6539\u9020\u6210<code>SELECT name FROM USER WHERE name LIKE &#039;\u5f20%&#039;<\/code>,\u524d\u8005\u4f1a\u56de\u8868\u67e5\u8be2\u800c\u540e\u8005\u4e0d\u4f1a\uff0c\u8fd9\u6837\u5c31\u51cf\u5c11\u4e86\u6570\u636e\u67e5\u8be2\u7684\u65f6\u95f4\u540c\u65f6\u4e5f\u51cf\u5c11\u4e86\u6570\u636e\u5e93\u7684\u538b\u529b\u3002<\/p>\n<h2>HASH\u7d22\u5f15<\/h2>\n<p>Hash\u7d22\u5f15\u5c31\u662f\u5c06\u7d22\u5f15\u5b57\u6bb5\u8fdb\u884chash\u5b58\u50a8\uff0c\u6574\u4e2aHash\u7d22\u5f15\u7684\u7ed3\u6784\u662fHash\u8868+\u94fe\u8868\uff08\u56e0\u4e3a\u4f1a\u5b58\u5728hash\u51b2\u7a81\uff09\u3002<\/p>\n<p>\u4e0d\u77e5\u9053\u5927\u5bb6\u6709\u6ca1\u6709\u78b0\u5230\u8fc7\u8fd9\u4e48\u4e00\u79cd\u60c5\u51b5\uff0c\u6211\u4eec\u5728\u7ed9\u6570\u636e\u5e93\u521b\u5efa\u7d22\u5f15\u7684\u65f6\u5019\u9009\u62e9\u4e86HASH\u4f46\u662f\u521b\u5efa\u5b8c\u6210\u540e\u4f1a\u9ed8\u8ba4\u7684\u7ed9\u6211\u4eec\u6539\u6210B+Tree\u7d22\u5f15\uff01\u6ca1\u78b0\u5230\u7684\u5c0f\u4f19\u4f34\u81ea\u5df1\u53bb\u8bd5\u4e00\u4e0b\u770b\u770b\u662f\u4e0d\u662f\u8fd9\u6837\u3002<\/p>\n<p>\u7ffb\u4e86\u4e00\u4e0b\u5b98\u7f51\u627e\u5230\u8fd9\u4e48\u4e00\u4e2a\u56fe\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-MySQL\u5f15\u64ce\u652f\u6301\u7d22\u5f15\u7c7b\u578b.png\" alt=\"MySQL\u7d22\u5f15-MySQL\u5f15\u64ce\u652f\u6301\u7d22\u5f15\u7c7b\u578b\" \/><\/p>\n<p>InnoDB\u548cMyISAM\u7adf\u7136\u4e0d\u652f\u6301\u521b\u5efaHASH\u7d22\u5f15\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-InnoDB\u548cMyISAM\u5f15\u64ce\u652f\u6301\u7d22\u5f15\u8be6\u60c5.png\" alt=\"MySQL\u7d22\u5f15-InnoDB\u548cMyISAM\u5f15\u64ce\u652f\u6301\u7d22\u5f15\u8be6\u60c5\" \/><\/p>\n<p>\u884c\u4e86\uff0c\u8fd9\u4e0b\u6b21\u4e00\u5df4\u638c\u6253\u7684\u8111\u74dc\u5b50\u55e1\u55e1\u7684\uff0c\u53ea\u6709<code>MEMORY\/NDB<\/code>\u624d\u80fd\u591f\u521b\u5efaHash\u7d22\u5f15\u3002<\/p>\n<p>\u90a3InnoDB\u91cc\u6709Hash\u7d22\u5f15\u5417\uff1f<\/p>\n<h2>Hash\u7d22\u5f15\u5728InnoDB\u4e2d\u7684\u4f7f\u7528<\/h2>\n<p>\u5728\u5b98\u7f51\u7684InnoDB\u67b6\u6784\u4e2d\u6709\u8fd9\u4e48\u4e00\u5f20\u56fe\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-Hash\u7d22\u5f15\u5728InnoDB\u4e2d\u7684\u4f7f\u7528.png\" alt=\"MySQL\u7d22\u5f15-Hash\u7d22\u5f15\u5728InnoDB\u4e2d\u7684\u4f7f\u7528\" \/><\/p>\n<p>\u5728\u6211\u4eecBuffer Pool\u4e2d\u6709\u4e2aAdaptive Hash Index\uff08\u81ea\u9002\u5e94hash\u7d22\u5f15\uff09\u3002\u5b98\u7f51\u662f\u8fd9\u4e48\u4ecb\u7ecd\u7684\u3002<\/p>\n<blockquote>\n<p>The adaptive hash index feature enables InnoDB to perform more like an in-memory database on systems with appropriate combinations of workload and sufficient memory for the buffer pool without sacrificing transactional features or reliability. The adaptive hash index feature is enabled by the innodb_adaptive_hash_index variable, or turned off at server startup by &#8211;skip-innodb-adaptive-hash-index. Based on the observed pattern of searches, a hash index is built using a prefix of the index key. The prefix can be any length, and it may be that only some values in the B-tree appear in the hash index. Hash indexes are built on demand for the pages of the index that are accessed often. If a table fits almost entirely in main memory, a hash index can speed up queries by enabling direct lookup of any element, turning the index value into a sort of pointer. InnoDB has a mechanism that monitors index searches. If InnoDB notices that queries could benefit from building a hash index, it does so automatically. With some workloads, the speedup from hash index lookups greatly outweighs the extra work to monitor index lookups and maintain the hash index structure. Access to the adaptive hash index can sometimes become a source of contention under heavy workloads, such as multiple concurrent joins. Queries with LIKE operators and % wildcards also tend not to benefit. For workloads that do not benefit from the adaptive hash index feature, turning it off reduces unnecessary performance overhead. Because it is difficult to predict in advance whether the adaptive hash index feature is appropriate for a particular system and workload, consider running benchmarks with it enabled and disabled. Architectural changes in MySQL 5.6 make it more suitable to disable the adaptive hash index feature than in earlier releases.<\/p>\n<\/blockquote>\n<p>\u4ed6\u8bf4\u81ea\u9002\u5e94\u54c8\u5e0c\u7d22\u5f15\u53ef\u4ee5\u5728InnoDB\u4e0d\u727a\u7272\u4e8b\u52a1\u529f\u80fd\u6216\u53ef\u9760\u6027\u7684\u60c5\u51b5\u4e0b\u521b\u5efa\uff0c\u4f46\u662f\u4ed6\u7684\u4f7f\u7528\u8303\u56f4\u5c31\u662fBuffer Pool\uff0c\u90a3\u4e48\u6700\u7ec8\u8fd9\u4e2ahash\u7d22\u5f15\u4ecd\u7136\u53ea\u662f\u4e00\u4e2a\u5185\u5b58\u7d22\u5f15\u3002\u800c\u6211\u4eecB+Tree\u7d22\u5f15\u662f\u5b58\u50a8\u5728\u78c1\u76d8\u7684\uff0c\u4e00\u822c\u53ea\u6709\u6839\u8282\u70b9\u5e38\u9a7b\u5185\u5b58\u3002<\/p>\n<p>\u662f\u5426\u4f7f\u7528\u81ea\u9002\u5e94hash\u7d22\u5f15\u7531\u53c2\u6570<code>innodb_adaptive_hash_index<\/code>\u63a7\u5236\uff0c\u5177\u4f53\u53c2\u8003:<\/p>\n<blockquote>\n<p><a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/innodb-parameters.html#sysvar_innodb_adaptive_hash_index\">https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/innodb-parameters.html#sysvar_innodb_adaptive_hash_index<\/a><\/p>\n<\/blockquote>\n<h2>Hash\u7d22\u5f15\u7684\u4f18\u7f3a\u70b9<\/h2>\n<p>\u7531\u4e8eHash\u662f\u57fa\u4e8e\u5185\u5b58\u7684\u7d22\u5f15\uff0c\u90a3\u4e48\u4ed6\u7684\u68c0\u7d22\u6548\u7387\u662f\u975e\u5e38\u5feb\u7684\uff0c\u90a3\u65e2\u7136Hash\u7d22\u5f15\u6548\u7387\u8fd9\u4e2a\u9ad8\uff0c\u6211\u4eec\u662f\u4e0d\u662f\u90fd\u9700\u7528Hash\u7d22\u5f15\u554a\u3002<\/p>\n<p>\u6211\u89c9\u5f97hash\u7d22\u5f15\u7684\u4f18\u70b9\u53ea\u6709\u4e00\u4e2a\uff0c\u90a3\u5c31\u662f\u5feb\uff0c\u4e0d\u9700\u8981\u78c1\u76d8IO\uff0c\u76f4\u63a5\u5185\u5b58\u4e00\u6b21\u6027\u641e\u5b9a\u3002\u4f46\u662f\u8981\u8bf4\u4ed6\u7684\u7f3a\u70b9\u53ef\u771f\u7684\u662f\u592a\u591a\u4e86\u3002<\/p>\n<ul>\n<li>\n<p><strong>Hash\u7d22\u5f15\u4ec5\u4ec5\u80fd\u6ee1\u8db3&quot;=&quot;,&quot;IN&quot;\u548c&quot;&lt;=&gt;&quot;\u67e5\u8be2\uff0c\u4e0d\u80fd\u4f7f\u7528\u8303\u56f4\u67e5\u8be2<\/strong>\u3002\u54c8\u5e0c\u7d22\u5f15\u53ea\u652f\u6301\u7b49\u503c\u6bd4\u8f83\u67e5\u8be2\uff0c\u5305\u62ec\uff1d\u3001IN \u3001&lt;=&gt; (\u6ce8\u610f&lt;&gt;\u548c&lt;=&gt;\u662f\u4e0d\u540c\u7684\u64cd\u4f5c\uff09\u3002\u4e5f\u4e0d\u652f\u6301\u4efb\u4f55\u8303\u56f4\u67e5\u8be2\uff0c\u4f8b\u5982<code>WHERE price &gt; 100<\/code><\/p>\n<\/li>\n<li>\n<p><strong>\u7531\u4e8eHash\u7d22\u5f15\u6bd4\u8f83\u7684\u662f\u8fdb\u884cHash\u8fd0\u7b97\u4e4b\u540e\u7684Hash\u503c<\/strong>\uff0c\u6240\u4ee5\u5b83\u53ea\u80fd\u7528\u4e8e\u7b49\u503c\u7684\u8fc7\u6ee4\uff0c\u4e0d\u80fd\u7528\u4e8e\u57fa\u4e8e\u8303\u56f4\u7684\u8fc7\u6ee4\uff0c\u56e0\u4e3a\u7ecf\u8fc7\u76f8\u5e94\u7684Hash\u7b97\u6cd5\u5904\u7406\u4e4b\u540e\u7684Hash\u503c\u7684\u5927\u5c0f\u5173\u7cfb\uff0c\u5e76\u4e0d\u80fd\u4fdd\u8bc1\u548cHash\u8fd0\u7b97\u524d\u5b8c\u5168\u4e00\u6837<\/p>\n<\/li>\n<li>\n<p><strong>Hash\u7d22\u5f15\u65e0\u6cd5\u88ab\u7528\u6765\u907f\u514d\u6570\u636e\u7684\u6392\u5e8f\u64cd\u4f5c<\/strong>\u3002\u7531\u4e8eHash\u7d22\u5f15\u4e2d\u5b58\u653e\u7684\u662f\u7ecf\u8fc7Hash\u8ba1\u7b97\u4e4b\u540e\u7684Hash\u503c\uff0c\u800c\u4e14Hash\u503c\u7684\u5927\u5c0f\u5173\u7cfb\u5e76\u4e0d\u4e00\u5b9a\u548cHash\u8fd0\u7b97\u524d\u7684\u952e\u503c\u5b8c\u5168\u4e00\u6837\uff0c\u6240\u4ee5\u6570\u636e\u5e93\u65e0\u6cd5\u5229\u7528\u7d22\u5f15\u7684\u6570\u636e\u6765\u6267\u884c\u4efb\u4f55\u6392\u5e8f\u8fd0\u7b97<\/p>\n<\/li>\n<li>\n<p><strong>Hash\u7d22\u5f15\u4e0d\u80fd\u5229\u7528\u90e8\u5206\u7d22\u5f15\u952e\u67e5\u8be2<\/strong>\u3002\u5bf9\u4e8e\u7ec4\u5408\u7d22\u5f15\uff0cHash\u7d22\u5f15\u5728\u8ba1\u7b97Hash\u503c\u7684\u65f6\u5019\u662f\u7ec4\u5408\u7d22\u5f15\u952e\u5408\u5e76\u540e\u518d\u4e00\u8d77\u8ba1\u7b97Hash\u503c\uff0c\u800c\u4e0d\u662f\u5355\u72ec\u8ba1\u7b97Hash\u503c\uff0c\u6240\u4ee5\u901a\u8fc7\u7ec4\u5408\u7d22\u5f15\u7684\u524d\u9762\u4e00\u4e2a\u6216\u51e0\u4e2a\u7d22\u5f15\u952e\u8fdb\u884c\u67e5\u8be2\u7684\u65f6\u5019\uff0cHash\u7d22\u5f15\u4e5f\u65e0\u6cd5\u88ab\u5229\u7528\u3002<\/p>\n<\/li>\n<li>\n<p><strong>Hash\u7d22\u5f15\u5728\u4efb\u4f55\u65f6\u5019\u90fd\u4e0d\u80fd\u907f\u514d\u8868\u626b\u63cf<\/strong>\u3002\u524d\u9762\u5df2\u7ecf\u77e5\u9053\uff0cHash\u7d22\u5f15\u662f\u5c06\u7d22\u5f15\u952e\u901a\u8fc7Hash\u8fd0\u7b97\u4e4b\u540e\uff0c\u5c06 Hash\u8fd0\u7b97\u7ed3\u679c\u7684Hash\u503c\u548c\u6240\u5bf9\u5e94\u7684\u884c\u6307\u9488\u4fe1\u606f\u5b58\u653e\u4e8e\u4e00\u4e2aHash\u8868\u4e2d\uff0c\u7531\u4e8e\u4e0d\u540c\u7d22\u5f15\u952e\u5b58\u5728\u76f8\u540cHash\u503c\uff0c\u6240\u4ee5\u5373\u4f7f\u53d6\u6ee1\u8db3\u67d0\u4e2aHash\u952e\u503c\u7684\u6570\u636e\u7684\u8bb0\u5f55\u6761\u6570\uff0c\u4e5f\u65e0\u6cd5\u4eceHash\u7d22\u5f15\u4e2d\u76f4\u63a5\u5b8c\u6210\u67e5\u8be2\uff0c\u8fd8\u662f\u8981\u901a\u8fc7\u8bbf\u95ee\u8868\u4e2d\u7684\u5b9e\u9645\u6570\u636e\u8fdb\u884c\u76f8\u5e94\u7684\u6bd4\u8f83\uff0c\u5e76\u5f97\u5230\u76f8\u5e94\u7684\u7ed3\u679c\u3002<\/p>\n<\/li>\n<li>\n<p><strong>Hash\u7d22\u5f15\u9047\u5230\u5927\u91cfHash\u503c\u76f8\u7b49\u7684\u60c5\u51b5\u540e\u6027\u80fd\u5e76\u4e0d\u4e00\u5b9a\u5c31\u4f1a\u6bd4BTree\u7d22\u5f15\u9ad8<\/strong>\u3002\u5bf9\u4e8e\u9009\u62e9\u6027\u6bd4\u8f83\u4f4e\u7684\u7d22\u5f15\u952e\uff0c\u5982\u679c\u521b\u5efaHash\u7d22\u5f15\uff0c\u90a3\u4e48\u5c06\u4f1a\u5b58\u5728\u5927\u91cf\u8bb0\u5f55\u6307\u9488\u4fe1\u606f\u5b58\u4e8e\u540c\u4e00\u4e2aHash\u503c\u76f8\u5173\u8054\u3002\u8fd9\u6837\u8981\u5b9a\u4f4d\u67d0\u4e00\u6761\u8bb0\u5f55\u65f6\u5c31\u4f1a\u975e\u5e38\u9ebb\u70e6\uff0c\u4f1a\u6d6a\u8d39\u591a\u6b21\u8868\u6570\u636e\u7684\u8bbf\u95ee\uff0c\u800c\u9020\u6210\u6574\u4f53\u6027\u80fd\u4f4e\u4e0b\u3002<\/p>\n<\/li>\n<\/ul>\n<h2>\u7591\u95ee\u56de\u7b54\u73af\u8282\uff08\u4e3b\u8981\u9488\u5bf9InnoDB\uff09<\/h2>\n<h3>\u4e3a\u4ec0\u4e48\u8f85\u52a9\u7d22\u5f15\u4e0d\u76f4\u63a5\u5b58\u6570\u636e\u7684\u5730\u5740\u800c\u5b58\u4e3b\u952eid\u5462<\/h3>\n<p>\u56e0\u4e3a\u6570\u636e\u4f1a\u4e0d\u65ad\u7684\u53d8\u52a8\uff0c\u6240\u4ee5\u4ed6\u7684\u5730\u5740\u4f1a\u8ddf\u7740\u4e00\u8d77\u53d8\u3002\u5982\u679c\u76f4\u63a5\u5b58\u50a8\u5730\u5740\uff0c\u4e0b\u6b21\u627e\u7684\u6570\u636e\u53ef\u80fd\u5c31\u4e0d\u662f\u539f\u5148\u7684\u6570\u636e\u4e86\u3002<\/p>\n<h3>\u7d22\u5f15\u662f\u4e0d\u662f\u521b\u5efa\u7684\u8d8a\u591a\u8d8a\u597d\u5462<\/h3>\n<p>\u7b54\uff1a\u5e76\u4e0d\u662f<\/p>\n<ul>\n<li>\u6211\u4eec\u5df2\u7ecf\u77e5\u9053\u4e86\u7d22\u5f15\u5373\u6570\u636e\uff0c\u90a3\u4e48\u6211\u4eec\u8fc7\u591a\u7684\u521b\u5efa\u7d22\u5f15\u5c31\u4f1a\u5bfc\u81f4\u6570\u636e\u91cf\u7684\u589e\u52a0<\/li>\n<li>\u6211\u4eec\u77e5\u9053\u7d22\u5f15\u662f\u4e00\u9897\u5e73\u8861\u6811\uff0c\u6211\u4eec\u5728\u66f4\u65b0\u6570\u636e\u7684\u540c\u65f6\uff0c\u7d22\u5f15\u4e5f\u5728\u9891\u7e41\u7684\u8fdb\u884c\u9875\u5206\u88c2\u548c\u5408\u5e76\uff0c\u975e\u5e38\u8017\u65f6<\/li>\n<\/ul>\n<p>\u6709\u5173\u4ec0\u4e48\u662f\u9875\u5206\u88c2\u548c\u5408\u5e76\u63a8\u8350\u4e00\u7bc7\u77e5\u4e4e\u6587\u7ae0InnoDB\u4e2d\u7684\u9875\u5408\u5e76\u4e0e\u5206\u88c2\uff0c\u8fd9\u91cc\u5c31\u4e0d\u5355\u72ec\u8bb2\u8ff0\u3002<\/p>\n<h3>\u4e3a\u4ec0\u4e48\u6211\u4eec\u63a8\u8350\u4f7f\u7528\u81ea\u589eid\u800c\u4e0d\u63a8\u8350\u4f7f\u7528uuid\u6216\u8005\u8eab\u4efd\u8bc1\u53f7\u7b49\u5462<\/h3>\n<p>\u4e0a\u9762\u6211\u4eec\u63d0\u5230\u8fc7B+Tree\u662f\u81ea\u5e95\u5411\u4e0a\u63d2\u5165\u7684\uff0c\u4ec0\u4e48\u610f\u601d\u5462\u3002\u6211\u4eec\u4f18\u5148\u4f1a\u5c06\u6570\u636e\u63d2\u5165\u5230\u53f6\u5b50\u8282\u70b9\u4e2d\uff0c\u7136\u540e\u6574\u4e2a\u6811\u4f1a\u6839\u636e\u5e95\u90e8\u7684\u53f6\u5b50\u8282\u70b9\u8fdb\u884c\u53d8\u52a8\u3002<\/p>\n<p>\u5f53\u6211\u4eec\u4f7f\u7528\u7684\u662f\u81ea\u589e\u4e3b\u952e\u5462\uff0c\u6211\u4eec\u53f6\u5b50\u8282\u70b9\u94fe\u8868\u4f1a\u6839\u636e\u5f53\u524d\u6700\u540e\u4e00\u6761\u7684\u4f4d\u7f6e\uff0c\u5c06\u6700\u65b0\u7684\u4e00\u6761\u6570\u636e\u987a\u5e8f\u7684\u63d2\u5165\u5230\u540e\u9762\uff0c\u770b\u4e0b\u56fe\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-B+Tree\u53f6\u5b50\u7ed3\u70b9\u9875\u6570\u636e\u987a\u5e8f\u63d2\u5165.png\" alt=\"MySQL\u7d22\u5f15-B+Tree\u53f6\u5b50\u7ed3\u70b9\u9875\u6570\u636e\u987a\u5e8f\u63d2\u5165\" \/><\/p>\n<p>\u4f46\u662f\u5f53\u4f60\u63d2\u5165\u4e00\u4e2auuid\u65f6\uff0cMySQL\u6839\u672c\u4e0d\u77e5\u9053\u4ed6\u8be5\u63d2\u5165\u5230\u54ea\u4e2a\u4f4d\u7f6e\uff0c\u9700\u8981\u4ece\u5934\u5f00\u59cb\u5bfb\u627e\u63d2\u5165\u7684\u4f4d\u7f6e\u3002\u4f46\u662f\u5f53\u6211\u4eec\u7684\u63d2\u5165\u7684\u9875\u6ee1\u4e86\u65f6\uff0c\u8fd9\u5c31\u9020\u6210\u4e86\u9875\u7684\u5206\u88c2\u548c\u5408\u5e76\uff0c\u6781\u5927\u7684\u5f71\u54cd\u4e86\u6548\u7387\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-B+Tree\u53f6\u5b50\u7ed3\u70b9\u9875\u6570\u636e\u5206\u88c2\u5408\u5e76.png\" alt=\"MySQL\u7d22\u5f15-B+Tree\u53f6\u5b50\u7ed3\u70b9\u9875\u6570\u636e\u5206\u88c2\u5408\u5e76\" \/><\/p>\n<p>\u800c\u4e14\u6211\u4eec\u4f7f\u7528uuid\u7684\u8bdd\uff0cuuid\u6240\u5360\u5b57\u8282\u4e5f\u6bd4\u8f83\u957f\uff0c\u5c31\u5bfc\u81f4\u4e86\u6bcf\u4e00\u9875\u5b58\u50a8\u7684\u6570\u636e\u5c31\u4f1a\u53d8\u5c11\uff0c\u4e5f\u4e0d\u5229\u4e8e\u7d22\u5f15\u7684\u6570\u636e\u67e5\u8be2\u3002<\/p>\n<h3>\u54ea\u4e9b\u5217\u9002\u5408\u6dfb\u52a0\u7d22\u5f15\u5462<\/h3>\n<ul>\n<li>\u9700\u8981\u7ecf\u5e38where\u7684\u5b57\u6bb5<\/li>\n<li>\u9700\u8981join\u8fde\u8868\u7684\u5b57\u6bb5<\/li>\n<li>\u9700\u8981\u6392\u5e8f\u7684\u5b57\u6bb5<\/li>\n<li>\u9700\u8981group by\u7684\u5b57\u6bb5<\/li>\n<\/ul>\n<h3>\u6211\u4eec\u9700\u4e0d\u9700\u8981\u5728\u6027\u522b\u4e0a\u52a0\u7d22\u5f15\u5462\uff1f<\/h3>\n<p>\u8fd9\u4e2a\u5462\u6211\u4eec\u5c31\u505a\u4e2a\u6d4b\u8bd5\uff0c\u6211\u6709\u4e00\u4e2a300w\u6570\u636e\u7684\u8868\u3002<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE `user_innodb` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `name` varchar(255) DEFAULT NULL,\n  `gender` tinyint(1) DEFAULT NULL,\n  `phone` varchar(11) DEFAULT NULL,\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB AUTO_INCREMENT=3000001 DEFAULT CHARSET=utf8mb4;<\/code><\/pre>\n<p>\u6211\u4eec\u9996\u5148\u67e5\u8be2\u4e00\u4e0b\u6027\u522b\u4e3a\u7537\u7684\u6240\u6709\u6570\u636e\u3002<\/p>\n<pre><code class=\"language-sql\">SELECT *\nfrom user_innodb\nwhere gender = 1;<\/code><\/pre>\n<p>\u6ca1\u52a0\u7d22\u5f15\u4e4b\u524d\uff0c\u6211\u4eec\u7528explain\u770b\u4e0b\u6267\u884c\u6548\u7387\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-\u6027\u522b\u4e0d\u52a0\u7d22\u5f15\u6267\u884c\u6548\u7387.png\" alt=\"MySQL\u7d22\u5f15-\u6027\u522b\u4e0d\u52a0\u7d22\u5f15\u6267\u884c\u6548\u7387\" \/><\/p>\n<p>\u6267\u884c\u7ed3\u679c\u662f1s\uff0c\u8fd8\u53ef\u4ee5\u63a5\u53d7\u3002<\/p>\n<p>\u52a0\u4e86\u7d22\u5f15\u4e4b\u540e\uff0c\u6700\u7ec8\u7ed3\u679c\u51fa\u6765\u6ca1\u8ba9\u6211\u5931\u671b22s\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-\u6027\u522b\u6dfb\u52a0\u7d22\u5f15\u6267\u884c\u6548\u7387.png\" alt=\"MySQL\u7d22\u5f15-\u6027\u522b\u6dfb\u52a0\u7d22\u5f15\u6267\u884c\u6548\u7387\" \/><\/p>\n<p>\u6240\u4ee5\u5b9e\u9a8c\u5c31\u8bc1\u660e\u4e86\u4e0d\u80fd\u591f\u5728\u6027\u522b\u4e0a\u521b\u5efa\u7d22\u5f15\u3002\u4e3a\u4ec0\u4e48\u4f1a\u6709\u8fd9\u4e48\u5927\u7684\u5dee\u522b\u5462\uff0c\u52a0\u4e86\u7d22\u5f15\u53cd\u800c\u6bd4\u4e0d\u52a0\u7d22\u5f15\u66f4\u6162\u3002<\/p>\n<p>\u56e0\u4e3a\uff0c\u5728\u6ca1\u6709\u7d22\u5f15\u7684\u60c5\u51b5\u4e0b\uff0cMySQL\u53ea\u9700\u904d\u5386\u5e95\u90e8\u7684\u94fe\u8868\u5373\u53ef\u3002\u4f46\u662f\u52a0\u4e86\u7d22\u5f15\u4ee5\u540e\u4ed6\u4f1a\u67e5\u8be2<code>index(gender)<\/code>\u627e\u5230\u5408\u6cd5\u7684\u7d22\u5f15\u7684\u4e3b\u952e\uff0c\u7136\u540e\u901a\u8fc7\u4e3b\u952e\u518d\u53bbindex(id)\u91cc\u9762\u53bb\u627e\u8fd9\u6837\u4e00\u6765\u4e00\u56de\u6548\u7387\u81ea\u7136\u5c31\u76f4\u7ebf\u4e0b\u964d\u3002<\/p>\n<p>\u90a3\u4e48\u6211\u4eec\u521b\u5efa\u7d22\u5f15\u6709\u4ec0\u4e48\u7279\u522b\u7684\u4f9d\u636e\u5417\uff0c\u8fd9\u91cc\u5c31\u7ed9\u5927\u5bb6\u4e00\u4e2a\u516c\u5f0f\uff1a<code>count(distinct(column_name)) : count(*)<\/code>\uff0c\u8fd9\u4e2a\u53ef\u4ee5\u7b80\u5355\u5730\u8ba1\u7b97\u51fa\u8fd9\u4e2a\u5b57\u6bb5\u7684\u79bb\u6563\u503c,\u79bb\u6563\u503c\u8d8a\u9ad8\u8bf4\u660e\u5efa\u7acb\u7d22\u5f15\u6548\u679c\u66f4\u660e\u663e\u3002\u4f8b\u5982\u6211\u4eec\u7ed9\u624b\u673a\u53f7\u52a0\u7d22\u5f15\uff0c\u6700\u540e\u8ba1\u7b97\u51fa\u6765\u7684\u79bb\u6563\u5ea6\u662f1\uff0c\u8bf4\u660e\u975e\u5e38\u6709\u5fc5\u8981\u52a0\u7d22\u5f15\u3002<\/p>\n<h3>like &#8216;%\u5f20\u2019\u4e00\u5b9a\u4e0d\u8d70\u7d22\u5f15\u5417<\/h3>\n<p>\u6211\u4eec\u518d\u6b21\u8fdb\u884c\u4e2a\u6d4b\u8bd5\uff0c\u6211\u4eec\u7ed9phone\u548cname\u4e24\u4e2a\u5b57\u6bb5\u5efa\u7acb\u4e00\u4e2a\u8054\u5408\u7d22\u5f15<code>idx_phone_name<\/code>\u3002\u7136\u540e\u770b\u4e0b\u4e0b\u9762\u8fd9\u6761\u8bed\u53e5\u7684\u6267\u884c\u8ba1\u5212\u3002<\/p>\n<pre><code class=\"language-sql\">EXPLAIN SELECT *\nFROM user_innodb\nWHERE name LIKE &#039;%\u5f20&#039; and phone = &#039;13204776301&#039;;<\/code><\/pre>\n<p>\u8fd9\u79cd\u60c5\u51b5\u4e0b\u56e0\u4e3aphone\u5728\u7d22\u5f15\u7b2c\u4e00\u4f4d\uff0c\u6240\u4ee5\u65e0\u8bba\u6709\u6ca1\u6709name\u8fd9\u4e2a\u6761\u4ef6\u90fd\u4f1a\u8d70\u7d22\u5f15\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-\u7d22\u5f15\u67e5\u8be2EXPLAIN.png\" alt=\"MySQL\u7d22\u5f15-\u7d22\u5f15\u67e5\u8be2EXPLAIN\" \/><\/p>\n<p>\u56fe\u7247\u6211\u4eec\u53ef\u4ee5\u770b\u5230extra\u91cc\u9762\u5b58\u5728<code>Using index condition\uff08ICP\uff09<\/code>\uff0cICP\u7684\u5168\u540d\u662f<code>index condition pushdown<\/code>\u7d22\u5f15\u6761\u4ef6\u4e0b\u63a8\u3002<\/p>\n<h3>ICP \u7d22\u5f15\u6761\u4ef6\u4e0b\u63a8<\/h3>\n<p>\u7d22\u5f15\u6761\u4ef6\u4e0b\u63a8\uff08ICP\uff09\u662f\u9488\u5bf9MySQL\u4f7f\u7528\u7d22\u5f15\u4ece\u8868\u4e2d\u68c0\u7d22\u884c\u7684\u60c5\u51b5\u7684\u4e00\u79cd\u4f18\u5316\u3002\u5982\u679c\u4e0d\u4f7f\u7528ICP\uff0c\u5219\u5b58\u50a8\u5f15\u64ce\u5c06\u904d\u5386\u7d22\u5f15\u4ee5\u5728\u57fa\u8868\u4e2d\u5b9a\u4f4d\u884c\uff0c\u5e76\u5c06\u5176\u8fd4\u56de\u7ed9MySQL\u670d\u52a1\u5668\uff0c\u540e\u8005\u5c06\u8bc4\u4f30WHERE\u884c\u7684\u6761\u4ef6\u3002<\/p>\n<p>\u542f\u7528ICP\u540e\uff0c\u5982\u679cWHERE\u53ef\u4ee5\u4ec5\u4f7f\u7528\u7d22\u5f15\u4e2d\u7684\u5217\u6765\u8bc4\u4f30\u90e8\u5206\u6761\u4ef6\uff0c\u5219MySQL\u670d\u52a1\u5668\u4f1a\u5c06\u8fd9\u90e8\u5206\u6761\u4ef6\u538b\u5165WHERE\u6761\u4ef6\u4e0b\u964d\u5230\u5b58\u50a8\u5f15\u64ce\u3002\u7136\u540e\uff0c\u5b58\u50a8\u5f15\u64ce\u901a\u8fc7\u4f7f\u7528\u7d22\u5f15\u6761\u76ee\u6765\u8bc4\u4f30\u63a8\u9001\u7684\u7d22\u5f15\u6761\u4ef6\uff0c\u5e76\u4e14\u53ea\u6709\u5728\u6ee1\u8db3\u6b64\u6761\u4ef6\u7684\u60c5\u51b5\u4e0b\uff0c\u624d\u4ece\u8868\u4e2d\u8bfb\u53d6\u884c\u3002ICP\u53ef\u4ee5\u51cf\u5c11\u5b58\u50a8\u5f15\u64ce\u5fc5\u987b\u8bbf\u95ee\u57fa\u8868\u7684\u6b21\u6570\u4ee5\u53caMySQL\u670d\u52a1\u5668\u5fc5\u987b\u8bbf\u95ee\u5b58\u50a8\u5f15\u64ce\u7684\u6b21\u6570\u3002<\/p>\n<p>\u7d22\u5f15\u6761\u4ef6\u4e0b\u63a8\u5f0f\u4f18\u5316\u7684\u9002\u7528\u6027\u53d6\u51b3\u4e8e\u4ee5\u4e0b\u6761\u4ef6\uff1a<\/p>\n<ul>\n<li>ICP\u7528\u4e8e range\uff0c ref\uff0c eq_ref\uff0c\u548c ref_or_null\u8bbf\u95ee\u65b9\u6cd5\u65f6\uff0c\u6709\u4e00\u4e2a\u9700\u8981\u8bbf\u95ee\u7684\u5168\u90e8\u8868\u884c<\/li>\n<li>ICP\u53ef\u7528\u4e8eInnoDB \u548cMyISAM\u8868\uff0c\u5305\u62ec\u5206\u533a\u8868InnoDB\u548c MyISAM\u8868<\/li>\n<li>\u5bf9\u4e8eInnoDB\u8868\uff0cICP\u4ec5\u7528\u4e8e\u4e8c\u7ea7\u7d22\u5f15\u3002ICP\u7684\u76ee\u6807\u662f\u51cf\u5c11\u5168\u884c\u8bfb\u53d6\u6b21\u6570\uff0c\u4ece\u800c\u51cf\u5c11I\/O\u64cd\u4f5c\u3002\u5bf9\u4e8e InnoDB\u805a\u96c6\u7d22\u5f15\uff0c\u5b8c\u6574\u7684\u8bb0\u5f55\u5df2\u88ab\u8bfb\u5165InnoDB \u7f13\u51b2\u533a\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u4f7f\u7528ICP\u4e0d\u4f1a\u51cf\u5c11I\/O<\/li>\n<li>\u5728\u865a\u62df\u751f\u6210\u7684\u5217\u4e0a\u521b\u5efa\u7684\u4e8c\u7ea7\u7d22\u5f15\u4e0d\u652f\u6301ICP\u3002InnoDB \u652f\u6301\u865a\u62df\u751f\u6210\u7684\u5217\u4e0a\u7684\u4e8c\u7ea7\u7d22\u5f15<\/li>\n<li>\u5f15\u7528\u5b50\u67e5\u8be2\u7684\u6761\u4ef6\u4e0d\u80fd\u4e0b\u63a8<\/li>\n<li>\u6d89\u53ca\u5b58\u50a8\u529f\u80fd\u7684\u6761\u4ef6\u4e0d\u80fd\u4e0b\u63a8<\/li>\n<li>\u5b58\u50a8\u5f15\u64ce\u65e0\u6cd5\u8c03\u7528\u5b58\u50a8\u7684\u529f\u80fd<\/li>\n<li>\u89e6\u53d1\u6761\u4ef6\u4e0d\u80fd\u4e0b\u63a8<\/li>\n<\/ul>\n<p>\u5177\u4f53\u7684IPC\u76f8\u5173\u7684\u4fe1\u606f\uff0c\u5efa\u8bae\u53c2\u8003\u5b98\u7f51<\/p>\n<p>\u6211\u90a3\u4e0a\u9762\u7684\u90a3\u6761sql\u8fdb\u884c\u4e2a\u4e3e\u4f8b\uff0c\u8bf4\u660e\u4e0b\u4ec0\u4e48\u662fICP\uff0c\u770b\u4e0b\u56fe\uff0c\u4e00\u5207\u90fd\u5728\u56fe\u91cc\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u6570\u636e\u5e93\/MySQL\u7d22\u5f15-ICP\u7d22\u5f15\u6761\u4ef6\u4e0b\u63a8.png\" alt=\"MySQL\u7d22\u5f15-ICP\u7d22\u5f15\u6761\u4ef6\u4e0b\u63a8\" \/><\/p>\n<h3>\u5982\u679c\u8868\u6ca1\u6709\u4e3b\u952e\u600e\u4e48\u529e\uff0c\u805a\u96c6\u7d22\u5f15\u600e\u4e48\u5efa\u7acb<\/h3>\n<ul>\n<li>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6211\u4eec\u5728\u8bbe\u7f6e\u8868\u4e3b\u952e\u7684\u65f6\u5019\uff0c\u6570\u636e\u5e93\u4f1a\u9ed8\u8ba4\u5c06\u5176\u8bbe\u7f6e\u4e3a\u805a\u96c6\u7d22\u5f15<\/li>\n<li>\u5982\u679c\u6ca1\u6709\u5b9a\u4e49\u4e3b\u952e\uff0c\u90a3\u4e48mysql\u4f1a\u627e\u7b2c\u4e00\u4e2a\u552f\u4e00\u7d22\u5f15\u6765\u4f5c\u4e3a\u805a\u96c6\u7d22\u5f15\uff0c\u524d\u63d0\u662f\u805a\u96c6\u7d22\u5f15\u662fNOT NULL<\/li>\n<li>\u5982\u679c\u4e0a\u9762\u7684\u4e24\u4e2a\u6761\u4ef6\u90fd\u6ca1\u6709\u6ee1\u8db3\uff0c\u90a3\u4e48InnoDB\u4f1a\u751f\u6210\u4e00\u4e2a\u9690\u85cf\u7684\u805a\u96c6\u7d22\u5f15GEN_CLUST_INDEX\uff0c\u6bcf\u4e00\u884c\u90fd\u751f\u6210\u4e00\u4e2a\u9ed8\u8ba4\u81ea\u589e\u7684\u4e3b\u952eid<\/li>\n<\/ul>\n<blockquote>\n<p>\u8f6c\u8f7d\u81f3\uff1a<a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/blog.csdn.net\/qq_30062181\/article\/details\/112712362\">https:\/\/blog.csdn.net\/qq_30062181\/article\/details\/112712362<\/a><\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00 \u56e0\u4e3a\u73b0\u5728\u4f7f\u7528\u7684MySQL\u9ed8\u8ba4\u5b58\u50a8\u5f15\u64ce\u662fInnodb\uff0c\u6240\u4ee5\u672c\u7bc7\u6587\u7ae0\u91cd\u70b9\u8bb2\u8ff0Innodb\u4e0b\u7684\u7d22\u5f15\uff0c\u987a\u5e26\u7b80\u5355\u8bb2 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[525],"class_list":["post-2087","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-525"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/2087","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=2087"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/2087\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=2087"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=2087"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=2087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}