{"id":1960,"date":"2020-07-29T21:33:01","date_gmt":"2020-07-29T13:33:01","guid":{"rendered":"http:\/\/39.97.231.10\/?p=1960"},"modified":"2020-07-29T21:33:01","modified_gmt":"2020-07-29T13:33:01","slug":"mysql%e6%80%a7%e8%83%bd%e4%bc%98%e5%8c%96-%e9%a2%84%e7%bc%96%e8%af%91%e8%af%ad%e5%8f%a5","status":"publish","type":"post","link":"http:\/\/www.weijing.co\/?p=1960","title":{"rendered":"MySQL\u6027\u80fd\u4f18\u5316-\u9884\u7f16\u8bd1\u8bed\u53e5"},"content":{"rendered":"<div class=\\\"blog_content\\\">\n<div class=\\\"blog_detail\\\">\n<div>\nMySQL\u6027\u80fd\u4f18\u5316\u7684\u65b9\u6cd5\u6709\u5f88\u591a\uff0c\u9884\u7f16\u8bd1\u662f\u4f7f\u7528\u6bd4\u8f83\u591a\uff0c\u6548\u679c\u6bd4\u8f83\u597d\u7684\u4e00\u79cd\u65b9\u6cd5\u3002\u672c\u6587\u5c06\u7b80\u5355\u4ecb\u7ecd\u4ec0\u4e48\u662fMySQL\u9884\u7f16\u8bd1\u8bed\u53e5\uff0c\u5982\u4f55\u4f7f\u7528\u9884\u7f16\u8bd1\u8bed\u53e5\uff0c\u4ee5\u53ca\u4f7f\u7528\u9884\u7f16\u8bd1\u8bed\u53e5\u5728\u6027\u80fd\u4e0a\u80fd\u5e26\u6765\u591a\u5c11\u63d0\u9ad8\u3002<\/p>\n<h4>\u4ec0\u4e48\u662f\u9884\u7f16\u8bd1\u8bed\u53e5\uff1f<\/h4>\n<p>MySQL\u5728\u6267\u884cSQL\u8bed\u53e5\u65f6\uff0c\u5206\u4e3a\u51e0\u4e2a\u9636\u6bb5\u3002<\/p>\n<ol>\n<li>\u8bcd\u6cd5\u89e3\u6790\u3001\u8bed\u4e49\u89e3\u6790\u3002<\/li>\n<li>\u4f18\u5316SQL\u8bed\u53e5\uff0c\u751f\u6210\u6267\u884c\u8ba1\u5212\u3002<\/li>\n<li>\u6267\u884cSQL\u5e76\u8fd4\u56de\u7ed3\u679c\u3002<\/li>\n<\/ol>\n<p>\u5f88\u591a\u60c5\u51b5\u4e0b\uff0c\u540c\u4e00\u7c7bSQL\u4f1a\u53cd\u590d\u6267\u884c\uff0c\u53ea\u662fSQL\u4e2d\u7684\u67d0\u4e9b\u5177\u4f53\u7684\u503c\u4e0d\u540c\uff0c\u672c\u8d28\u4e0a\u5c5e\u4e8e\u540c\u4e00\u7c7bSQL\u3002\u6bd4\u5982select\u4e2d\u7684where\u6761\u4ef6\u503c\u4e0d\u540c\uff0cinsert\u4e2d\u7684values\u503c\u4e0d\u540c\uff0cupdate\u4e2d\u7684set\u503c\u4e0d\u540c\u7b49\u7b49\u3002\u8fd9\u4e9bSQL\u53ea\u8981\u89e3\u6790\u4e00\u6b21\uff0c\u4ee5\u540e\u518d\u6b21\u6267\u884c\u65f6\uff0c\u5c31\u4e0d\u518d\u9700\u8981\u8fdb\u884c\u8bcd\u6cd5\u89e3\u6790\u3001\u8bed\u4e49\u89e3\u6790\u3001SQL\u8bed\u53e5\u4f18\u5316\u3001\u751f\u6210\u6267\u884c\u8ba1\u5212\uff0c\u8fd9\u4e9b\u8fc7\u7a0b\u90fd\u4e0d\u518d\u9700\u8981\uff0c\u53ea\u8981\u544a\u8bc9MySQL\u5177\u4f53\u7684\u53c2\u6570\u503c\u53d8\u4e86\u5c31\u884c\u3002\u901a\u5e38\u6211\u4eec\u79f0\u8fd9\u7c7bSQL\u4e3a<strong>Prepared Statements<\/strong>\u3002<br \/>\n\u4f7f\u7528\u9884\u7f16\u8bd1\u8bed\u53e5\uff0c\u540c\u4e00\u7c7bSQL\uff0c\u53ea\u8981\u4e00\u6b21\u7f16\u8bd1\uff0c\u591a\u6b21\u8fd0\u884c\uff0c\u7701\u53bb\u4e86\u4e0d\u5fc5\u8981\u7684\u91cd\u590d\u7684\u89e3\u6790\u4f18\u5316\u8fc7\u7a0b\uff0c\u5927\u5927\u63d0\u9ad8\u4e86SQL\u8bed\u53e5\u6267\u884c\u6027\u80fd\uff0c\u53e6\u5916\u9884\u7f16\u8bd1\u529f\u80fd\u4e5f\u80fd\u9632\u6b62SQL\u6ce8\u5165\u3002<\/p>\n<h4>\u5982\u4f55\u4f7f\u7528\u9884\u7f16\u8bd1\u8bed\u53e5\uff1f<\/h4>\n<p>\u901a\u8fc7prepare\u5173\u952e\u5b57\u6765\u7f16\u8bd1\u4e00\u4e2aSQL\u8bed\u53e5\uff0c\u901a\u8fc7execute\u5173\u952e\u5b57\u6765\u6267\u884c\u4e00\u4e2a\u5177\u4f53\u7684SQL\uff0c\u901a\u8fc7deallocate\u5173\u952e\u5b57\u6765\u91ca\u653e\u4e00\u4e2a\u9884\u7f16\u8bd1SQL\u8bed\u53e5\u3002\u793a\u4f8b\u5982\u4e0b\uff1a<\/p>\n<pre><code>mysql&gt; prepare sel from \\'select * from t where c1=? and c2=?\\';\nmysql&gt; set @a=\\'100\\',@b=\\'200\\';\nmysql&gt; execute sel using @a,@b;\n+------+------+------+---------------------+\n| id\u00a0\u00a0 | c1\u00a0\u00a0 | c2\u00a0\u00a0 | ts\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\n+------+------+------+---------------------+\n| 3275 | 100\u00a0 | 200\u00a0 | 2020-01-18 11:53:39 |\n| 3277 | 100\u00a0 | 200\u00a0 | 2020-01-18 11:53:39 |\n+------+------+------+---------------------+\n2 rows in set (0.01 sec)\nmysql&gt; set @a=\\'400\\',@b=\\'400\\';\nmysql&gt; execute sel using @a,@b;\n+------+------+------+---------------------+\n| id   | c1   | c2   | ts                  |\n+------+------+------+---------------------+\n| 3279 | 400  | 400  | 2020-01-19 15:10:09 |\n+------+------+------+---------------------+\n1 row in set (0.00 sec)\nmysql&gt; deallocate prepare sel;\nQuery OK, 0 rows affected (0.00 sec)\n<\/code><\/pre>\n<p>\u9664\u4e86\u76f4\u63a5\u5728mysql\u547d\u4ee4\u884c\u4e2d\u4f7f\u7528\u9884\u7f16\u8bd1\u8bed\u53e5\uff0c\u4e5f\u53ef\u4ee5\u5728JDBC\u4e2d\u4f7f\u7528\u9884\u7f16\u8bd1\u529f\u80fd\u3002\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n<pre><code>String sql = \\\"insert into t select ?,?\\\";\nPreparedStatement statement = con.prepareStatement(sql);\nstatement.setString(1, \\\"abc\\\");\nstatement.setString(2, \\\"abc\\\");\nstatement.executeUpdate();\n<\/code><\/pre>\n<h4>\u9884\u7f16\u8bd1\u8bed\u53e5\u6027\u80fd\u6709\u591a\u5c11\u63d0\u9ad8\uff1f<\/h4>\n<p><strong>\u4f7f\u7528\u9884\u7f16\u8bd1\u8bed\u53e5\uff1a<\/strong><\/p>\n<pre><code>-------------------QPS--TPS-----------\n  time  |  ins   upd   del    sel   iud|\n15:37:55| 1837     0     0      1  1837|\n15:37:56| 1916     0     0      1  1916|\n15:37:57| 1818     0     0      1  1818|\n15:37:58| 1603     0     0      1  1603|\n15:37:59| 1784     0     0      1  1784|\n15:38:00| 1751     0     0      1  1751|\n15:38:01| 1756     0     0      1  1756|\n15:38:02| 1502     0     0      1  1502|\n15:38:03| 2088     0     0      1  2088|\n15:38:04| 1886     0     0      2  1886|\n15:38:05| 1986     0     0      1  1986|\n15:38:06| 1593     0     0      1  1593|\n15:38:07| 1003     0     0      1  1003|\n15:38:08| 1561     0     0      1  1561|\n15:38:09| 2024     0     0      1  2024|\n<\/code><\/pre>\n<p><strong>\u4e0d\u4f7f\u7528\u9884\u7f16\u8bd1\u8bed\u53e5\uff1a<\/strong><\/p>\n<pre><code>-------------------QPS--TPS-----------\n  time  |  ins   upd   del    sel   iud|\n15:49:08| 1557     0     0      1  1557|\n15:49:09| 1583     0     0      2  1583|\n15:49:10| 1593     0     0      1  1593|\n15:49:11| 1677     0     0      1  1677|\n15:49:12| 1841     0     0      1  1841|\n15:49:13| 1568     0     0      1  1568|\n15:49:14| 1692     0     0      1  1692|\n15:49:15| 1631     0     0      1  1631|\n15:49:16| 1774     0     0      1  1774|\n15:49:17| 1642     0     0      1  1642|\n15:49:18| 1748     0     0      1  1748|\n15:49:19| 1520     0     0      2  1520|\n15:49:20| 1666     0     0      1  1666|\n15:49:21| 1657     0     0      1  1657|\n15:49:22| 1659     0     0      1  1659|\n<\/code><\/pre>\n<p>\u4f7f\u7528\u9884\u7f16\u8bd1\u5e73\u5747TPS\uff1a1740<br \/>\n\u4e0d\u4f7f\u7528\u9884\u7f16\u8bd1\u5e73\u5747TPS\uff1a1653<br \/>\n\u6d4b\u8bd5\u7ed3\u679c\uff1a\u4f7f\u7528\u9884\u7f16\u8bd1SQL\uff0c\u6027\u80fd\u63d0\u9ad8\u7ea65.2%<br \/>\n<strong>\u6ce8\uff1a<\/strong><br \/>\n\u6d4b\u8bd5\u4f7f\u7528\u7684MySQL\u7248\u672c\u4e3a5.7.19\uff0c1\u68381G\uff0c\u5e76\u53d110\u7ebf\u7a0b\u3002\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>MySQL\u6027\u80fd\u4f18\u5316\u7684\u65b9\u6cd5\u6709\u5f88\u591a\uff0c\u9884\u7f16\u8bd1\u662f\u4f7f\u7528\u6bd4\u8f83\u591a\uff0c\u6548\u679c\u6bd4\u8f83\u597d\u7684\u4e00\u79cd\u65b9\u6cd5\u3002\u672c\u6587\u5c06\u7b80\u5355\u4ecb\u7ecd\u4ec0\u4e48\u662fMySQL\u9884\u7f16\u8bd1 &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/www.weijing.co\/?p=1960\"> <span class=\"screen-reader-text\">MySQL\u6027\u80fd\u4f18\u5316-\u9884\u7f16\u8bd1\u8bed\u53e5<\/span> \u67e5\u770b\u5168\u6587 &raquo;<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"categories":[90,88],"tags":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"mailpoet_newsletter_max":false,"woocommerce_thumbnail":false,"woocommerce_single":false,"woocommerce_gallery_thumbnail":false,"shop_catalog":false,"shop_single":false,"shop_thumbnail":false},"uagb_author_info":{"display_name":"weijing","author_link":"http:\/\/www.weijing.co\/?author=4"},"uagb_comment_info":0,"uagb_excerpt":"MySQL\u6027\u80fd\u4f18\u5316\u7684\u65b9\u6cd5\u6709\u5f88\u591a\uff0c\u9884\u7f16\u8bd1\u662f\u4f7f\u7528\u6bd4\u8f83\u591a\uff0c\u6548\u679c\u6bd4\u8f83\u597d\u7684\u4e00\u79cd\u65b9\u6cd5\u3002\u672c\u6587\u5c06\u7b80\u5355\u4ecb\u7ecd\u4ec0\u4e48\u662fMySQL\u9884\u7f16\u8bd1&hellip;","_links":{"self":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/1960"}],"collection":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1960"}],"version-history":[{"count":0,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/1960\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1960"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1960"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}