亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1706 | 回復: 0
打印 上一主題 下一主題

[Hive] 關(guān)于mysql archive存儲引擎-專門存儲審計和日志數(shù)據(jù) [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-19 13:55 |只看該作者 |倒序瀏覽
關(guān)于存儲(流水)日志,可能沒有必要采用MyISAM或者InnoDB, 可以考慮Archive Storage Engine<BR><BR><A href="http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#archive-storage-engine"><FONT color=#0000ff>MySQL Archive Storage Engine </FONT></A><BR><BR style="FONT-WEIGHT: bold; COLOR: rgb(255,0,0)"><SPAN style="FONT-WEIGHT: bold; COLOR: rgb(255,0,0)">zt: http://haohetao.javaeye.com/blog/671737</SPAN><BR>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">政府還有一個讓數(shù)據(jù)庫專家攤上更多事情的職能,就是安全控制和數(shù)據(jù)審計。那些管理著海量數(shù)據(jù)倉庫的企業(yè)官員常常得回答諸如“何人何時修改了什么”或者“何人何時查看了什么”這樣的提問。那些擁有數(shù)以千計的員工,開展著不計其數(shù)的業(yè)務(wù)的企業(yè),每天都會產(chǎn)生出大量的日志記錄數(shù)據(jù),而且必須將其好好保存。為了幫助數(shù)據(jù)庫專家應(yīng)對數(shù)據(jù)爆炸的挑戰(zhàn),MySQL5.0引入了一種新的數(shù)據(jù)存儲引擎,叫做Archive。這個先進的數(shù)據(jù)管理工具,讓MySQL的專家們擁有了處理和管理海量數(shù)據(jù)的新式武器。</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"><SPAN>Archive引擎作用:</SPAN> 為大量很少引用的歷史、歸檔、或安全審計信息的存儲和檢索提供了完美的解決方案,區(qū)別于InnoDB、MyISAM提供壓縮功能,沒有索引。</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px" sizset="53" sizcache="8">關(guān)于Archive存儲引擎的介紹和性能測試的文章:<A href="http://dev.mysql.com/tech-resources/articles/storage-engine.html"><FONT color=#0000ff>http://dev.mysql.com/tech-resources/articles/storage-engine.html</FONT></A> </P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px" sizset="54" sizcache="8">不喜歡英文的童鞋可以看這篇翻譯過來的文章(推薦,翻譯的不錯):<A href="http://guangxin.name/2009/04/mysql50-archive-1.html"><FONT color=#810081>http://guangxin.name/2009/04/mysql50-archive-1.html</FONT></A> </P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">根據(jù)英文的測試結(jié)論來看,Archive表比MyISAM表要小大約75%,比支持事務(wù)處理的InnoDB表小大約83%。當數(shù)據(jù)量非常大的時候Archive的插入性能表現(xiàn)會較MyISAM為佳。</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">Archive表的性能是否可能超過MyISAM?答案是肯定的。根據(jù)MySQL工程師的資料,當表內(nèi)的數(shù)據(jù)達到1.5GB這個量級,CPU又比較快的時候,Archive表的執(zhí)行性能就會超越MyISAM表。因為這個時候,CPU會取代I/O子系統(tǒng)成為性能瓶頸。別忘了Archive表比其他任何類型的表執(zhí)行的物理I/O操作都要少。</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">較小的空間占用也能在你移植MySQL數(shù)據(jù)的時候發(fā)揮作用。當你需要把數(shù)據(jù)從一臺MySQL服務(wù)器轉(zhuǎn)移到另一臺的時候,Archive表可以方便地移植到新的MySQL環(huán)境,你只需將保存Archive表的底層文件復制過去就可以了。</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">本著懷疑一切的精神,本人進行了如下的測試:</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"><STRONG>①建立一個iplog的表:</STRONG> </P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">mysql&gt; create table iplog(id int auto_increment not null primary key,userid int,ip char(15),visit_time datetime) engine=innodb;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"><STRONG>②使用python腳本插入50w數(shù)據(jù):</STRONG> </P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">#!/usr/bin/mysql</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">import MySQLdb</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">conn = MySQLdb.connect(host=”localhost”,user=”root”,passwd=”asdf”,db=”test”,unix_socket=”/data/mysql_3306/mysql.sock”)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">cursor = conn.cursor()</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">for i in range(0,500000):</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">sql = “insert into iplog(userid,ip,visit_time) values(%s,’127.0.0.1′,now())”%i</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">cursor.execute(sql)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">cursor.close()</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">conn.commit()</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">conn.close()</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"><STRONG>③分別創(chuàng)建iplog對應(yīng)的archive、 InnoDB、MyISAM對應(yīng)表格并插入數(shù)據(jù)</STRONG> </P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">mysql&gt; create table iplog_archive engine=archive as select * from iplog;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">Query OK, 500000 rows affected (2.73 sec)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">Records: 500000 &nbsp;Duplicates: 0 &nbsp;Warnings: 0</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">mysql&gt; create table iplog_myisam engine=myisam as select * from iplog;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">Query OK, 500000 rows affected (1.39 sec)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">Records: 500000 &nbsp;Duplicates: 0 &nbsp;Warnings: 0</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">mysql&gt; create table iplog_innodb engine=innodb as select * from iplog;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">Query OK, 500000 rows affected (4.78 sec)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">Records: 500000 &nbsp;Duplicates: 0 &nbsp;Warnings: 0</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"><STRONG>④比較它們的大小</STRONG> </P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">mysql&gt; select table_name,engine,ROUND(data_length/1024/1024,2) total_size_mb,table_rows from information_schema.tables</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">-&gt; where table_schema = ‘test’ and table_name like ‘iplog_%’;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+—————+———+—————+————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">| table_name &nbsp; &nbsp;| engine &nbsp;| total_size_mb | table_rows |</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+—————+———+—————+————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">| iplog_archive | ARCHIVE | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2.10 | &nbsp; &nbsp; 500000 |</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">| iplog_innodb &nbsp;| InnoDB &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; 30.56 | &nbsp; &nbsp; 500289 |</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">| iplog_myisam &nbsp;| MyISAM &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; 29.56 | &nbsp; &nbsp; 500000 |</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+—————+———+—————+————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">3 rows in set (0.01 sec)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"><STRONG>⑤測試select性能:</STRONG> </P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">mysql&gt; select * from iplog_archive where userid=250000;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+——–+——–+———–+———————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">| id &nbsp; &nbsp; | userid | ip &nbsp; &nbsp; &nbsp; &nbsp;| visit_time &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+——–+——–+———–+———————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">| 750001 | 250000 | 127.0.0.1 | 2010-02-01 10:54:20 |</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+——–+——–+———–+———————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">1 row in set (0.31 sec)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">mysql&gt; select * from iplog_innodb where userid=250000;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+——–+——–+———–+———————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">| id &nbsp; &nbsp; | userid | ip &nbsp; &nbsp; &nbsp; &nbsp;| visit_time &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+——–+——–+———–+———————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">| 750001 | 250000 | 127.0.0.1 | 2010-02-01 10:54:20 |</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+——–+——–+———–+———————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">1 row in set (0.48 sec)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">mysql&gt; select * from iplog_myisam where userid=250000;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+——–+——–+———–+———————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">| id &nbsp; &nbsp; | userid | ip &nbsp; &nbsp; &nbsp; &nbsp;| visit_time &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+——–+——–+———–+———————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">| 750001 | 250000 | 127.0.0.1 | 2010-02-01 10:54:20 |</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">+——–+——–+———–+———————+</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">1 row in set (0.10 sec)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"><STRONG>⑥測試insert性能():</STRONG> </P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">使用python腳本再插入50w數(shù)據(jù),查看插入性能,腳本如下,沒有寫的很復雜,測試InnoDB或者MyISAM要修改代碼</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">#!/usr/bin/mysql</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">import MySQLdb</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">conn = MySQLdb.connect(host=”localhost”,user=”root”,passwd=”asdf”,db=”test”,unix_socket=”/data/mysql_3306/mysql.sock”)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">cursor = conn.cursor()</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">for i in range(500001,1000000):</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">sql = “insert into iplog_archive(userid,ip,visit_time) values(%s,’127.0.0.1′,now())”%i</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">cursor.execute(sql)</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">cursor.close()</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">conn.commit()</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">conn.close()</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">archive</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">real &nbsp; &nbsp;1m30.467s</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">user &nbsp; &nbsp;0m22.270s</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">sys &nbsp; &nbsp; 0m12.670s</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">InnoDB</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">real &nbsp; &nbsp;0m48.622s</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">user &nbsp; &nbsp;0m18.722s</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">sys &nbsp; &nbsp; 0m9.322s</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">MyISAM</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">real &nbsp; &nbsp;1m32.129s</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">user &nbsp; &nbsp;0m13.183s</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">sys &nbsp; &nbsp; 0m5.624s</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">測試結(jié)果是archive可以大規(guī)模的減少空間減少%93(這個與表有關(guān)系),select性能介于MyISAM和InnoDB之間,大規(guī)模insert時效率比MyISAM和InnoDB高,至于原因“因為這個時候,CPU會取代I/O子系統(tǒng)成為性能瓶頸。別忘了Archive表比其他任何類型的表執(zhí)行的物理I/O操作都要少。”</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">歡迎大家共同探討,包括測試用例以及任何想法。</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">&nbsp;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">關(guān)于time命令的執(zhí)行結(jié)果關(guān)于real、user、sys說明</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px 0.5em; TEXT-INDENT: 20pt; PADDING-TOP: 0px">1)實際時間(real time): 從command命令行開始執(zhí)行到運行終止的消逝時間;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px 0.5em; TEXT-INDENT: 20pt; PADDING-TOP: 0px">2)用戶 CPU時間(user CPU time): 命令執(zhí)行完成花費的用戶CPU時間,即命令在用戶態(tài)中執(zhí)行時間總和;</P>
<P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px 0.5em; TEXT-INDENT: 20pt; PADDING-TOP: 0px">3)系統(tǒng) CPU時間(system CPU time): 命令執(zhí)行完成花費的系統(tǒng)CPU時間,即命令在核心態(tài)中執(zhí)行時間總和。</P><BR>
<DIV></DIV>
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP