OPTIMIZE TABLE

INNODB 不支持


mysql> OPTIMIZE TABLE t; +--------+----------+----------+-------------------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +--------+----------+----------+-------------------------------------------------------------------+ | test.t | optimize | note | Table does not support optimize, doing recreate + analyze instead | //INNODB | test.t | optimize | status | OK | +--------+----------+----------+-------------------------------------------------------------------+ 2 rows in set (0.24 sec)
mysql> show create table t;
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                        |
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
| t     | CREATE TABLE `t` (`a` int(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`a`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.18 sec)

?

使?OPTIMIZE ?table 對 innodb 支持

 mysqld --datadir=/data --basedir=/usr/local/mysql56 --user=mysql --gdb --skip-new

?

mysql> OPTIMIZE TABLE t;
Query OK, 0 rows affected (0.27 sec)
Records: 0  Duplicates: 0  Warnings: 0

原理:映射為 alter table

By default, OPTIMIZE TABLE does not work for tables created using any other storage engine and returns a result indicating this lack of support.

You can make OPTIMIZTABLE work for other storage engines by starting mysqld with the --skip-new option.

In this case, OPTIMIZE TABLE is just mapped to ALTER TABLE.

?

?

OPTIMIZE TABLE continues to use ALGORITHM=COPY under the following conditions:When the old_alter_table system variable is turned ON.

set old_alter_table=on; //alter table 修改表采用 algorithm=copy 方式
When the mysqld --skip-new option is enabled.

?

?

?

?

google:

Everytime you do optimize MySQL, by using mysqlcheck -A -o or using ./mysql_optimize from here.
You may see the output
Table does not support optimize, doing recreate + analyze instead.It is because the table that you are using is InnoDB.You can optimize the InnoDB tables by using this.ALTER TABLE table.name ENGINE='InnoDB';This will create a copy of the original table, and drop the original table, and replace to the original place.Although this is safe, but I suggest you do backup and test first before doing this.

?

mysql> ALTER TABLE t ENGINE='InnoDB';          
Query OK, 0 rows affected (0.29 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> select * from t;
+---+
| a |
+---+
| 7 |
+---+
1 row in set (0.01 sec)

?

innodb的數據庫不支持optimize,可以用ALTER TABLE table.name ENGINE='InnoDB';
該方法會對舊表以復制的方式新建一個新表,然后刪除舊表。雖然這個過程是安全的,
但是在進行操作時還是先進行備份為好

?


MyISAM:正常
mysql> show create table t;
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                        |
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
| t     | CREATE TABLE `t` (`a` int(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`a`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)mysql> OPTIMIZE TABLE t;
+--------+----------+----------+----------+
| Table  | Op       | Msg_type | Msg_text |
+--------+----------+----------+----------+
| test.t | optimize | status   | OK       |
+--------+----------+----------+----------+
1 row in set (0.00 sec)

?

轉載于:https://www.cnblogs.com/zengkefu/p/5636220.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271463.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271463.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271463.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

r語言 面板數據回歸_R語言_018回歸

回歸分析是統計學的核心。它其實是一個廣義的概念,指那些用一個或多個預測變量來預測響應變量的方法。通常,回歸分析可以用來挑選與響應變量相關的解釋變量,可以描述兩者的關系,也可以生成一個等式,通過解釋變量來預測…

Integer對象范圍(-128-127)之間(Integer. valueOf()方法)

1.Integer. valueOf()方法的作用 Integer. valueOf()可以將基本類型int轉換為包裝類型Integer,或者將String轉換成Integer,String如果為Null或“”都會報錯 看下面代碼示例 取值為127時 取值為128時 為什么會是這樣呢? 首先,我們…

操作系統基礎:進程知識筆記(三)

1、死鎖概念知識 計算機中存在許多互斥資源(打印機)、軟件資源(進程表、臨界區)如果兩個進程同時調用打印機,或同時進入臨界區必然會出現問題。 死鎖:指兩個以上的進程互相要求對方已經占有的資源導致無法繼…

垂直梯形校正畫質損失多少_梯形校正功能是怎么實現的?其中可大有學問

梯形校正這個概念,想必大部分投影儀用戶早已耳熟能詳。所謂的梯形校正,指的是當我們的投影儀位置擺放不正時,投射出來的畫面會是一個梯形,這時候需要通過投影儀的梯形校正功能將畫面調整為可以正常觀看的矩形。雖然目前市場上的大…

操作系統基礎:存儲管理知識筆記(一)

1、存儲器基礎知識 存儲器管理的對象是主存或內存,存儲器是計算機系統中非常關鍵的資源,用來存放各種信息的主要場所。存 儲器管理功能主要包括:主存空間的分配和回收、提供主存利用率、擴充主存、主存信息的保護。 2、存儲器結構 存儲器結構…

asp點擊按鈕sql列求和_助你2020晉級互聯網大數據陣營(一):輕輕松松學SQL

毫不負責任的說,你和數據科學家最大的鴻溝,就差一個SQL語言:)入門后,后面的事情就簡單了為了幫大家盡快入門Hive SQL、學會提數和分析,實現在大數據領域大干一場的愿望,幫你準備好了數據,準備好…

冪等和高并發在電商系統中的使用

在Java web項目開發中,經常會聽到在做訂單系統中生成訂單的時候,要做冪等性控制和并發控制,特對此部分內容作出總結,在高并發場景下,代碼層面需要實現并發控制;但是冪等性,其實更多的是系統的接…

@transactional注解失效情況

先來了解一下Transactional注解事務的特性吧,可以更好排查問題 1、service類標簽(一般不建議在接口上)上添加Transactional,可以將整個類納入spring事務管理,在每個業務方法執行時都會開啟一個事務,不過這些事務采用相同的管理方…

計算機c盤隱藏了怎么辦,win7怎么隱藏c盤 win7c盤被隱藏了怎么解除

很多的電腦用戶擔心其他用戶在使用電腦時修改c盤中的重要文件,所以會將c盤設置為隱藏,那么大家知道在win7系統中怎么隱藏c盤嗎?方法很簡單,下面小編為大家帶來win7隱藏c盤的詳細教程,不知道怎么隱藏的朋友可以查看下面的教程學習…

操作系統基礎:存儲管理知識筆記(二)

一、分頁存儲管理 1、分頁存儲管理介紹 1.1 分頁原理 頁:將一個進程的地址空間劃分為若干個大小相等的區域稱為頁。 塊、頁框:主存空間劃分成與頁相同的若干個物理塊。 1.2 地址結構 分頁系統地址結構:前一部分為頁號;后一部分為頁…

人工智能 信道估計 深度學習_DEMO演示|基于IVP02D 人工智能工作站的深度學習引擎,實現人群熱力估計...

近年來,隨著深度學習在計算機視覺領域獲得廣泛應用,算法框架也日漸成熟,例如基于深度神經網絡的人群密度分析,通過自動學習能獲得更有效的人群特征,相較于傳統方法取得了一定的提高。AI小知識人群密度分析(…

SPSS學習中涉及的統計知識

1、獨立性檢驗 2、方差分析中方差齊性檢驗 3、非參數檢驗 4、p-p圖 5、卡方檢驗:研究分類因變量與分類自變量的關系。獨立性檢驗 6、t檢驗:研究連續因變量與分類自變量的關系。 7、啞變量 總結: 因變量連續,自變量連續&#xff0c…

vscode kite插件_微軟發布 VS Code Python 插件 7 月更新

微軟發布了 7 月的 Visual Studio Code Python 擴展更新,此版本總共修復了 51 個問題,其中包括:支持新的語言服務器:PylanceGather 擴展將 Notebook 導出為 HTML 和 PDF調試器的反向連接支持新的語言服務器:PylancePyl…

360瀏覽器打不開微信的連接服務器,上午還能打開,下午360瀏覽器打不開微信公 – 手機愛問...

2011-08-27ie,搜狗,谷歌瀏覽器都打不開,說打不開ipad說服務器超時是新浪在更新設備嗎?一般你能進入愛問就可以進入郵箱,下面的方法看看(如果你是鐵通的可能是鐵通的問題)。可能是服務器故障引起的,請不要著…

域名還能綁定動態IP?看完又漲知識了!!

點擊上方藍色“冰河技術”,關注并選擇“設為星標”持之以恒,貴在堅持,每天進步一點點!作者個人研發的在高并發場景下,提供的簡單、穩定、可擴展的延遲消息隊列框架,具有精準的定時任務和延遲隊列處理功能。…

java 及時釋放內存_JMM(一):初識Java內存模型

在并發編程中,線程之間的通信是一個很關鍵的問題,而該問題解決方案主要可分為兩大類:消息傳遞、共享內存。前者有以Erlang語言為代表的Actor模型,而后者中典型的則是Java語言。對于消息傳遞機制而言,線程之間必須通過發…

php 復習

對所學知識的依次基礎的總結 <?php一.php基礎語法 1.輸出語句&#xff1a;**echo(可以輸出多個字符串); print&#xff08;輸出一個字符串&#xff09;; print_r&#xff08;輸出數組&#xff09;; **var_dump()&#xff08;具體 的數據 還有它的類型&#xff09;;2.php是弱…

mac新建文件夾快捷鍵

mac新建文件夾快捷鍵 COMMAND SHIFT N

python382怎么用_用python做UDP連接

寫個客戶端 #!/usr/bin/env python from socket import * HOST 10.2.167.115 PORT 20001 BUFSIZE 1024 ADDR (HOST, PORT) udpClientSock socket(AF_INET, SOCK_DGRAM) while True: data raw_input(Enter the message you want to send >) if not data: break udpClie…

更新系統后魔獸世界無法連接至服務器,《魔獸世界:熊貓人之謎》5.0launcher更新無法連接服務器解決方法...

早上launcher一半的時候&#xff0c;出現無法鏈接服務器&#xff0c;并且自動關閉。測試多種辦法&#xff0c;已經解決。1、打開目錄x:/world of warcraft/temp2、運行目錄下&#xff1a;wow-4.3-5.0.15890-zhcn-downloader.exe (一個英文下載器)3、報錯could not connect to t…