2014年12月30日 星期二

[MySQL]innodb_stats_on_metadata記得要關閉

        最近有個log DB量實在有點大,其中一個大Table每天新增三千萬筆資料,目前Table逼近100G,不得已只好拆成Partitioning Table,以方便清除歷史資料及查詢。

        以MySQL來說,Partitioning Table效能及操作方便性沒有Oracle及SQL Server來的好,分區太多會影響效能,若按天拆分,會有90個分區,因User要求保留三個月資料,後來與User商量的結果,保留近七天的熱資料在分區表上,七天以前的冷資料會每天拆成一個表,這樣要查資料都還調的到

        等我拆完表後,發現一個奇怪的現象,就是Response慢慢慢,比不拆前還慢

        show index慢
     
        查information_schema.PARTITIONS也慢
        
        連Explain也慢

        我還沒Query怎麼會慢成這樣,此時忽然想起之前有看到一篇Solving INFORMATION_SCHEMA slowness,關掉innodb_stats_on_metadata就OK囉
set global innodb_stats_on_metadata=0;
        記得My.ini也要加就是了,要不然重啟又啟用了
innodb_stats_on_metadata=0
        5.5版本預設是開啟的,用5.6就沒有這個問題, 因為5.6預設是關閉的!


        

0 意見:

張貼留言