简答题 java用什么api实现大量数据读取内存,饼保证数据处理性能 用Java编程来实现CPU和Memory监控器并将数据持久化...

\u8bfb\u53d6\u5927\u91cf\u6570\u636e\u65f6\u6570\u636e\u65f6\u5185\u5b58\u6ea2\u51fa\u600e\u6837\u5206\u6279\u8bfb\u53d6\u8be5\u600e\u4e48\u5904\u7406

\u4f17\u6240\u5468\u77e5\uff0cjava\u5728\u5904\u7406\u6570\u636e\u91cf\u6bd4\u8f83\u5927\u7684\u65f6\u5019\uff0c\u52a0\u8f7d\u5230\u5185\u5b58\u5fc5\u7136\u4f1a\u5bfc\u81f4\u5185\u5b58\u6ea2\u51fa\uff0c\u800c\u5728\u4e00\u4e9b\u6570\u636e\u5904\u7406\u4e2d\u6211\u4eec\u4e0d\u5f97\u4e0d\u53bb\u5904\u7406\u6d77\u91cf\u6570\u636e\uff0c\u5728\u505a\u6570\u636e\u5904\u7406\u4e2d\uff0c\u6211\u4eec\u5e38\u89c1\u7684\u624b\u6bb5\u662f\u5206\u89e3\uff0c\u538b\u7f29\uff0c\u5e76\u884c\uff0c\u4e34\u65f6\u6587\u4ef6\u7b49\u65b9\u6cd5;\u3000\u3000\u4f8b\u5982\uff0c\u6211\u4eec\u8981\u5c06\u6570\u636e\u5e93(\u4e0d\u8bba\u662f\u4ec0\u4e48\u6570\u636e\u5e93)\u7684\u6570\u636e\u5bfc\u51fa\u5230\u4e00\u4e2a\u6587\u4ef6\uff0c\u4e00\u822c\u662fExcel\u6216\u6587\u672c\u683c\u5f0f\u7684CSV;\u5bf9\u4e8eExcel\u6765\u8bb2\uff0c\u5bf9\u4e8ePOI\u548cJXL\u7684\u63a5\u53e3\uff0c\u4f60\u5f88\u591a\u65f6\u5019\u6ca1\u6709\u6cd5\u53bb\u63a7\u5236\u5185\u5b58\u4ec0\u4e48\u65f6\u5019\u5411\u78c1\u76d8\u5199\u5165\uff0c\u5f88\u6076\u5fc3\uff0c\u800c\u4e14\u8fd9\u4e9bAPI\u5728\u5185\u5b58\u6784\u9020\u7684\u5bf9\u8c61\u5927\u5c0f\u5c06\u6bd4\u6570\u636e\u539f\u6709\u7684\u5927\u5c0f\u8981\u5927\u5f88\u591a\u500d\u6570\uff0c\u6240\u4ee5\u4f60\u4e0d\u5f97\u4e0d\u53bb\u62c6\u5206Excel\uff0c\u8fd8\u597d\uff0cPOI\u5f00\u59cb\u610f\u8bc6\u5230\u8fd9\u4e2a\u95ee\u9898\uff0c\u57283.8.4\u7684\u7248\u672c\u540e\uff0c\u5f00\u59cb\u63d0\u4f9bcache\u7684\u884c\u6570\uff0c\u63d0\u4f9b\u4e86SXSSFWorkbook\u7684\u63a5\u53e3\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u5728\u5185\u5b58\u4e2d\u7684\u884c\u6570\uff0c\u4e0d\u8fc7\u53ef\u60dc\u7684\u662f\uff0c\u4ed6\u5f53\u4f60\u8d85\u8fc7\u8fd9\u4e2a\u884c\u6570\uff0c\u6bcf\u6dfb\u52a0\u4e00\u884c\uff0c\u5b83\u5c31\u5c06\u76f8\u5bf9\u884c\u6570\u524d\u9762\u7684\u4e00\u884c\u5199\u5165\u78c1\u76d8(\u5982\u4f60\u8bbe\u7f6e2000\u884c\u7684\u8bdd\uff0c\u5f53\u4f60\u5199\u7b2c20001\u884c\u7684\u65f6\u5019\uff0c\u4ed6\u4f1a\u5c06\u7b2c\u4e00\u884c\u5199\u5165\u78c1\u76d8)\uff0c\u5176\u5b9e\u8fd9\u4e2a\u65f6\u5019\u4ed6\u4e9b\u7684\u4e34\u65f6\u6587\u4ef6\uff0c\u4ee5\u81f3\u4e8e\u4e0d\u6d88\u8017\u5185\u5b58\uff0c\u4e0d\u8fc7\u8fd9\u6837\u4f60\u4f1a\u53d1\u73b0\uff0c\u5237\u78c1\u76d8\u7684\u9891\u7387\u4f1a\u975e\u5e38\u9ad8\uff0c\u6211\u4eec\u7684\u786e\u4e0d\u60f3\u8fd9\u6837\uff0c\u56e0\u4e3a\u6211\u4eec\u60f3\u8ba9\u4ed6\u8fbe\u5230\u4e00\u4e2a\u8303\u56f4\u4e00\u6b21\u6027\u5c06\u6570\u636e\u5237\u5982\u78c1\u76d8\uff0c\u6bd4\u5982\u4e00\u6b21\u52371M\u4e4b\u7c7b\u7684\u505a\u6cd5\uff0c\u53ef\u60dc\u73b0\u5728\u8fd8\u6ca1\u6709\u8fd9\u79cdAPI\uff0c\u5f88\u75db\u82e6\uff0c\u6211\u81ea\u5df1\u505a\u8fc7\u6d4b\u8bd5\uff0c\u901a\u8fc7\u5199\u5c0f\u7684Excel\u6bd4\u4f7f\u7528\u76ee\u524d\u63d0\u4f9b\u5237\u78c1\u76d8\u7684API\u6765\u5199\u5927\u6587\u4ef6\uff0c\u6548\u7387\u8981\u9ad8\u4e00\u4e9b\uff0c\u800c\u4e14\u8fd9\u6837\u5982\u679c\u8bbf\u95ee\u7684\u4eba\u7a0d\u5fae\u591a\u4e00\u4e9b\u78c1\u76d8IO\u53ef\u80fd\u4f1a\u625b\u4e0d\u4f4f\uff0c\u56e0\u4e3aIO\u8d44\u6e90\u662f\u975e\u5e38\u6709\u9650\u7684\uff0c\u6240\u4ee5\u8fd8\u662f\u62c6\u6587\u4ef6\u624d\u662f\u4e0a\u7b56;\u800c\u5f53\u6211\u4eec\u5199CSV\uff0c\u4e5f\u5c31\u662f\u6587\u672c\u7c7b\u578b\u7684\u6587\u4ef6\uff0c\u6211\u4eec\u5f88\u591a\u65f6\u5019\u662f\u53ef\u4ee5\u81ea\u5df1\u63a7\u5236\u7684\uff0c\u4e0d\u8fc7\u4f60\u4e0d\u8981\u7528CSV\u81ea\u5df1\u63d0\u4f9b\u7684API\uff0c\u4e5f\u662f\u4e0d\u592a\u53ef\u63a7\u7684\uff0cCSV\u672c\u8eab\u5c31\u662f\u6587\u672c\u6587\u4ef6\uff0c\u4f60\u6309\u7167\u6587\u672c\u683c\u5f0f\u5199\u5165\u5373\u53ef\u88abCSV\u8bc6\u522b\u51fa\u6765;\u5982\u4f55\u5199\u5165\u5462\uff1f\u4e0b\u9762\u6765\u8bf4\u8bf4\u3002\u3002\u3002\u3000\u3000\u5728\u5904\u7406\u6570\u636e\u5c42\u9762\uff0c\u5982\u4ece\u6570\u636e\u5e93\u4e2d\u8bfb\u53d6\u6570\u636e\uff0c\u751f\u6210\u672c\u5730\u6587\u4ef6\uff0c\u5199\u4ee3\u7801\u4e3a\u4e86\u65b9\u4fbf\uff0c\u6211\u4eec\u672a\u5fc5\u89811M\u600e\u4e48\u6765\u5904\u7406\uff0c\u8fd9\u4e2a\u4ea4\u7ed9\u5e95\u5c42\u7684\u9a71\u52a8\u7a0b\u5e8f\u53bb\u62c6\u5206\uff0c\u5bf9\u4e8e\u6211\u4eec\u7684\u7a0b\u5e8f\u6765\u8bb2\u6211\u4eec\u8ba4\u4e3a\u5b83\u662f\u8fde\u7eed\u5199\u5373\u53ef;\u6211\u4eec\u6bd4\u5982\u60f3\u5c06\u4e00\u4e2a1000W\u6570\u636e\u7684\u6570\u636e\u5e93\u8868\uff0c\u5bfc\u51fa\u5230\u6587\u4ef6;\u6b64\u65f6\uff0c\u4f60\u8981\u4e48\u8fdb\u884c\u5206\u9875\uff0coracle\u5f53\u7136\u7528\u4e09\u5c42\u5305\u88c5\u5373\u53ef\uff0cmysql\u7528limit\uff0c\u4e0d\u8fc7\u5206\u9875\u6bcf\u6b21\u90fd\u4f1a\u65b0\u7684\u67e5\u8be2\uff0c\u800c\u4e14\u968f\u7740\u7ffb\u9875\uff0c\u4f1a\u8d8a\u6765\u8d8a\u6162\uff0c\u5176\u5b9e\u6211\u4eec\u60f3\u62ff\u5230\u4e00\u4e2a\u53e5\u67c4\uff0c\u7136\u540e\u5411\u4e0b\u6e38\u52a8\uff0c\u7f16\u8bd1\u4e00\u90e8\u5206\u6570\u636e(\u598210000\u884c)\u5c06\u5199\u6587\u4ef6\u4e00\u6b21(\u5199\u6587\u4ef6\u7ec6\u8282\u4e0d\u591a\u8bf4\u4e86\uff0c\u8fd9\u4e2a\u662f\u6700\u57fa\u672c\u7684)\uff0c\u9700\u8981\u6ce8\u610f\u7684\u65f6\u5019\u6bcf\u6b21buffer\u7684\u6570\u636e\uff0c\u5728\u7528outputstream\u5199\u5165\u7684\u65f6\u5019\uff0c\u6700\u597dflush\u4e00\u4e0b\uff0c\u5c06\u7f13\u51b2\u533a\u6e05\u7a7a\u4e0b;\u63a5\u4e0b\u6765\uff0c\u6267\u884c\u4e00\u4e2a\u6ca1\u6709where\u6761\u4ef6\u7684SQL\uff0c\u4f1a\u4e0d\u4f1a\u5c06\u5185\u5b58\u6491\u7206\uff1f\u662f\u7684\uff0c\u8fd9\u4e2a\u95ee\u9898\u6211\u4eec\u503c\u5f97\u53bb\u601d\u8003\u4e0b\uff0c\u901a\u8fc7API\u53d1\u73b0\u53ef\u4ee5\u5bf9SQL\u8fdb\u884c\u4e00\u4e9b\u64cd\u4f5c\uff0c\u4f8b\u5982\uff0c\u901a\u8fc7\uff1aPreparedStatementstatement=connection.prepareStatement(sql)\uff0c\u8fd9\u662f\u9ed8\u8ba4\u5f97\u5230\u7684\u9884\u7f16\u8bd1\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6e\uff1a\u3000\u3000PreparedStatementstatement=connection.prepareStatement(sql\uff0cResultSet.TYPE_FORWARD_ONLY\uff0cResultSet.CONCUR_READ_ONLY);\u3000\u3000\u6765\u8bbe\u7f6e\u6e38\u6807\u7684\u65b9\u5f0f\uff0c\u4ee5\u81f3\u4e8e\u6e38\u6807\u4e0d\u662f\u5c06\u6570\u636e\u76f4\u63a5cache\u5230\u672c\u5730\u5185\u5b58\uff0c\u7136\u540e\u901a\u8fc7\u8bbe\u7f6estatement.setFetchSize(200);\u8bbe\u7f6e\u6e38\u6807\u6bcf\u6b21\u904d\u5386\u7684\u5927\u5c0f;OK\uff0c\u8fd9\u4e2a\u5176\u5b9e\u6211\u7528\u8fc7\uff0coracle\u7528\u4e86\u548c\u6ca1\u7528\u6ca1\u533a\u522b\uff0c\u56e0\u4e3aoracle\u7684jdbcAPI\u9ed8\u8ba4\u5c31\u662f\u4e0d\u4f1a\u5c06\u6570\u636ecache\u5230java\u7684\u5185\u5b58\u4e2d\u7684\uff0c\u800cmysql\u91cc\u5934\u8bbe\u7f6e\u6839\u672c\u65e0\u6548\uff0c\u6211\u4e0a\u9762\u8bf4\u4e86\u4e00\u5806\u5e9f\u8bdd\uff0c\u5475\u5475\uff0c\u6211\u53ea\u662f\u60f3\u8bf4\uff0cjava\u63d0\u4f9b\u7684\u6807\u51c6API\u4e5f\u672a\u5fc5\u6709\u6548\uff0c\u5f88\u591a\u65f6\u5019\u8981\u770b\u5382\u5546\u7684\u5b9e\u73b0\u673a\u5236\uff0c\u8fd8\u6709\u8fd9\u4e2a\u8bbe\u7f6e\u662f\u5f88\u591a\u7f51\u4e0a\u8bf4\u6709\u6548\u7684\uff0c\u4f46\u662f\u8fd9\u7eaf\u5c5e\u6284\u88ad;\u5bf9\u4e8eoracle\u4e0a\u9762\u8bf4\u4e86\u4e0d\u7528\u5173\u5fc3\uff0c\u4ed6\u672c\u8eab\u5c31\u4e0d\u662fcache\u5230\u5185\u5b58\uff0c\u6240\u4ee5java\u5185\u5b58\u4e0d\u4f1a\u5bfc\u81f4\u4ec0\u4e48\u95ee\u9898\uff0c\u5982\u679c\u662fmysql\uff0c\u9996\u5148\u5fc5\u987b\u4f7f\u75285\u4ee5\u4e0a\u7684\u7248\u672c\uff0c\u7136\u540e\u5728\u8fde\u63a5\u53c2\u6570\u4e0a\u52a0\u4e0auseCursorFetch=true\u8fd9\u4e2a\u53c2\u6570\uff0c\u81f3\u4e8e\u6e38\u6807\u5927\u5c0f\u53ef\u4ee5\u901a\u8fc7\u8fde\u63a5\u53c2\u6570\u4e0a\u52a0\u4e0a\uff1adefaultFetchSize=1000\u6765\u8bbe\u7f6e\uff0c\u4f8b\u5982\uff1a\u3000\u3000jdbc\uff1amysql\uff1a//xxx.xxx.xxx.xxx\uff1a3306/abc\uff1fzeroDateTimeconvertToNull&useCursorFetch=true&defaultFetchSize=1000\u3000\u3000\u4e0a\u6b21\u88ab\u8fd9\u4e2a\u95ee\u9898\u7ea0\u7ed3\u4e86\u5f88\u4e45(mysql\u7684\u6570\u636e\u8001\u5bfc\u81f4\u7a0b\u5e8f\u5185\u5b58\u81a8\u80c0\uff0c\u5e76\u884c2\u4e2a\u76f4\u63a5\u7cfb\u7edf\u5c31\u5b95\u4e86)\uff0c\u8fd8\u53bb\u770b\u4e86\u5f88\u591a\u6e90\u7801\u624d\u53d1\u73b0\u5947\u8ff9\u7adf\u7136\u5728\u8fd9\u91cc\uff0c\u6700\u540e\u7ecf\u8fc7mysql\u6587\u6863\u7684\u786e\u8ba4\uff0c\u7136\u540e\u8fdb\u884c\u6d4b\u8bd5\uff0c\u5e76\u884c\u591a\u4e2a\uff0c\u800c\u4e14\u6570\u636e\u91cf\u90fd\u662f500W\u4ee5\u4e0a\u7684\uff0c\u90fd\u4e0d\u4f1a\u5bfc\u81f4\u5185\u5b58\u81a8\u80c0\uff0cGC\u4e00\u5207\u6b63\u5e38\uff0c\u8fd9\u4e2a\u95ee\u9898\u7ec8\u4e8e\u5b8c\u7ed3\u4e86\u3002\u3000\u3000\u6211\u4eec\u518d\u804a\u804a\u5176\u4ed6\u7684\uff0c\u6570\u636e\u62c6\u5206\u548c\u5408\u5e76\uff0c\u5f53\u6570\u636e\u6587\u4ef6\u591a\u7684\u65f6\u5019\u6211\u4eec\u60f3\u5408\u5e76\uff0c\u5f53\u6587\u4ef6\u592a\u5927\u60f3\u8981\u62c6\u5206\uff0c\u5408\u5e76\u548c\u62c6\u5206\u7684\u8fc7\u7a0b\u4e5f\u4f1a\u9047\u5230\u7c7b\u4f3c\u7684\u95ee\u9898\uff0c\u8fd8\u597d\uff0c\u8fd9\u4e2a\u5728\u6211\u4eec\u53ef\u63a7\u5236\u7684\u8303\u56f4\u5185\uff0c\u5982\u679c\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u6700\u7ec8\u662f\u53ef\u4ee5\u7ec4\u7ec7\u7684\uff0c\u90a3\u4e48\u5728\u62c6\u5206\u548c\u5408\u5e76\u7684\u65f6\u5019\uff0c\u6b64\u65f6\u5c31\u4e0d\u8981\u6309\u7167\u6570\u636e\u903b\u8f91\u884c\u6570\u6765\u505a\u4e86\uff0c\u56e0\u4e3a\u884c\u6570\u6700\u7ec8\u4f60\u9700\u8981\u89e3\u91ca\u6570\u636e\u672c\u8eab\u6765\u5224\u5b9a\uff0c\u4f46\u662f\u53ea\u662f\u505a\u62c6\u5206\u662f\u6ca1\u6709\u5fc5\u8981\u7684\uff0c\u4f60\u9700\u8981\u7684\u662f\u505a\u4e8c\u8fdb\u5236\u5904\u7406\uff0c\u5728\u8fd9\u4e2a\u4e8c\u8fdb\u5236\u5904\u7406\u8fc7\u7a0b\uff0c\u4f60\u8981\u6ce8\u610f\u4e86\uff0c\u548c\u5e73\u65f6read\u6587\u4ef6\u4e0d\u8981\u4f7f\u7528\u4e00\u6837\u7684\u65b9\u5f0f\uff0c\u5e73\u65f6\u5927\u591a\u5bf9\u4e00\u4e2a\u6587\u4ef6\u8bfb\u53d6\u53ea\u662f\u7528\u4e00\u6b21read\u64cd\u4f5c\uff0c\u5982\u679c\u5bf9\u4e8e\u5927\u6587\u4ef6\u5185\u5b58\u80af\u5b9a\u76f4\u63a5\u6302\u6389\u4e86\uff0c\u4e0d\u7528\u591a\u8bf4\uff0c\u4f60\u6b64\u65f6\u56e0\u8be5\u6bcf\u6b21\u8bfb\u53d6\u4e00\u4e2a\u53ef\u63a7\u8303\u56f4\u7684\u6570\u636e\uff0cread\u65b9\u6cd5\u63d0\u4f9b\u4e86\u91cd\u8f7d\u7684offset\u548clength\u7684\u8303\u56f4\uff0c\u8fd9\u4e2a\u5728\u5faa\u73af\u8fc7\u7a0b\u4e2d\u81ea\u5df1\u53ef\u4ee5\u8ba1\u7b97\u51fa\u6765\uff0c\u5199\u5165\u5927\u6587\u4ef6\u548c\u4e0a\u9762\u4e00\u6837\uff0c\u4e0d\u8981\u8bfb\u53d6\u5230\u4e00\u5b9a\u7a0b\u5e8f\u5c31\u8981\u901a\u8fc7\u5199\u5165\u6d41flush\u5230\u78c1\u76d8;\u5176\u5b9e\u5bf9\u4e8e\u5c0f\u6570\u636e\u91cf\u7684\u5904\u7406\u5728\u73b0\u4ee3\u7684NIO\u6280\u672f\u7684\u4e2d\u4e5f\u6709\u7528\u5230\uff0c\u4f8b\u5982\u591a\u4e2a\u7ec8\u7aef\u540c\u65f6\u8bf7\u6c42\u4e00\u4e2a\u5927\u6587\u4ef6\u4e0b\u8f7d\uff0c\u4f8b\u5982\u89c6\u9891\u4e0b\u8f7d\u5427\uff0c\u5728\u5e38\u89c4\u7684\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u7528java\u7684\u5bb9\u5668\u6765\u5904\u7406\uff0c\u4e00\u822c\u4f1a\u53d1\u751f\u4e24\u79cd\u60c5\u51b5\uff1a\u3000\u3000\u5176\u4e00\u4e3a\u5185\u5b58\u6ea2\u51fa\uff0c\u56e0\u4e3a\u6bcf\u4e2a\u8bf7\u6c42\u90fd\u8981\u52a0\u8f7d\u4e00\u4e2a\u6587\u4ef6\u5927\u5c0f\u7684\u5185\u5b58\u751a\u81f3\u4e8e\uff0c\u56e0\u4e3ajava\u5305\u88c5\u7684\u65f6\u5019\u4f1a\u4ea7\u751f\u5f88\u591a\u5176\u4ed6\u7684\u5185\u5b58\u5f00\u9500\uff0c\u5982\u679c\u4f7f\u7528\u4e8c\u8fdb\u5236\u4f1a\u4ea7\u751f\u5f97\u5c11\u4e00\u4e9b\uff0c\u800c\u4e14\u5728\u7ecf\u8fc7\u8f93\u5165\u8f93\u51fa\u6d41\u7684\u8fc7\u7a0b\u4e2d\u8fd8\u4f1a\u7ecf\u5386\u51e0\u6b21\u5185\u5b58\u62f7\u8d1d\uff0c\u5f53\u7136\u5982\u679c\u6709\u4f60\u7c7b\u4f3cnginx\u4e4b\u7c7b\u7684\u4e2d\u95f4\u4ef6\uff0c\u90a3\u4e48\u4f60\u53ef\u4ee5\u901a\u8fc7send_file\u6a21\u5f0f\u53d1\u9001\u51fa\u53bb\uff0c\u4f46\u662f\u5982\u679c\u4f60\u8981\u7528\u7a0b\u5e8f\u6765\u5904\u7406\u7684\u65f6\u5019\uff0c\u5185\u5b58\u9664\u975e\u4f60\u8db3\u591f\u5927\uff0c\u4f46\u662fjava\u5185\u5b58\u518d\u5927\u4e5f\u4f1a\u6709GC\u7684\u65f6\u5019\uff0c\u5982\u679c\u4f60\u5185\u5b58\u771f\u7684\u5f88\u5927\uff0cGC\u7684\u65f6\u5019\u6b7b\u5b9a\u4e86\uff0c\u5f53\u7136\u8fd9\u4e2a\u5730\u65b9\u4e5f\u53ef\u4ee5\u8003\u8651\u81ea\u5df1\u901a\u8fc7\u76f4\u63a5\u5185\u5b58\u7684\u8c03\u7528\u548c\u91ca\u653e\u6765\u5b9e\u73b0\uff0c\u4e0d\u8fc7\u8981\u6c42\u5269\u4f59\u7684\u7269\u7406\u5185\u5b58\u4e5f\u8db3\u591f\u5927\u624d\u884c\uff0c\u90a3\u4e48\u8db3\u591f\u5927\u662f\u591a\u5927\u5462\uff1f\u8fd9\u4e2a\u4e0d\u597d\u8bf4\uff0c\u8981\u770b\u6587\u4ef6\u672c\u8eab\u7684\u5927\u5c0f\u548c\u8bbf\u95ee\u7684\u9891\u7387;\u3000\u3000\u5176\u4e8c\u4e3a\u5047\u5982\u5185\u5b58\u8db3\u591f\u5927\uff0c\u65e0\u9650\u5236\u5927\uff0c\u90a3\u4e48\u6b64\u65f6\u7684\u9650\u5236\u5c31\u662f\u7ebf\u7a0b\uff0c\u4f20\u7edf\u7684IO\u6a21\u578b\u662f\u7ebf\u7a0b\u662f\u4e00\u4e2a\u8bf7\u6c42\u4e00\u4e2a\u7ebf\u7a0b\uff0c\u8fd9\u4e2a\u7ebf\u7a0b\u4ece\u4e3b\u7ebf\u7a0b\u4ece\u7ebf\u7a0b\u6c60\u4e2d\u5206\u914d\u540e\uff0c\u5c31\u5f00\u59cb\u5de5\u4f5c\uff0c\u7ecf\u8fc7\u4f60\u7684Context\u5305\u88c5\u3001Filter\u3001\u62e6\u622a\u5668\u3001\u4e1a\u52a1\u4ee3\u7801\u5404\u4e2a\u5c42\u6b21\u548c\u4e1a\u52a1\u903b\u8f91\u3001\u8bbf\u95ee\u6570\u636e\u5e93\u3001\u8bbf\u95ee\u6587\u4ef6\u3001\u6e32\u67d3\u7ed3\u679c\u7b49\u7b49\uff0c\u5176\u5b9e\u6574\u4e2a\u8fc7\u7a0b\u7ebf\u7a0b\u90fd\u662f\u88ab\u6302\u4f4f\u7684\uff0c\u6240\u4ee5\u8fd9\u90e8\u5206\u8d44\u6e90\u975e\u5e38\u6709\u9650\uff0c\u800c\u4e14\u5982\u679c\u662f\u5927\u6587\u4ef6\u64cd\u4f5c\u662f\u5c5e\u4e8eIO\u5bc6\u96c6\u578b\u7684\u64cd\u4f5c\uff0c\u5927\u91cf\u7684CPU\u65f6\u95f4\u662f\u7a7a\u4f59\u7684\uff0c\u65b9\u6cd5\u6700\u76f4\u63a5\u5f53\u7136\u662f\u589e\u52a0\u7ebf\u7a0b\u6570\u6765\u63a7\u5236\uff0c\u5f53\u7136\u5185\u5b58\u8db3\u591f\u5927\u4e5f\u6709\u8db3\u591f\u7684\u7a7a\u95f4\u6765\u7533\u8bf7\u7ebf\u7a0b\u6c60\uff0c\u4e0d\u8fc7\u4e00\u822c\u6765\u8bb2\u4e00\u4e2a\u8fdb\u7a0b\u7684\u7ebf\u7a0b\u6c60\u4e00\u822c\u4f1a\u53d7\u5230\u9650\u5236\u4e5f\u4e0d\u5efa\u8bae\u592a\u591a\u7684\uff0c\u800c\u5728\u6709\u9650\u7684\u7cfb\u7edf\u8d44\u6e90\u4e0b\uff0c\u8981\u63d0\u9ad8\u6027\u80fd\uff0c\u6211\u4eec\u5f00\u59cb\u6709\u4e86newIO\u6280\u672f\uff0c\u4e5f\u5c31\u662fNIO\u6280\u672f\uff0c\u65b0\u7248\u7684\u91cc\u9762\u53c8\u6709\u4e86AIO\u6280\u672f\uff0cNIO\u53ea\u80fd\u7b97\u662f\u5f02\u6b65IO\uff0c\u4f46\u662f\u5728\u4e2d\u95f4\u8bfb\u5199\u8fc7\u7a0b\u4ecd\u7136\u662f\u963b\u585e\u7684(\u4e5f\u5c31\u662f\u5728\u771f\u6b63\u7684\u8bfb\u5199\u8fc7\u7a0b\uff0c\u4f46\u662f\u4e0d\u4f1a\u53bb\u5173\u5fc3\u4e2d\u9014\u7684\u54cd\u5e94)\uff0c\u8fd8\u672a\u505a\u5230\u771f\u6b63\u7684\u5f02\u6b65IO\uff0c\u5728\u76d1\u542cconnect\u7684\u65f6\u5019\u4ed6\u662f\u4e0d\u9700\u8981\u5f88\u591a\u7ebf\u7a0b\u53c2\u4e0e\u7684\uff0c\u6709\u5355\u72ec\u7684\u7ebf\u7a0b\u53bb\u5904\u7406\uff0c\u8fde\u63a5\u4e5f\u53c8\u4f20\u7edf\u7684socket\u53d8\u6210\u4e86selector\uff0c\u5bf9\u4e8e\u4e0d\u9700\u8981\u8fdb\u884c\u6570\u636e\u5904\u7406\u7684\u662f\u65e0\u9700\u5206\u914d\u7ebf\u7a0b\u5904\u7406\u7684;\u800cAIO\u901a\u8fc7\u4e86\u4e00\u79cd\u6240\u8c13\u7684\u56de\u8c03\u6ce8\u518c\u6765\u5b8c\u6210\uff0c\u5f53\u7136\u8fd8\u9700\u8981OS\u7684\u652f\u6301\uff0c\u5f53\u4f1a\u6389\u7684\u65f6\u5019\u4f1a\u53bb\u5206\u914d\u7ebf\u7a0b\uff0c\u76ee\u524d\u8fd8\u4e0d\u662f\u5f88\u6210\u719f\uff0c\u6027\u80fd\u6700\u591a\u548cNIO\u5403\u5e73\uff0c\u4e0d\u8fc7\u968f\u7740\u6280\u672f\u53d1\u5c55\uff0cAIO\u5fc5\u7136\u4f1a\u8d85\u8d8aNIO\uff0c\u76ee\u524d\u8c37\u6b4cV8\u865a\u62df\u673a\u5f15\u64ce\u6240\u9a71\u52a8\u7684node.js\u5c31\u662f\u7c7b\u4f3c\u7684\u6a21\u5f0f\uff0c\u6709\u5173\u8fd9\u79cd\u6280\u672f\u4e0d\u662f\u672c\u6587\u7684\u8bf4\u660e\u91cd\u70b9;\u3000\u3000\u5c06\u4e0a\u9762\u4e24\u8005\u7ed3\u5408\u8d77\u6765\u5c31\u662f\u8981\u89e3\u51b3\u5927\u6587\u4ef6\uff0c\u8fd8\u8981\u5e76\u884c\u5ea6\uff0c\u6700\u571f\u7684\u65b9\u6cd5\u662f\u5c06\u6587\u4ef6\u6bcf\u6b21\u8bf7\u6c42\u7684\u5927\u5c0f\u964d\u4f4e\u5230\u4e00\u5b9a\u7a0b\u5ea6\uff0c\u59828K(\u8fd9\u4e2a\u5927\u5c0f\u662f\u7ecf\u8fc7\u6d4b\u8bd5\u540e\u7f51\u7edc\u4f20\u8f93\u8f83\u4e3a\u9002\u5b9c\u7684\u5927\u5c0f\uff0c\u672c\u5730\u8bfb\u53d6\u6587\u4ef6\u5e76\u4e0d\u9700\u8981\u8fd9\u4e48\u5c0f)\uff0c\u5982\u679c\u518d\u505a\u6df1\u5165\u4e00\u4e9b\uff0c\u53ef\u4ee5\u505a\u4e00\u5b9a\u7a0b\u5ea6\u7684cache\uff0c\u5c06\u591a\u4e2a\u8bf7\u6c42\u7684\u4e00\u6837\u7684\u6587\u4ef6\uff0ccache\u5728\u5185\u5b58\u6216\u5206\u5e03\u5f0f\u7f13\u5b58\u4e2d\uff0c\u4f60\u4e0d\u7528\u5c06\u6574\u4e2a\u6587\u4ef6cache\u5728\u5185\u5b58\u4e2d\uff0c\u5c06\u8fd1\u671f\u4f7f\u7528\u7684cache\u51e0\u79d2\u5de6\u53f3\u5373\u53ef\uff0c\u6216\u4f60\u53ef\u4ee5\u91c7\u7528\u4e00\u4e9b\u70ed\u70b9\u7684\u7b97\u6cd5\u6765\u914d\u5408;\u7c7b\u4f3c\u8fc5\u96f7\u4e0b\u8f7d\u7684\u65ad\u70b9\u4f20\u9001\u4e2d(\u4e0d\u8fc7\u8fc5\u96f7\u7684\u7f51\u7edc\u534f\u8bae\u4e0d\u592a\u4e00\u6837)\uff0c\u5b83\u5728\u5904\u7406\u4e0b\u8f7d\u6570\u636e\u7684\u65f6\u5019\u672a\u5fc5\u662f\u8fde\u7eed\u7684\uff0c\u53ea\u8981\u6700\u7ec8\u80fd\u5408\u5e76\u5373\u53ef\uff0c\u5728\u670d\u52a1\u5668\u7aef\u53ef\u4ee5\u53cd\u8fc7\u6765\uff0c\u8c01\u6b63\u597d\u9700\u8981\u8fd9\u5757\u7684\u6570\u636e\uff0c\u5c31\u7ed9\u5b83\u5c31\u53ef\u4ee5;\u624d\u7528NIO\u540e\uff0c\u53ef\u4ee5\u652f\u6301\u5f88\u5927\u7684\u8fde\u63a5\u548c\u5e76\u53d1\uff0c\u672c\u5730\u901a\u8fc7NIO\u505asocket\u8fde\u63a5\u6d4b\u8bd5\uff0c100\u4e2a\u7ec8\u7aef\u540c\u65f6\u8bf7\u6c42\u4e00\u4e2a\u7ebf\u7a0b\u7684\u670d\u52a1\u5668\uff0c\u6b63\u5e38\u7684WEB\u5e94\u7528\u662f\u7b2c\u4e00\u4e2a\u6587\u4ef6\u6ca1\u6709\u53d1\u9001\u5b8c\u6210\uff0c\u7b2c\u4e8c\u4e2a\u8bf7\u6c42\u8981\u4e48\u7b49\u5f85\uff0c\u8981\u4e48\u8d85\u65f6\uff0c\u8981\u4e48\u76f4\u63a5\u62d2\u7edd\u5f97\u4e0d\u5230\u8fde\u63a5\uff0c\u6539\u6210NIO\u540e\u6b64\u65f6100\u4e2a\u8bf7\u6c42\u90fd\u80fd\u8fde\u63a5\u4e0a\u670d\u52a1\u5668\u7aef\uff0c\u670d\u52a1\u7aef\u53ea\u9700\u89811\u4e2a\u7ebf\u7a0b\u6765\u5904\u7406\u6570\u636e\u5c31\u53ef\u4ee5\uff0c\u5c06\u5f88\u591a\u6570\u636e\u4f20\u9012\u7ed9\u8fd9\u4e9b\u8fde\u63a5\u8bf7\u6c42\u8d44\u6e90\uff0c\u6bcf\u6b21\u8bfb\u53d6\u4e00\u90e8\u5206\u6570\u636e\u4f20\u9012\u51fa\u53bb\uff0c\u4e0d\u8fc7\u53ef\u4ee5\u8ba1\u7b97\u7684\u662f\uff0c\u5728\u603b\u4f53\u957f\u8fde\u63a5\u4f20\u8f93\u8fc7\u7a0b\u4e2d\u603b\u4f53\u6548\u7387\u5e76\u4e0d\u4f1a\u63d0\u5347\uff0c\u53ea\u662f\u76f8\u5bf9\u76f8\u5e94\u548c\u6240\u5f00\u9500\u7684\u5185\u5b58\u5f97\u5230\u91cf\u5316\u63a7\u5236\uff0c\u8fd9\u5c31\u662f\u6280\u672f\u7684\u9b45\u529b\uff0c\u4e5f\u8bb8\u4e0d\u8981\u592a\u591a\u7684\u7b97\u6cd5\uff0c\u4e0d\u8fc7\u4f60\u5f97\u61c2\u4ed6\u3002\u3000\u3000\u7c7b\u4f3c\u7684\u6570\u636e\u5904\u7406\u8fd8\u6709\u5f88\u591a\uff0c\u6709\u4e9b\u65f6\u5019\u8fd8\u4f1a\u5c06\u5c31\u6548\u7387\u95ee\u9898\uff0c\u6bd4\u5982\u5728HBase\u7684\u6587\u4ef6\u62c6\u5206\u548c\u5408\u5e76\u8fc7\u7a0b\u4e2d\uff0c\u8981\u4e0d\u5f71\u54cd\u7ebf\u4e0a\u4e1a\u52a1\u662f\u6bd4\u8f83\u96be\u7684\u4e8b\u60c5\uff0c\u5f88\u591a\u95ee\u9898\u503c\u5f97\u6211\u4eec\u53bb\u7814\u7a76\u573a\u666f\uff0c\u56e0\u4e3a\u4e0d\u540c\u7684\u573a\u666f\u6709\u4e0d\u540c\u7684\u65b9\u6cd5\u53bb\u89e3\u51b3\uff0c\u4f46\u662f\u5927\u540c\u5c0f\u5f02\uff0c\u660e\u767d\u601d\u60f3\u548c\u65b9\u6cd5\uff0c\u660e\u767d\u5185\u5b58\u548c\u4f53\u7cfb\u67b6\u6784\uff0c\u660e\u767d\u4f60\u6240\u9762\u4e34\u7684\u662f\u6c88\u9633\u7684\u573a\u666f\uff0c\u53ea\u662f\u7ec6\u8282\u4e0a\u6539\u53d8\u53ef\u4ee5\u5e26\u6765\u60ca\u4eba\u7684\u6548\u679c\u3002

\u4f17\u6240\u5468\u77e5\uff0cjava\u5728\u5904\u7406\u6570\u636e\u91cf\u6bd4\u8f83\u5927\u7684\u65f6\u5019\uff0c\u52a0\u8f7d\u5230\u5185\u5b58\u5fc5\u7136\u4f1a\u5bfc\u81f4\u5185\u5b58\u6ea2\u51fa\uff0c\u800c\u5728\u4e00\u4e9b\u6570\u636e\u5904\u7406\u4e2d\u6211\u4eec\u4e0d\u5f97\u4e0d\u53bb\u5904\u7406\u6d77\u91cf\u6570\u636e\uff0c\u5728\u505a\u6570\u636e\u5904\u7406\u4e2d\uff0c\u6211\u4eec\u5e38\u89c1\u7684\u624b\u6bb5\u662f\u5206\u89e3\uff0c\u538b\u7f29\uff0c\u5e76\u884c\uff0c\u4e34\u65f6\u6587\u4ef6\u7b49\u65b9\u6cd5;\u3000\u3000\u4f8b\u5982\uff0c\u6211\u4eec\u8981\u5c06\u6570\u636e\u5e93(\u4e0d\u8bba\u662f\u4ec0\u4e48\u6570\u636e\u5e93)\u7684\u6570\u636e\u5bfc\u51fa\u5230\u4e00\u4e2a\u6587\u4ef6\uff0c\u4e00\u822c\u662fExcel\u6216\u6587\u672c\u683c\u5f0f\u7684CSV;\u5bf9\u4e8eExcel\u6765\u8bb2\uff0c\u5bf9\u4e8ePOI\u548cJXL\u7684\u63a5\u53e3\uff0c\u4f60\u5f88\u591a\u65f6\u5019\u6ca1\u6709\u6cd5\u53bb\u63a7\u5236\u5185\u5b58\u4ec0\u4e48\u65f6\u5019\u5411\u78c1\u76d8\u5199\u5165\uff0c\u5f88\u6076\u5fc3\uff0c\u800c\u4e14\u8fd9\u4e9bAPI\u5728\u5185\u5b58\u6784\u9020\u7684\u5bf9\u8c61\u5927\u5c0f\u5c06\u6bd4\u6570\u636e\u539f\u6709\u7684\u5927\u5c0f\u8981\u5927\u5f88\u591a\u500d\u6570\uff0c\u6240\u4ee5\u4f60\u4e0d\u5f97\u4e0d\u53bb\u62c6\u5206Excel\uff0c\u8fd8\u597d\uff0cPOI\u5f00\u59cb\u610f\u8bc6\u5230\u8fd9\u4e2a\u95ee\u9898\uff0c\u57283.8.4\u7684\u7248\u672c\u540e\uff0c\u5f00\u59cb\u63d0\u4f9bcache\u7684\u884c\u6570\uff0c\u63d0\u4f9b\u4e86SXSSFWorkbook\u7684\u63a5\u53e3\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u5728\u5185\u5b58\u4e2d\u7684\u884c\u6570\uff0c\u4e0d\u8fc7\u53ef\u60dc\u7684\u662f\uff0c\u4ed6\u5f53\u4f60\u8d85\u8fc7\u8fd9\u4e2a\u884c\u6570\uff0c\u6bcf\u6dfb\u52a0\u4e00\u884c\uff0c\u5b83\u5c31\u5c06\u76f8\u5bf9\u884c\u6570\u524d\u9762\u7684\u4e00\u884c\u5199\u5165\u78c1\u76d8(\u5982\u4f60\u8bbe\u7f6e2000\u884c\u7684\u8bdd\uff0c\u5f53\u4f60\u5199\u7b2c20001\u884c\u7684\u65f6\u5019\uff0c\u4ed6\u4f1a\u5c06\u7b2c\u4e00\u884c\u5199\u5165\u78c1\u76d8)\uff0c\u5176\u5b9e\u8fd9\u4e2a\u65f6\u5019\u4ed6\u4e9b\u7684\u4e34\u65f6\u6587\u4ef6\uff0c\u4ee5\u81f3\u4e8e\u4e0d\u6d88\u8017\u5185\u5b58\uff0c\u4e0d\u8fc7\u8fd9\u6837\u4f60\u4f1a\u53d1\u73b0\uff0c\u5237\u78c1\u76d8\u7684\u9891\u7387\u4f1a\u975e\u5e38\u9ad8\uff0c\u6211\u4eec\u7684\u786e\u4e0d\u60f3\u8fd9\u6837\uff0c\u56e0\u4e3a\u6211\u4eec\u60f3\u8ba9\u4ed6\u8fbe\u5230\u4e00\u4e2a\u8303\u56f4\u4e00\u6b21\u6027\u5c06\u6570\u636e\u5237\u5982\u78c1\u76d8\uff0c\u6bd4\u5982\u4e00\u6b21\u52371M\u4e4b\u7c7b\u7684\u505a\u6cd5\uff0c\u53ef\u60dc\u73b0\u5728\u8fd8\u6ca1\u6709\u8fd9\u79cdAPI\uff0c\u5f88\u75db\u82e6\uff0c\u6211\u81ea\u5df1\u505a\u8fc7\u6d4b\u8bd5\uff0c\u901a\u8fc7\u5199\u5c0f\u7684Excel\u6bd4\u4f7f\u7528\u76ee\u524d\u63d0\u4f9b\u5237\u78c1\u76d8\u7684API\u6765\u5199\u5927\u6587\u4ef6\uff0c\u6548\u7387\u8981\u9ad8\u4e00\u4e9b\uff0c\u800c\u4e14\u8fd9\u6837\u5982\u679c\u8bbf\u95ee\u7684\u4eba\u7a0d\u5fae\u591a\u4e00\u4e9b\u78c1\u76d8IO\u53ef\u80fd\u4f1a\u625b\u4e0d\u4f4f\uff0c\u56e0\u4e3aIO\u8d44\u6e90\u662f\u975e\u5e38\u6709\u9650\u7684\uff0c\u6240\u4ee5\u8fd8\u662f\u62c6\u6587\u4ef6\u624d\u662f\u4e0a\u7b56;\u800c\u5f53\u6211\u4eec\u5199CSV\uff0c\u4e5f\u5c31\u662f\u6587\u672c\u7c7b\u578b\u7684\u6587\u4ef6\uff0c\u6211\u4eec\u5f88\u591a\u65f6\u5019\u662f\u53ef\u4ee5\u81ea\u5df1\u63a7\u5236\u7684\uff0c\u4e0d\u8fc7\u4f60\u4e0d\u8981\u7528CSV\u81ea\u5df1\u63d0\u4f9b\u7684API\uff0c\u4e5f\u662f\u4e0d\u592a\u53ef\u63a7\u7684\uff0cCSV\u672c\u8eab\u5c31\u662f\u6587\u672c\u6587\u4ef6\uff0c\u4f60\u6309\u7167\u6587\u672c\u683c\u5f0f\u5199\u5165\u5373\u53ef\u88abCSV\u8bc6\u522b\u51fa\u6765;\u5982\u4f55\u5199\u5165\u5462\uff1f\u4e0b\u9762\u6765\u8bf4\u8bf4\u3002\u3002\u3002\u3000\u3000\u5728\u5904\u7406\u6570\u636e\u5c42\u9762\uff0c\u5982\u4ece\u6570\u636e\u5e93\u4e2d\u8bfb\u53d6\u6570\u636e\uff0c\u751f\u6210\u672c\u5730\u6587\u4ef6\uff0c\u5199\u4ee3\u7801\u4e3a\u4e86\u65b9\u4fbf\uff0c\u6211\u4eec\u672a\u5fc5\u89811M\u600e\u4e48\u6765\u5904\u7406\uff0c\u8fd9\u4e2a\u4ea4\u7ed9\u5e95\u5c42\u7684\u9a71\u52a8\u7a0b\u5e8f\u53bb\u62c6\u5206\uff0c\u5bf9\u4e8e\u6211\u4eec\u7684\u7a0b\u5e8f\u6765\u8bb2\u6211\u4eec\u8ba4\u4e3a\u5b83\u662f\u8fde\u7eed\u5199\u5373\u53ef;\u6211\u4eec\u6bd4\u5982\u60f3\u5c06\u4e00\u4e2a1000W\u6570\u636e\u7684\u6570\u636e\u5e93\u8868\uff0c\u5bfc\u51fa\u5230\u6587\u4ef6;\u6b64\u65f6\uff0c\u4f60\u8981\u4e48\u8fdb\u884c\u5206\u9875\uff0coracle\u5f53\u7136\u7528\u4e09\u5c42\u5305\u88c5\u5373\u53ef\uff0cmysql\u7528limit\uff0c\u4e0d\u8fc7\u5206\u9875\u6bcf\u6b21\u90fd\u4f1a\u65b0\u7684\u67e5\u8be2\uff0c\u800c\u4e14\u968f\u7740\u7ffb\u9875\uff0c\u4f1a\u8d8a\u6765\u8d8a\u6162\uff0c\u5176\u5b9e\u6211\u4eec\u60f3\u62ff\u5230\u4e00\u4e2a\u53e5\u67c4\uff0c\u7136\u540e\u5411\u4e0b\u6e38\u52a8\uff0c\u7f16\u8bd1\u4e00\u90e8\u5206\u6570\u636e(\u598210000\u884c)\u5c06\u5199\u6587\u4ef6\u4e00\u6b21(\u5199\u6587\u4ef6\u7ec6\u8282\u4e0d\u591a\u8bf4\u4e86\uff0c\u8fd9\u4e2a\u662f\u6700\u57fa\u672c\u7684)\uff0c\u9700\u8981\u6ce8\u610f\u7684\u65f6\u5019\u6bcf\u6b21buffer\u7684\u6570\u636e\uff0c\u5728\u7528outputstream\u5199\u5165\u7684\u65f6\u5019\uff0c\u6700\u597dflush\u4e00\u4e0b\uff0c\u5c06\u7f13\u51b2\u533a\u6e05\u7a7a\u4e0b;\u63a5\u4e0b\u6765\uff0c\u6267\u884c\u4e00\u4e2a\u6ca1\u6709where\u6761\u4ef6\u7684SQL\uff0c\u4f1a\u4e0d\u4f1a\u5c06\u5185\u5b58\u6491\u7206\uff1f\u662f\u7684\uff0c\u8fd9\u4e2a\u95ee\u9898\u6211\u4eec\u503c\u5f97\u53bb\u601d\u8003\u4e0b\uff0c\u901a\u8fc7API\u53d1\u73b0\u53ef\u4ee5\u5bf9SQL\u8fdb\u884c\u4e00\u4e9b\u64cd\u4f5c\uff0c\u4f8b\u5982\uff0c\u901a\u8fc7\uff1aPreparedStatementstatement=connection.prepareStatement(sql)\uff0c\u8fd9\u662f\u9ed8\u8ba4\u5f97\u5230\u7684\u9884\u7f16\u8bd1\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6e\uff1a\u3000\u3000PreparedStatementstatement=connection.prepareStatement(sql\uff0cResultSet.TYPE_FORWARD_ONLY\uff0cResultSet.CONCUR_READ_ONLY);\u3000\u3000\u6765\u8bbe\u7f6e\u6e38\u6807\u7684\u65b9\u5f0f\uff0c\u4ee5\u81f3\u4e8e\u6e38\u6807\u4e0d\u662f\u5c06\u6570\u636e\u76f4\u63a5cache\u5230\u672c\u5730\u5185\u5b58\uff0c\u7136\u540e\u901a\u8fc7\u8bbe\u7f6estatement.setFetchSize(200);\u8bbe\u7f6e\u6e38\u6807\u6bcf\u6b21\u904d\u5386\u7684\u5927\u5c0f;OK\uff0c\u8fd9\u4e2a\u5176\u5b9e\u6211\u7528\u8fc7\uff0coracle\u7528\u4e86\u548c\u6ca1\u7528\u6ca1\u533a\u522b\uff0c\u56e0\u4e3aoracle\u7684jdbcAPI\u9ed8\u8ba4\u5c31\u662f\u4e0d\u4f1a\u5c06\u6570\u636ecache\u5230java\u7684\u5185\u5b58\u4e2d\u7684\uff0c\u800cmysql\u91cc\u5934\u8bbe\u7f6e\u6839\u672c\u65e0\u6548\uff0c\u6211\u4e0a\u9762\u8bf4\u4e86\u4e00\u5806\u5e9f\u8bdd\uff0c\u5475\u5475\uff0c\u6211\u53ea\u662f\u60f3\u8bf4\uff0cjava\u63d0\u4f9b\u7684\u6807\u51c6API\u4e5f\u672a\u5fc5\u6709\u6548\uff0c\u5f88\u591a\u65f6\u5019\u8981\u770b\u5382\u5546\u7684\u5b9e\u73b0\u673a\u5236\uff0c\u8fd8\u6709\u8fd9\u4e2a\u8bbe\u7f6e\u662f\u5f88\u591a\u7f51\u4e0a\u8bf4\u6709\u6548\u7684\uff0c\u4f46\u662f\u8fd9\u7eaf\u5c5e\u6284\u88ad;\u5bf9\u4e8eoracle\u4e0a\u9762\u8bf4\u4e86\u4e0d\u7528\u5173\u5fc3\uff0c\u4ed6\u672c\u8eab\u5c31\u4e0d\u662fcache\u5230\u5185\u5b58\uff0c\u6240\u4ee5java\u5185\u5b58\u4e0d\u4f1a\u5bfc\u81f4\u4ec0\u4e48\u95ee\u9898\uff0c\u5982\u679c\u662fmysql\uff0c\u9996\u5148\u5fc5\u987b\u4f7f\u75285\u4ee5\u4e0a\u7684\u7248\u672c\uff0c\u7136\u540e\u5728\u8fde\u63a5\u53c2\u6570\u4e0a\u52a0\u4e0auseCursorFetch=true\u8fd9\u4e2a\u53c2\u6570\uff0c\u81f3\u4e8e\u6e38\u6807\u5927\u5c0f\u53ef\u4ee5\u901a\u8fc7\u8fde\u63a5\u53c2\u6570\u4e0a\u52a0\u4e0a\uff1adefaultFetchSize=1000\u6765\u8bbe\u7f6e\uff0c\u4f8b\u5982\uff1a\u3000\u3000jdbc\uff1amysql\uff1a//xxx.xxx.xxx.xxx\uff1a3306/abc\uff1fzeroDateTimeconvertToNull&useCursorFetch=true&defaultFetchSize=1000\u3000\u3000\u4e0a\u6b21\u88ab\u8fd9\u4e2a\u95ee\u9898\u7ea0\u7ed3\u4e86\u5f88\u4e45(mysql\u7684\u6570\u636e\u8001\u5bfc\u81f4\u7a0b\u5e8f\u5185\u5b58\u81a8\u80c0\uff0c\u5e76\u884c2\u4e2a\u76f4\u63a5\u7cfb\u7edf\u5c31\u5b95\u4e86)\uff0c\u8fd8\u53bb\u770b\u4e86\u5f88\u591a\u6e90\u7801\u624d\u53d1\u73b0\u5947\u8ff9\u7adf\u7136\u5728\u8fd9\u91cc\uff0c\u6700\u540e\u7ecf\u8fc7mysql\u6587\u6863\u7684\u786e\u8ba4\uff0c\u7136\u540e\u8fdb\u884c\u6d4b\u8bd5\uff0c\u5e76\u884c\u591a\u4e2a\uff0c\u800c\u4e14\u6570\u636e\u91cf\u90fd\u662f500W\u4ee5\u4e0a\u7684\uff0c\u90fd\u4e0d\u4f1a\u5bfc\u81f4\u5185\u5b58\u81a8\u80c0\uff0cGC\u4e00\u5207\u6b63\u5e38\uff0c\u8fd9\u4e2a\u95ee\u9898\u7ec8\u4e8e\u5b8c\u7ed3\u4e86\u3002\u3000\u3000\u6211\u4eec\u518d\u804a\u804a\u5176\u4ed6\u7684\uff0c\u6570\u636e\u62c6\u5206\u548c\u5408\u5e76\uff0c\u5f53\u6570\u636e\u6587\u4ef6\u591a\u7684\u65f6\u5019\u6211\u4eec\u60f3\u5408\u5e76\uff0c\u5f53\u6587\u4ef6\u592a\u5927\u60f3\u8981\u62c6\u5206\uff0c\u5408\u5e76\u548c\u62c6\u5206\u7684\u8fc7\u7a0b\u4e5f\u4f1a\u9047\u5230\u7c7b\u4f3c\u7684\u95ee\u9898\uff0c\u8fd8\u597d\uff0c\u8fd9\u4e2a\u5728\u6211\u4eec\u53ef\u63a7\u5236\u7684\u8303\u56f4\u5185\uff0c\u5982\u679c\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u6700\u7ec8\u662f\u53ef\u4ee5\u7ec4\u7ec7\u7684\uff0c\u90a3\u4e48\u5728\u62c6\u5206\u548c\u5408\u5e76\u7684\u65f6\u5019\uff0c\u6b64\u65f6\u5c31\u4e0d\u8981\u6309\u7167\u6570\u636e\u903b\u8f91\u884c\u6570\u6765\u505a\u4e86\uff0c\u56e0\u4e3a\u884c\u6570\u6700\u7ec8\u4f60\u9700\u8981\u89e3\u91ca\u6570\u636e\u672c\u8eab\u6765\u5224\u5b9a\uff0c\u4f46\u662f\u53ea\u662f\u505a\u62c6\u5206\u662f\u6ca1\u6709\u5fc5\u8981\u7684\uff0c\u4f60\u9700\u8981\u7684\u662f\u505a\u4e8c\u8fdb\u5236\u5904\u7406\uff0c\u5728\u8fd9\u4e2a\u4e8c\u8fdb\u5236\u5904\u7406\u8fc7\u7a0b\uff0c\u4f60\u8981\u6ce8\u610f\u4e86\uff0c\u548c\u5e73\u65f6read\u6587\u4ef6\u4e0d\u8981\u4f7f\u7528\u4e00\u6837\u7684\u65b9\u5f0f\uff0c\u5e73\u65f6\u5927\u591a\u5bf9\u4e00\u4e2a\u6587\u4ef6\u8bfb\u53d6\u53ea\u662f\u7528\u4e00\u6b21read\u64cd\u4f5c\uff0c\u5982\u679c\u5bf9\u4e8e\u5927\u6587\u4ef6\u5185\u5b58\u80af\u5b9a\u76f4\u63a5\u6302\u6389\u4e86\uff0c\u4e0d\u7528\u591a\u8bf4\uff0c\u4f60\u6b64\u65f6\u56e0\u8be5\u6bcf\u6b21\u8bfb\u53d6\u4e00\u4e2a\u53ef\u63a7\u8303\u56f4\u7684\u6570\u636e\uff0cread\u65b9\u6cd5\u63d0\u4f9b\u4e86\u91cd\u8f7d\u7684offset\u548clength\u7684\u8303\u56f4\uff0c\u8fd9\u4e2a\u5728\u5faa\u73af\u8fc7\u7a0b\u4e2d\u81ea\u5df1\u53ef\u4ee5\u8ba1\u7b97\u51fa\u6765\uff0c\u5199\u5165\u5927\u6587\u4ef6\u548c\u4e0a\u9762\u4e00\u6837\uff0c\u4e0d\u8981\u8bfb\u53d6\u5230\u4e00\u5b9a\u7a0b\u5e8f\u5c31\u8981\u901a\u8fc7\u5199\u5165\u6d41flush\u5230\u78c1\u76d8;\u5176\u5b9e\u5bf9\u4e8e\u5c0f\u6570\u636e\u91cf\u7684\u5904\u7406\u5728\u73b0\u4ee3\u7684NIO\u6280\u672f\u7684\u4e2d\u4e5f\u6709\u7528\u5230\uff0c\u4f8b\u5982\u591a\u4e2a\u7ec8\u7aef\u540c\u65f6\u8bf7\u6c42\u4e00\u4e2a\u5927\u6587\u4ef6\u4e0b\u8f7d\uff0c\u4f8b\u5982\u89c6\u9891\u4e0b\u8f7d\u5427\uff0c\u5728\u5e38\u89c4\u7684\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u7528java\u7684\u5bb9\u5668\u6765\u5904\u7406\uff0c\u4e00\u822c\u4f1a\u53d1\u751f\u4e24\u79cd\u60c5\u51b5\uff1a\u3000\u3000\u5176\u4e00\u4e3a\u5185\u5b58\u6ea2\u51fa\uff0c\u56e0\u4e3a\u6bcf\u4e2a\u8bf7\u6c42\u90fd\u8981\u52a0\u8f7d\u4e00\u4e2a\u6587\u4ef6\u5927\u5c0f\u7684\u5185\u5b58\u751a\u81f3\u4e8e\uff0c\u56e0\u4e3ajava\u5305\u88c5\u7684\u65f6\u5019\u4f1a\u4ea7\u751f\u5f88\u591a\u5176\u4ed6\u7684\u5185\u5b58\u5f00\u9500\uff0c\u5982\u679c\u4f7f\u7528\u4e8c\u8fdb\u5236\u4f1a\u4ea7\u751f\u5f97\u5c11\u4e00\u4e9b\uff0c\u800c\u4e14\u5728\u7ecf\u8fc7\u8f93\u5165\u8f93\u51fa\u6d41\u7684\u8fc7\u7a0b\u4e2d\u8fd8\u4f1a\u7ecf\u5386\u51e0\u6b21\u5185\u5b58\u62f7\u8d1d\uff0c\u5f53\u7136\u5982\u679c\u6709\u4f60\u7c7b\u4f3cnginx\u4e4b\u7c7b\u7684\u4e2d\u95f4\u4ef6\uff0c\u90a3\u4e48\u4f60\u53ef\u4ee5\u901a\u8fc7send_file\u6a21\u5f0f\u53d1\u9001\u51fa\u53bb\uff0c\u4f46\u662f\u5982\u679c\u4f60\u8981\u7528\u7a0b\u5e8f\u6765\u5904\u7406\u7684\u65f6\u5019\uff0c\u5185\u5b58\u9664\u975e\u4f60\u8db3\u591f\u5927\uff0c\u4f46\u662fjava\u5185\u5b58\u518d\u5927\u4e5f\u4f1a\u6709GC\u7684\u65f6\u5019\uff0c\u5982\u679c\u4f60\u5185\u5b58\u771f\u7684\u5f88\u5927\uff0cGC\u7684\u65f6\u5019\u6b7b\u5b9a\u4e86\uff0c\u5f53\u7136\u8fd9\u4e2a\u5730\u65b9\u4e5f\u53ef\u4ee5\u8003\u8651\u81ea\u5df1\u901a\u8fc7\u76f4\u63a5\u5185\u5b58\u7684\u8c03\u7528\u548c\u91ca\u653e\u6765\u5b9e\u73b0\uff0c\u4e0d\u8fc7\u8981\u6c42\u5269\u4f59\u7684\u7269\u7406\u5185\u5b58\u4e5f\u8db3\u591f\u5927\u624d\u884c\uff0c\u90a3\u4e48\u8db3\u591f\u5927\u662f\u591a\u5927\u5462\uff1f\u8fd9\u4e2a\u4e0d\u597d\u8bf4\uff0c\u8981\u770b\u6587\u4ef6\u672c\u8eab\u7684\u5927\u5c0f\u548c\u8bbf\u95ee\u7684\u9891\u7387;\u3000\u3000\u5176\u4e8c\u4e3a\u5047\u5982\u5185\u5b58\u8db3\u591f\u5927\uff0c\u65e0\u9650\u5236\u5927\uff0c\u90a3\u4e48\u6b64\u65f6\u7684\u9650\u5236\u5c31\u662f\u7ebf\u7a0b\uff0c\u4f20\u7edf\u7684IO\u6a21\u578b\u662f\u7ebf\u7a0b\u662f\u4e00\u4e2a\u8bf7\u6c42\u4e00\u4e2a\u7ebf\u7a0b\uff0c\u8fd9\u4e2a\u7ebf\u7a0b\u4ece\u4e3b\u7ebf\u7a0b\u4ece\u7ebf\u7a0b\u6c60\u4e2d\u5206\u914d\u540e\uff0c\u5c31\u5f00\u59cb\u5de5\u4f5c\uff0c\u7ecf\u8fc7\u4f60\u7684Context\u5305\u88c5\u3001Filter\u3001\u62e6\u622a\u5668\u3001\u4e1a\u52a1\u4ee3\u7801\u5404\u4e2a\u5c42\u6b21\u548c\u4e1a\u52a1\u903b\u8f91\u3001\u8bbf\u95ee\u6570\u636e\u5e93\u3001\u8bbf\u95ee\u6587\u4ef6\u3001\u6e32\u67d3\u7ed3\u679c\u7b49\u7b49\uff0c\u5176\u5b9e\u6574\u4e2a\u8fc7\u7a0b\u7ebf\u7a0b\u90fd\u662f\u88ab\u6302\u4f4f\u7684\uff0c\u6240\u4ee5\u8fd9\u90e8\u5206\u8d44\u6e90\u975e\u5e38\u6709\u9650\uff0c\u800c\u4e14\u5982\u679c\u662f\u5927\u6587\u4ef6\u64cd\u4f5c\u662f\u5c5e\u4e8eIO\u5bc6\u96c6\u578b\u7684\u64cd\u4f5c\uff0c\u5927\u91cf\u7684CPU\u65f6\u95f4\u662f\u7a7a\u4f59\u7684\uff0c\u65b9\u6cd5\u6700\u76f4\u63a5\u5f53\u7136\u662f\u589e\u52a0\u7ebf\u7a0b\u6570\u6765\u63a7\u5236\uff0c\u5f53\u7136\u5185\u5b58\u8db3\u591f\u5927\u4e5f\u6709\u8db3\u591f\u7684\u7a7a\u95f4\u6765\u7533\u8bf7\u7ebf\u7a0b\u6c60\uff0c\u4e0d\u8fc7\u4e00\u822c\u6765\u8bb2\u4e00\u4e2a\u8fdb\u7a0b\u7684\u7ebf\u7a0b\u6c60\u4e00\u822c\u4f1a\u53d7\u5230\u9650\u5236\u4e5f\u4e0d\u5efa\u8bae\u592a\u591a\u7684\uff0c\u800c\u5728\u6709\u9650\u7684\u7cfb\u7edf\u8d44\u6e90\u4e0b\uff0c\u8981\u63d0\u9ad8\u6027\u80fd\uff0c\u6211\u4eec\u5f00\u59cb\u6709\u4e86newIO\u6280\u672f\uff0c\u4e5f\u5c31\u662fNIO\u6280\u672f\uff0c\u65b0\u7248\u7684\u91cc\u9762\u53c8\u6709\u4e86AIO\u6280\u672f\uff0cNIO\u53ea\u80fd\u7b97\u662f\u5f02\u6b65IO\uff0c\u4f46\u662f\u5728\u4e2d\u95f4\u8bfb\u5199\u8fc7\u7a0b\u4ecd\u7136\u662f\u963b\u585e\u7684(\u4e5f\u5c31\u662f\u5728\u771f\u6b63\u7684\u8bfb\u5199\u8fc7\u7a0b\uff0c\u4f46\u662f\u4e0d\u4f1a\u53bb\u5173\u5fc3\u4e2d\u9014\u7684\u54cd\u5e94)\uff0c\u8fd8\u672a\u505a\u5230\u771f\u6b63\u7684\u5f02\u6b65IO\uff0c\u5728\u76d1\u542cconnect\u7684\u65f6\u5019\u4ed6\u662f\u4e0d\u9700\u8981\u5f88\u591a\u7ebf\u7a0b\u53c2\u4e0e\u7684\uff0c\u6709\u5355\u72ec\u7684\u7ebf\u7a0b\u53bb\u5904\u7406\uff0c\u8fde\u63a5\u4e5f\u53c8\u4f20\u7edf\u7684socket\u53d8\u6210\u4e86selector\uff0c\u5bf9\u4e8e\u4e0d\u9700\u8981\u8fdb\u884c\u6570\u636e\u5904\u7406\u7684\u662f\u65e0\u9700\u5206\u914d\u7ebf\u7a0b\u5904\u7406\u7684;\u800cAIO\u901a\u8fc7\u4e86\u4e00\u79cd\u6240\u8c13\u7684\u56de\u8c03\u6ce8\u518c\u6765\u5b8c\u6210\uff0c\u5f53\u7136\u8fd8\u9700\u8981OS\u7684\u652f\u6301\uff0c\u5f53\u4f1a\u6389\u7684\u65f6\u5019\u4f1a\u53bb\u5206\u914d\u7ebf\u7a0b\uff0c\u76ee\u524d\u8fd8\u4e0d\u662f\u5f88\u6210\u719f\uff0c\u6027\u80fd\u6700\u591a\u548cNIO\u5403\u5e73\uff0c\u4e0d\u8fc7\u968f\u7740\u6280\u672f\u53d1\u5c55\uff0cAIO\u5fc5\u7136\u4f1a\u8d85\u8d8aNIO\uff0c\u76ee\u524d\u8c37\u6b4cV8\u865a\u62df\u673a\u5f15\u64ce\u6240\u9a71\u52a8\u7684node.js\u5c31\u662f\u7c7b\u4f3c\u7684\u6a21\u5f0f\uff0c\u6709\u5173\u8fd9\u79cd\u6280\u672f\u4e0d\u662f\u672c\u6587\u7684\u8bf4\u660e\u91cd\u70b9;\u3000\u3000\u5c06\u4e0a\u9762\u4e24\u8005\u7ed3\u5408\u8d77\u6765\u5c31\u662f\u8981\u89e3\u51b3\u5927\u6587\u4ef6\uff0c\u8fd8\u8981\u5e76\u884c\u5ea6\uff0c\u6700\u571f\u7684\u65b9\u6cd5\u662f\u5c06\u6587\u4ef6\u6bcf\u6b21\u8bf7\u6c42\u7684\u5927\u5c0f\u964d\u4f4e\u5230\u4e00\u5b9a\u7a0b\u5ea6\uff0c\u59828K(\u8fd9\u4e2a\u5927\u5c0f\u662f\u7ecf\u8fc7\u6d4b\u8bd5\u540e\u7f51\u7edc\u4f20\u8f93\u8f83\u4e3a\u9002\u5b9c\u7684\u5927\u5c0f\uff0c\u672c\u5730\u8bfb\u53d6\u6587\u4ef6\u5e76\u4e0d\u9700\u8981\u8fd9\u4e48\u5c0f)\uff0c\u5982\u679c\u518d\u505a\u6df1\u5165\u4e00\u4e9b\uff0c\u53ef\u4ee5\u505a\u4e00\u5b9a\u7a0b\u5ea6\u7684cache\uff0c\u5c06\u591a\u4e2a\u8bf7\u6c42\u7684\u4e00\u6837\u7684\u6587\u4ef6\uff0ccache\u5728\u5185\u5b58\u6216\u5206\u5e03\u5f0f\u7f13\u5b58\u4e2d\uff0c\u4f60\u4e0d\u7528\u5c06\u6574\u4e2a\u6587\u4ef6cache\u5728\u5185\u5b58\u4e2d\uff0c\u5c06\u8fd1\u671f\u4f7f\u7528\u7684cache\u51e0\u79d2\u5de6\u53f3\u5373\u53ef\uff0c\u6216\u4f60\u53ef\u4ee5\u91c7\u7528\u4e00\u4e9b\u70ed\u70b9\u7684\u7b97\u6cd5\u6765\u914d\u5408;\u7c7b\u4f3c\u8fc5\u96f7\u4e0b\u8f7d\u7684\u65ad\u70b9\u4f20\u9001\u4e2d(\u4e0d\u8fc7\u8fc5\u96f7\u7684\u7f51\u7edc\u534f\u8bae\u4e0d\u592a\u4e00\u6837)\uff0c\u5b83\u5728\u5904\u7406\u4e0b\u8f7d\u6570\u636e\u7684\u65f6\u5019\u672a\u5fc5\u662f\u8fde\u7eed\u7684\uff0c\u53ea\u8981\u6700\u7ec8\u80fd\u5408\u5e76\u5373\u53ef\uff0c\u5728\u670d\u52a1\u5668\u7aef\u53ef\u4ee5\u53cd\u8fc7\u6765\uff0c\u8c01\u6b63\u597d\u9700\u8981\u8fd9\u5757\u7684\u6570\u636e\uff0c\u5c31\u7ed9\u5b83\u5c31\u53ef\u4ee5;\u624d\u7528NIO\u540e\uff0c\u53ef\u4ee5\u652f\u6301\u5f88\u5927\u7684\u8fde\u63a5\u548c\u5e76\u53d1\uff0c\u672c\u5730\u901a\u8fc7NIO\u505asocket\u8fde\u63a5\u6d4b\u8bd5\uff0c100\u4e2a\u7ec8\u7aef\u540c\u65f6\u8bf7\u6c42\u4e00\u4e2a\u7ebf\u7a0b\u7684\u670d\u52a1\u5668\uff0c\u6b63\u5e38\u7684WEB\u5e94\u7528\u662f\u7b2c\u4e00\u4e2a\u6587\u4ef6\u6ca1\u6709\u53d1\u9001\u5b8c\u6210\uff0c\u7b2c\u4e8c\u4e2a\u8bf7\u6c42\u8981\u4e48\u7b49\u5f85\uff0c\u8981\u4e48\u8d85\u65f6\uff0c\u8981\u4e48\u76f4\u63a5\u62d2\u7edd\u5f97\u4e0d\u5230\u8fde\u63a5\uff0c\u6539\u6210NIO\u540e\u6b64\u65f6100\u4e2a\u8bf7\u6c42\u90fd\u80fd\u8fde\u63a5\u4e0a\u670d\u52a1\u5668\u7aef\uff0c\u670d\u52a1\u7aef\u53ea\u9700\u89811\u4e2a\u7ebf\u7a0b\u6765\u5904\u7406\u6570\u636e\u5c31\u53ef\u4ee5\uff0c\u5c06\u5f88\u591a\u6570\u636e\u4f20\u9012\u7ed9\u8fd9\u4e9b\u8fde\u63a5\u8bf7\u6c42\u8d44\u6e90\uff0c\u6bcf\u6b21\u8bfb\u53d6\u4e00\u90e8\u5206\u6570\u636e\u4f20\u9012\u51fa\u53bb\uff0c\u4e0d\u8fc7\u53ef\u4ee5\u8ba1\u7b97\u7684\u662f\uff0c\u5728\u603b\u4f53\u957f\u8fde\u63a5\u4f20\u8f93\u8fc7\u7a0b\u4e2d\u603b\u4f53\u6548\u7387\u5e76\u4e0d\u4f1a\u63d0\u5347\uff0c\u53ea\u662f\u76f8\u5bf9\u76f8\u5e94\u548c\u6240\u5f00\u9500\u7684\u5185\u5b58\u5f97\u5230\u91cf\u5316\u63a7\u5236\uff0c\u8fd9\u5c31\u662f\u6280\u672f\u7684\u9b45\u529b\uff0c\u4e5f\u8bb8\u4e0d\u8981\u592a\u591a\u7684\u7b97\u6cd5\uff0c\u4e0d\u8fc7\u4f60\u5f97\u61c2\u4ed6\u3002\u3000\u3000\u7c7b\u4f3c\u7684\u6570\u636e\u5904\u7406\u8fd8\u6709\u5f88\u591a\uff0c\u6709\u4e9b\u65f6\u5019\u8fd8\u4f1a\u5c06\u5c31\u6548\u7387\u95ee\u9898\uff0c\u6bd4\u5982\u5728HBase\u7684\u6587\u4ef6\u62c6\u5206\u548c\u5408\u5e76\u8fc7\u7a0b\u4e2d\uff0c\u8981\u4e0d\u5f71\u54cd\u7ebf\u4e0a\u4e1a\u52a1\u662f\u6bd4\u8f83\u96be\u7684\u4e8b\u60c5\uff0c\u5f88\u591a\u95ee\u9898\u503c\u5f97\u6211\u4eec\u53bb\u7814\u7a76\u573a\u666f\uff0c\u56e0\u4e3a\u4e0d\u540c\u7684\u573a\u666f\u6709\u4e0d\u540c\u7684\u65b9\u6cd5\u53bb\u89e3\u51b3\uff0c\u4f46\u662f\u5927\u540c\u5c0f\u5f02\uff0c\u660e\u767d\u601d\u60f3\u548c\u65b9\u6cd5\uff0c\u660e\u767d\u5185\u5b58\u548c\u4f53\u7cfb\u67b6\u6784\uff0c\u660e\u767d\u4f60\u6240\u9762\u4e34\u7684\u662f\u6c88\u9633\u7684\u573a\u666f\uff0c\u53ea\u662f\u7ec6\u8282\u4e0a\u6539\u53d8\u53ef\u4ee5\u5e26\u6765\u60ca\u4eba\u7684\u6548\u679c\u3002

 众所周知,java在处理数据量比较大的时候,加载到内存必然会导致内存溢出,而在一些数据处理中我们不得不去处理海量数据,在做数据处理中,我们常见的手段是分解,压缩,并行,临时文件等方法;

  例如,我们要将数据库(不论是什么数据库)的数据导出到一个文件,一般是Excel或文本格式的CSV;对于Excel来讲,对于POI和JXL的接口,你很多时候没有办法去控制内存什么时候向磁盘写入,很恶心,而且这些API在内存构造的对象大小将比数据原有的大小要大很多倍数,所以你不得不去拆分Excel,还好,POI开始意识到这个问题,在3.8.4的版本后,开始提供cache的行数,提供了SXSSFWorkbook的接口,可以设置在内存中的行数,不过可惜的是,他当你超过这个行数,每添加一行,它就将相对行数前面的一行写入磁盘(如你设置2000行的话,当你写第20001行的时候,他会将第一行写入磁盘),其实这个时候他些的临时文件,以至于不消耗内存,不过这样你会发现,刷磁盘的频率会非常高,我们的确不想这样,因为我们想让他达到一个范围一次性将数据刷如磁盘,比如一次刷1M之类的做法,可惜现在还没有这种API,很痛苦,我自己做过测试,通过写小的Excel比使用目前提供刷磁盘的API来写大文件,效率要高一些,而且这样如果访问的人稍微多一些磁盘IO可能会扛不住,因为IO资源是非常有限的,所以还是拆文件才是上策;而当我们写CSV,也就是文本类型的文件,我们很多时候是可以自己控制的,不过你不要用CSV自己提供的API,也是不太可控的,CSV本身就是文本文件,你按照文本格式写入即可被CSV识别出来;如何写入呢?下面来说说。。。

  在处理数据层面,如从数据库中读取数据,生成本地文件,写代码为了方便,我们未必要1M怎么来处理,这个交给底层的驱动程序去拆分,对于我们的程序来讲我们认为它是连续写即可;我们比如想将一个1000W数据的数据库表,导出到文件;此时,你要么进行分页,oracle当然用三层包装即可,mysql用limit,不过分页每次都会新的查询,而且随着翻页,会越来越慢,其实我们想拿到一个句柄,然后向下游动,编译一部分数据(如10000行)将写文件一次(写文件细节不多说了,这个是最基本的),需要注意的时候每次buffer的数据,在用outputstream写入的时候,最好flush一下,将缓冲区清空下;接下来,执行一个没有where条件的SQL,会不会将内存撑爆?是的,这个问题我们值得去思考下,通过API发现可以对SQL进行一些操作,例如,通过:PreparedStatement statement = connection.prepareStatement(sql),这是默认得到的预编译,还可以通过设置:

  PreparedStatement statement = connection.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);

  来设置游标的方式,以至于游标不是将数据直接cache到本地内存,然后通过设置statement.setFetchSize(200);设置游标每次遍历的大小;OK,这个其实我用过,oracle用了和没用没区别,因为oracle的jdbc API默认就是不会将数据cache到java的内存中的,而mysql里头设置根本无效,我上面说了一堆废话,呵呵,我只是想说,java提供的标准API也未必有效,很多时候要看厂商的实现机制,还有这个设置是很多网上说有效的,但是这纯属抄袭;对于oracle上面说了不用关心,他本身就不是cache到内存,所以java内存不会导致什么问题,如果是mysql,首先必须使用5以上的版本,然后在连接参数上加上useCursorFetch=true这个参数,至于游标大小可以通过连接参数上加上:defaultFetchSize=1000来设置,例如:

  jdbc:mysql://xxx.xxx.xxx.xxx:3306/abc?zeroDateTimeconvertToNull&useCursorFetch=true&defaultFetchSize=1000< /span>

  上次被这个问题纠结了很久(mysql的数据老导致程序内存膨胀,并行2个直接系统就宕了),还去看了很多源码才发现奇迹竟然在这里,最后经过mysql文档的确认,然后进行测试,并行多个,而且数据量都是500W以上的,都不会导致内存膨胀,GC一切正常,这个问题终于完结了。

  我们再聊聊其他的,数据拆分和合并,当数据文件多的时候我们想合并,当文件太大想要拆分,合并和拆分的过程也会遇到类似的问题,还好,这个在我们可控制的范围内,如果文件中的数据最终是可以组织的,那么在拆分和合并的时候,此时就不要按照数据逻辑行数来做了,因为行数最终你需要解释数据本身来判定,但是只是做拆分是没有必要的,你需要的是做二进制处理,在这个二进制处理过程,你要注意了,和平时read文件不要使用一样的方式,平时大多对一个文件读取只是用一次read操作,如果对于大文件内存肯定直接挂掉了,不用多说,你此时因该每次读取一个可控范围的数据,read方法提供了重载的offset和length的范围,这个在循环过程中自己可以计算出来,写入大文件和上面一样,不要读取到一定程序就要通过写入流flush到磁盘;其实对于小数据量的处理在现代的NIO技术的中也有用到,例如多个终端同时请求一个大文件下载,例如视频下载吧,在常规的情况下,如果用java的容器来处理,一般会发生两种情况:

  其一为内存溢出,因为每个请求都要加载一个文件大小的内存甚至于更多,因为java包装的时候会产生很多其他的内存开销,如果使用二进制会产生得少一些,而且在经过输入输出流的过程中还会经历几次内存拷贝,当然如果有你类似nginx之类的中间件,那么你可以通过send_file模式发送出去,但是如果你要用程序来处理的时候,内存除非你足够大,但是java内存再大也会有GC的时候,如果你内存真的很大,GC的时候死定了,当然这个地方也可以考虑自己通过直接内存的调用和释放来实现,不过要求剩余的物理内存也足够大才行,那么足够大是多大呢?这个不好说,要看文件本身的大小和访问的频率;

  其二为假如内存足够大,无限制大,那么此时的限制就是线程,传统的IO模型是线程是一个请求一个线程,这个线程从主线程从线程池中分配后,就开始工作,经过你的Context包装、Filter、拦截器、业务代码各个层次和业务逻辑、访问数据库、访问文件、渲染结果等等,其实整个过程线程都是被挂住的,所以这部分资源非常有限,而且如果是大文件操作是属于IO密集型的操作,大量的CPU时间是空余的,方法最直接当然是增加线程数来控制,当然内存足够大也有足够的空间来申请线程池,不过一般来讲一个进程的线程池一般会受到限制也不建议太多的,而在有限的系统资源下,要提高性能,我们开始有了new IO技术,也就是NIO技术,新版的里面又有了AIO技术,NIO只能算是异步IO,但是在中间读写过程仍然是阻塞的(也就是在真正的读写过程,但是不会去关心中途的响应),还未做到真正的异步IO,在监听connect的时候他是不需要很多线程参与的,有单独的线程去处理,连接也又传统的socket变成了selector,对于不需要进行数据处理的是无需分配线程处理的;而AIO通过了一种所谓的回调注册来完成,当然还需要OS的支持,当会掉的时候会去分配线程,目前还不是很成熟,性能最多和NIO吃平,不过随着技术发展,AIO必然会超越NIO,目前谷歌V8虚拟机引擎所驱动的node.js就是类似的模式,有关这种技术不是本文的说明重点;

  将上面两者结合起来就是要解决大文件,还要并行度,最土的方法是将文件每次请求的大小降低到一定程度,如8K(这个大小是经过测试后网络传输较为适宜的大小,本地读取文件并不需要这么小),如果再做深入一些,可以做一定程度的cache,将多个请求的一样的文件,cache在内存或分布式缓存中,你不用将整个文件cache在内存中,将近期使用的cache几秒左右即可,或你可以采用一些热点的算法来配合;类似迅雷下载的断点传送中(不过迅雷的网络协议不太一样),它在处理下载数据的时候未必是连续的,只要最终能合并即可,在服务器端可以反过来,谁正好需要这块的数据,就给它就可以;才用NIO后,可以支持很大的连接和并发,本地通过NIO做socket连接测试,100个终端同时请求一个线程的服务器,正常的WEB应用是第一个文件没有发送完成,第二个请求要么等待,要么超时,要么直接拒绝得不到连接,改成NIO后此时100个请求都能连接上服务器端,服务端只需要1个线程来处理数据就可以,将很多数据传递给这些连接请求资源,每次读取一部分数据传递出去,不过可以计算的是,在总体长连接传输过程中总体效率并不会提升,只是相对相应和所开销的内存得到量化控制,这就是技术的魅力,也许不要太多的算法,不过你得懂他。

  类似的数据处理还有很多,有些时候还会将就效率问题,比如在HBase的文件拆分和合并过程中,要不影响线上业务是比较难的事情,很多问题值得我们去研究场景,因为不同的场景有不同的方法去解决,但是大同小异,明白思想和方法,明白内存和体系
架构,明白你所面临的是沈阳的场景,只是细节上改变可以带来惊人的效果。

http://soft.chinabyte.com/database/258/12609258.shtml

扩展阅读:java自带api文档 ... java常用基础api大全 ... zookeeper java api ... java基础面试题2024 ... java入门网站 ... java在线api中文文档 ... java8 api ... java中一些常用的api方法 ... java api是干嘛的 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网