MySQL之mysqlcheck、check、optimize和analyze

lhrbest發表於2017-09-07
MySQL之mysqlcheckcheck、optimize和analyze




    ㈠ optimize        
        optimize可以回收空間、減少碎片、提高I/O
        目前支援的儲存引擎有:InnoDB、MyASIM和ARCHIVE
        
        如果是Replication環境、可加NO_WRITE_TO_BINLOG(或者LOCAL、意思完全相同)、比如:
        optimize local table table_name;
        

        以下是一個簡單測試:



[plain] view plain copy
  1. [mysql@odd employees]$ ls -alh t.ibd  
  2. -rw-rw---- 1 mysql dba 24M 05-22 16:48 t.ibd  
  3.   
  4. 未optimize前、有24M  
  5.   
  6. mysql> optimize table t;  
  7. +-------------+----------+----------+-------------------------------------------------------------------+  
  8. | Table       | Op       | Msg_type | Msg_text                                                          |  
  9. +-------------+----------+----------+-------------------------------------------------------------------+  
  10. | employees.t | optimize | note     | Table does not support optimize, doing recreate + analyze instead |  
  11. | employees.t | optimize | status   | OK                                                                |  
  12. +-------------+----------+----------+-------------------------------------------------------------------+  
  13. 2 rows in set (3.82 sec)  
  14.   
  15. --對於InnoDB的表、上面的內容並非報錯、這是MySQL會幫你對映到:alter table table_name engine='InnoDB';  
  16. --MyISAM不會有這種情況  
  17.   
  18.   
  19. [mysql@odd employees]$ ls -alh t.ibd  
  20. -rw-rw---- 1 mysql dba 14M 05-22 16:49 t.ibd  
  21.     
  22. optimize後、剩14M  




     ㈡ check        
        檢查表或檢視的有無錯誤
        支援表引擎有:InnoDB和MyISAM
        
        下面簡單模擬一個測試:



[plain] view plain copy
  1. mysql> check table t;  
  2. +-------------+-------+----------+----------+  
  3. | Table       | Op    | Msg_type | Msg_text |  
  4. +-------------+-------+----------+----------+  
  5. | employees.t | check | status   | OK       |  
  6. +-------------+-------+----------+----------+  
  7. 1 row in set (0.63 sec)  
  8.   
  9. --沒有錯誤的情況是這樣的  
  10.   
  11. --用vim開啟t.frm隨意編輯兩把  
  12.   
  13. mysql> check table t\G;  
  14. *************************** 1. row ***************************  
  15.    Table: employees.t  
  16.       Op: check  
  17. Msg_type: Error  
  18. Msg_text: Incorrect information in file: './employees/t.frm'  
  19. *************************** 2. row ***************************  
  20.    Table: employees.t  
  21.       Op: check  
  22. Msg_type: error  
  23. Msg_text: Corrupt  
  24. 2 rows in set (0.00 sec)  
  25.   
  26. --報錯了  




     
     ㈢ analyze        
        用於收集優化器統計資訊、和tuning相關、
        這個命令對 MyISAM、BDB、InnoDB 儲存引擎的表有作用
        如果不想記錄到binlog、也可加關鍵字local或者另外一個



[plain] view plain copy
  1. mysql> analyze table t\G;  
  2. *************************** 1. row ***************************  
  3.    Table: employees.t  
  4.       Op: analyze  
  5. Msg_type: Error  
  6. Msg_text: Incorrect information in file: './employees/t.frm'  
  7. *************************** 2. row ***************************  
  8.    Table: employees.t  
  9.       Op: analyze  
  10. Msg_type: error  
  11. Msg_text: Corrupt  
  12. 2 rows in set (0.00 sec)  




分析表主要作用是分析關鍵字的分佈。檢查表主要作用是檢查表是否存在錯誤。優化表主要作用是消除刪除或者更新造成的空間浪費。本小節將為讀者介紹分析表、檢查表和優化表的方法。
 
1.分析表
 
MySQL中使用ANALYZE TABLE語句來分析表,該語句的基本語法如下:
 
ANALYZE TABLE 表名1 [,表名2…] ;
使用ANALYZE TABLE分析表的過程中,資料庫系統會對錶加一個只讀鎖。在分析期間,只能讀取表中的記錄,不能更新和插入記錄。ANALYZE TABLE語句能夠分析InnoDB和MyISAM型別的表。
 
【示例18-8】 下面使用ANALYZE TABLE語句分析score表,分析結果如下:
 
mysql> ANALYZE TABLE score; 
+-------------+-----------+--------------+---------------+ 
| Table    | Op     | Msg_type | Msg_text  | 
+-------------+-----------+--------------+---------------+ 
| test.score | analyze | status    | OK       | 
+-------------+-----------+--------------+---------------+ 
1 row in set (0.05 sec)
上面結果顯示了4列資訊,詳細介紹如下:
 
Table:表示表的名稱;
 
Op:表示執行的操作。analyze表示進行分析操作。check表示進行檢查查詢。optimize表示進行優化操作;
 
Msg_type:表示資訊型別,其顯示的值通常是狀態、警告、錯誤和資訊這四者之一;
 
Msg_text:顯示資訊。
 
檢查表和優化表之後也會出現這4列資訊。
 
2.檢查表
 
MySQL中使用CHECK TABLE語句來檢查表。CHECK TABLE語句能夠檢查InnoDB和MyISAM型別的表是否存在錯誤。而且,該語句還可以檢查檢視是否存在錯誤。該語句的基本語法如下:
 
CHECK TABLE 表名1 [,表名2…] [option] ;
其中,option引數有5個引數,分別是QUICK、FAST、CHANGED、MEDIUM和EXTENDED。這5個引數的執行效率依次降低。option選項只對MyISAM型別的表有效,對InnoDB型別的表無效。CHECK TABLE語句在執行過程中也會給表加上只讀鎖。
 
3.優化表
 
MySQL中使用OPTIMIZE TABLE語句來優化表。該語句對InnoDB和MyISAM型別的表都有效。但是,OPTILMIZE TABLE語句只能優化表中的VARCHAR、BLOB或TEXT型別的欄位。OPTILMIZE TABLE語句的基本語法如下:
 
OPTIMIZE TABLE 表名1 [,表名2…] ;
通過OPTIMIZE TABLE語句可以消除刪除和更新造成的磁碟碎片,從而減少空間的浪費。OPTIMIZE TABLE語句在執行過程中也會給表加上只讀鎖。
 
說明:如果一個表使用了TEXT或者BLOB這樣的資料型別,那麼更新、刪除等操作就會造成磁碟空間的浪費。因為,更新和刪除操作後,以前分配的磁碟空間不會自動收回。使用OPTIMIZE TABLE語句就可以將這些磁碟碎片整理出來,以便以後再利用。






MySQL定期分析檢查與優化表

 
 
定期分析表
 
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name]
 
本語句用於分析和儲存表的關鍵字分佈。在分析期間,使用一個讀取鎖定對錶進行鎖定。這對於MyISAM, BDB和InnoDB表有作用。對於MyISAM表,本語句與使用myisamchk -a相當。
 
MySQL使用已儲存的關鍵字分佈來決定,當您對除常數以外的物件執行聯合時,表按什麼順序進行聯合。 
mysql> analyze table a;
+--------+---------+----------+-----------------------------+
| Table  | Op      | Msg_type | Msg_text                    |
+--------+---------+----------+-----------------------------+
| test.a | analyze | status   | Table is already up to date | 
+--------+---------+----------+-----------------------------+
1 row in set (0.00 sec)
 
定期檢查表
 
CHECK TABLE tbl_name [, tbl_name]  [option] 
 
option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
 
檢查一個或多個表是否有錯誤。CHECK TABLE對MyISAM和InnoDB表有作用。對於MyISAM表,關鍵字統計資料被更新。
mysql> check table a;
+--------+-------+----------+----------+
| Table  | Op    | Msg_type | Msg_text |
+--------+-------+----------+----------+
| test.a | check | status   | OK       | 
+--------+-------+----------+----------+
1 row in set (0.00 sec)
 
CHECK TABLE也可以檢查檢視是否有錯誤,比如在檢視定義中被引用的表已不存在。
我們為上面的表a建立一個檢視 
mysql> create view a_view as select * from a;
Query OK, 0 rows affected (0.02 sec)
 
然後CHECK一下該檢視,發現沒有問題
mysql> check table a_view;
+-------------+-------+----------+----------+
| Table       | Op    | Msg_type | Msg_text |
+-------------+-------+----------+----------+
| test.a_view | check | status   | OK       | 
+-------------+-------+----------+----------+
1 row in set (0.00 sec)
 
現在刪掉檢視依賴的表
mysql> drop table a;
Query OK, 0 rows affected (0.01 sec)
 
再CHECK一下剛才的檢視,發現報錯了
mysql> check table a_view\G;
*************************** 1. row ***************************
   Table: test.a_view
      Op: check
Msg_type: Error
Msg_text: Table 'test.a' doesn't exist
*************************** 2. row ***************************
   Table: test.a_view
      Op: check
Msg_type: Error
Msg_text: View 'test.a_view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
*************************** 3. row ***************************
   Table: test.a_view
      Op: check
Msg_type: error
Msg_text: Corrupt
3 rows in set (0.00 sec)
 
ERROR: 
No query specified
 
定期優化表
 
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] 
 
如果您已經刪除了表的一大部分,或者如果您已經對含有可變長度行的表(含有VARCHAR, BLOB或TEXT列的表)進行了很多更改,則應使用OPTIMIZE TABLE。被刪除的記錄被保持在連結清單中,後續的INSERT操作會重新使用舊的記錄位置。您可以使用OPTIMIZE TABLE來重新利用未使用的空間,並整理資料檔案的碎片。
在多數的設定中,您根本不需要執行OPTIMIZE TABLE。即使您對可變長度的行進行了大量的更新,您也不需要經常執行,每週一次或每月一次即可,只對特定的表執行。
OPTIMIZE TABLE只對MyISAM, BDB和InnoDB表起作用。
對於MyISAM表,OPTIMIZE TABLE按如下方式操作:
如果表已經刪除或分解了行,則修復表。
如果未對索引頁進行分類,則進行分類。
如果表的統計資料沒有更新(並且通過對索引進行分類不能實現修復),則進行更新。 
mysql> OPTIMIZE table a;
+--------+----------+----------+-----------------------------+
| Table  | Op       | Msg_type | Msg_text                    |
+--------+----------+----------+-----------------------------+
| test.a | optimize | status   | Table is already up to date | 
+--------+----------+----------+-----------------------------+
1 row in set (0.00 sec)
 
****
需要注意的是無論是ANALYZE,CHECK還是OPTIMIZE在執行期間將對錶進行鎖定,因此請注意這些操作要在資料庫不繁忙的時候執行
****
 
 

2012-11-22 13:04 by 軒脈刃, 1318 閱讀, 5 評論, 收藏編輯

show table status

mysql官方文件在

http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html

這裡的rows行是表的行數,但是實際上是不準的。myisam是準的,其他的儲存引擎是不準的。要準確的行數就需要使用count(*) 來獲取了。

mysql執行大批量刪除

執行大批量刪除的時候注意要使用上limit

因為如果不用limit,刪除大量資料很有可能造成死鎖

如果delete的where語句不在索引上,可以先找主鍵,然後根據主鍵刪除資料庫

ps: 平時update和delete的時候最好也加上limit 1 來防止誤操作

optimize、Analyze、check、repair維護操作

l optimize 資料在插入,更新,刪除的時候難免一些資料遷移,分頁,之後就出現一些碎片,久而久之碎片積累起來影響效能,這就需要DBA定期的優化資料庫減少碎片,這就通過optimize命令。

如對MyisAM表操作:optimize table 表名

對於InnoDB表是不支援optimize操作,否則提示“Table does not support optimize, doing recreate + analyze instead”,當然也可以通過命令:alter table one type=innodb; 來替代。

l Analyze 用來分析和儲存表的關鍵字的分佈,使得系統獲得準確的統計資訊,影響 SQL 的執行計劃的生成。對於資料基本沒有發生變化的表,是不需要經常進行表分析的。但是如果表的資料量變化很明顯,使用者感覺實際的執行計劃和預期的執行計劃不 同的時候,執行一次表分析可能有助於產生預期的執行計劃。

Analyze table 表名

l Check檢查表或者檢視是否存在錯誤,對 MyISAM 和 InnoDB 儲存引擎的表有作用。對於 MyISAM 儲存引擎的表進行表檢查,也會同時更新關鍵字統計資料

l Repair optimize需要有足夠的硬碟空間,否則可能會破壞表,導致不能操作,那就要用上repair,注意INNODB不支援repair操作

生成亂序的id

方法:

使用預設表

比如id和toid的對映

其中id是固定的,toid是隨機的。

然後在redis或memcache中記錄一個指標值,指向id

當要獲取一個新toid的時候,取出指標值,加1,然後去預設表中獲取toid

查詢和索引

查詢的時候必須要考慮到如何命中索引

比如有幾個小招:

1 不要在索引列中使用表示式

where mycol *2 < 4

2 不要在like模式的開始位置使用萬用字元%

where col_name like ‘%string%’

不如

where col_name like ‘string%’

3 避免過多使用mysql自動轉換型別,有可能無法用到index

比如

select * from mytbl where str_col=4

但是str_col為字串,這裡其實就隱含了字串變化

應該使用

select * from mytbl where str_col=’4’

索引比表還大就不需要建立索引了嗎

索引是按照順序排列的。所以即使索引比表大,也是可以加快查詢速度的。

當然如果索引比表還大首要的任務必須是檢查下索引建立地是否有問題

Char和varchar如何選擇

char是定長,varchar變長 
varchar除了設定了資料之外,還多使用1兩個位元組定義了資料實際長度。

char會在後面空餘的行填充上空字串

myisam建議使用char。myisam中有個靜態表的概念。使用char比使用varchar的查詢效率高很多。

innodb建議使用varchar。主要是從節省空間的方面考慮

多個TimeStamp設定預設值

一個表中至多隻能有一個欄位設定CURRENT_TIMESTAMP

對於下面的需求:

一個表中,有兩個欄位,createtime和updatetime。

1 當insert的時候,sql兩個欄位都不設定,會設定為當前的時間

2 當update的時候,sql中兩個欄位都不設定,updatetime會變更為當前的時間

這樣的需求是做不到的。因為你無法避免在兩個欄位上設定CURRENT_TIMESTAMP


解決辦法有幾個:

1 使用觸發器。

2 將第一個timestamp的default設定為0

3 老老實實在sql語句中使用時間戳。

http://www.cnblogs.com/yjf512/archive/2012/11/02/2751058.html

查詢資料表有多少行,多少容量

不要使用select count(*)

使用show table status like ‘table_name’  但是innodb的話會有50%左右的浮動,是個預估值

AUTO_INCREMENT的設定

1 不要設定為int,請設定為unsinged int,auto_increment的範圍是根據型別來判定的

2 auto_increment資料列必須要有索引,並且保證唯一性。

3 auto_increment必須有NOT NULL屬性

4 auto_increment可以使用

UPDATE table SET seq = LAST_INSERT_ID(seq -1)

mysql的表示時間的欄位用什麼型別

表示時間可以使用timestamp和datetime來使用

datetime表示的時間可以從0000-00-00:00:00 到9999-12-31:00:00:00

timestamp表示的時間為1970-01-01 08:00:01到2038-01-19 11:14:07

timestamp佔用的空間比datetime少,且可以設定時區等功能,所以能使用timestamp的地方儘量使用timestamp

使用timestamp還可以設定

[ON UPDATE CURRENT_TIMESTAMP]

[DEFAULT CURRENT_TIMESTAMP]

myisam和innodb支援外來鍵

myisam不支援外來鍵,innodb支援;

如果你使用建立外來鍵的命令對myisam的表操作,操作不會返回失敗,但是是沒有外來鍵關聯建立起來的。

對一個欄位加減語句

經常有需求對一個欄位加減會使用

update table set a = a+1

這樣是對的

但是如果這樣設定:

select a from table

取出資料後a為1

update table set a =2

這樣會導致如果在select和update之間有其他事務操作修改這個欄位的話,導致最後的設定可能出錯。






mysqlcheck使用介紹 檢查、修復、優化、分析表 



 
官網:https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html


通常使用該工具一般語法為:
  1. shell> mysqlcheck [options] db_name [tbl_name ...]
  2. shell> mysqlcheck [options] --databases db_name ...
  3. shell> mysqlcheck [options] --all-databases

比如對mysql庫進行mysqlcheck操作:
  1. [op@sAno1y ~]$ mysqlcheck mysql -uroot -p
  2. Enter password: 
  3. mysql.columns_priv OK
  4. mysql.db OK
  5. mysql.event OK
  6. mysql.func OK
  7. mysql.general_log OK
  8. mysql.help_category OK
  9. mysql.help_keyword OK
  10. mysql.help_relation OK
  11. mysql.help_topic OK
  12. mysql.innodb_index_stats OK
  13. mysql.innodb_table_stats OK
  14. mysql.ndb_binlog_index OK
  15. mysql.plugin OK
  16. mysql.proc OK
  17. mysql.procs_priv OK
  18. mysql.proxies_priv OK
  19. mysql.servers OK
  20. mysql.slave_master_info OK
  21. mysql.slave_relay_log_info OK
  22. mysql.slave_worker_info OK
  23. mysql.slow_log OK
  24. mysql.tables_priv OK
  25. mysql.time_zone OK
  26. mysql.time_zone_leap_second OK
  27. mysql.time_zone_name OK
  28. mysql.time_zone_transition OK
  29. mysql.time_zone_transition_type OK
  30. mysql.user OK

實際上該工具是為了方便使用者使用,而使用了CHECK TABLE、REPAIR TABLE、ANALYZE TABLE、OPTIMIZE TABLE語句。

--analyze選項:實際上是執行了ANALYZE TABLE(支援InnoDB,MyISAM,NDB)
--check選項:實際上是執行了CHECK TABLE(支援InnoDB,MyISAM,ARCHIVE,CSV)
--optimize選項:實際上執行了OPTIMIZE TABLE(支援InnoDB,MyISAM,ARCHIVE)
--repair選項:實際上執行REPAIR TABLE(支援MyISAM,ARCHIVE,CSV)

一般情況不需要加這些選項,除非需要修復

其他修改選項:
--repair --quick 嘗試快速修復
--repair 正常修復(除非快速修復失敗)
--repair --force 強行修復


當然,在mysqlcheck時,每張表會被加上READ LOCK。
該程式時,尤其是大表,將會變得十分耗時。
且該工具必須在mysqld服務執行的情況下使用。

此外,部分儲存引擎的表是不被支援的:
我創了四張表,其儲存引擎分別為ARCHIVE、BLACKHOLE、MEMORY、MRG_MYISAM
  1. mysql> use test;
  2. Database changed
  3. mysql> show tables;
  4. +----------------+
  5. | Tables_in_test |
  6. +----------------+
  7. | archive_tb     |
  8. | blackhole_tb   |
  9. | memory_tb      |
  10. | mrg_myisam_tb  |
  11. +----------------+
  12. 4 rows in set (0.00 sec)

然後check了一下,發現blackhole和memory是不被支援的,因為這兩個儲存引擎只儲存.frm的表定義在磁碟上。

  1. [op@sAno1y ~]$ mysqlcheck test -uroot -p
  2. Enter password:
  3. test.archive_tb OK
  4. test.blackhole_tb
  5. note : The storage engine for the table doesn't support check
  6. test.memory_tb
  7. note : The storage engine for the table doesn't support check
  8. test.mrg_myisam_tb OK


其他選項參考:
Format Description Introduced
--all-databases Check all tables in all databases  
--all-in-1 Execute a single statement for each database that names all the tables from that database  
--analyze Analyze the tables  
--auto-repair If a checked table is corrupted, automatically fix it  
--bind-address=ip_address Use specified network interface to connect to MySQL Server  
--character-sets-dir=path Directory where character sets are installed  
--check Check the tables for errors  
--check-only-changed Check only tables that have changed since the last check  
--check-upgrade Invoke CHECK TABLE with the FOR UPGRADE option  
--compress Compress all information sent between client and server  
--databases Process all tables in the named databases  
--debug[=debug_options] Write a debugging log  
--debug-check Print debugging information when program exits  
--debug-info Print debugging information, memory, and CPU statistics when program exits  
--default-auth=plugin Authentication plugin to use 5.6.2
--default-character-set=charset_name Specify default character set  
--defaults-extra-file=file_name Read option file in addition to usual option files  
--defaults-file=file_name Read only named option file  
--defaults-group-suffix=str Option group suffix value  
--extended Check and repair tables  
--fast Check only tables that have not been closed properly  
--fix-db-names Convert database names to 5.1 format  
--fix-table-names Convert table names to 5.1 format  
--force Continue even if an SQL error occurs  
--help Display help message and exit  
--host=host_name Connect to MySQL server on given host  
--login-path=name Read login path options from .mylogin.cnf 5.6.6
--medium-check Do a check that is faster than an --extended operation  
--no-defaults Read no option files  
--optimize Optimize the tables  
--password[=password] Password to use when connecting to server  
--pipe On Windows, connect to server using named pipe  
--plugin-dir=path Directory where plugins are installed 5.6.2
--port=port_num TCP/IP port number to use for connection  
--print-defaults Print defaults  
--protocol=type Connection protocol to use  
--quick The fastest method of checking  
--repair Perform a repair that can fix almost anything except unique keys that are not unique  
--secure-auth Do not send passwords to the server in old (pre-4.1.1) format 5.6.17
--shared-memory-base-name=name The name of shared memory to use for shared-memory connections  
--silent Silent mode  
--skip-database=db_name Omit this database from performed operations 5.6.11
--socket=path For connections to localhost, the Unix socket file to use  
--ssl Enable SSL for connection  
--ssl-ca=file_name Path of file that contains list of trusted SSL CAs  
--ssl-capath=dir_name Path of directory that contains trusted SSL CA certificates in PEM format  
--ssl-cert=file_name Path of file that contains X509 certificate in PEM format  
--ssl-cipher=cipher_list List of permitted ciphers to use for SSL encryption  
--ssl-crl=file_name Path of file that contains certificate revocation lists 5.6.3
--ssl-crlpath=dir_name Path of directory that contains certificate revocation list files 5.6.3
--ssl-key=file_name Path of file that contains X509 key in PEM format  
--ssl-verify-server-cert Verify server Common Name value in its certificate against host name used when connecting to server  
--tables Overrides the --databases or -B option  
--use-frm For repair operations on MyISAM tables  
--user=user_name, MySQL user name to use when connecting to server  
--verbose Verbose mode  
--version Display version information and exit  
--write-binlog Log ANALYZE, OPTIMIZE, REPAIR statements to binary log. --skip-write-binlog adds NO_WRITE_TO_BINLOG to these statements.  




MySQL資料庫mysqlcheck的使用方法的相關知識是本文我們主要要介紹的內容,我們知道,mysqlcheck,是mysql自帶的可以檢查和修復MyISAM表,並且它還可以優化和分析表,mysqlcheck的功能類似myisamchk,但其工作不同。

主要差別是當mysqld伺服器在執行時必須使用mysqlcheck,而myisamchk應用於伺服器沒有執行時。使用mysqlcheck的好處是不需要停止伺服器來檢查或修復表。使用myisamchk修復失敗是不可逆的。

1.如果需要檢查並修復所有的資料庫的資料表,那麼可以使用:


# mysqlcheck -A -o -r -p  
# Enter password:    
database1 OK  
database2 OK  
2.如果需要修復指定的資料庫用
# mysqlcheck -A -o -r Database_NAME -p  
3.如果使用其他使用者名稱修復
# mysqlcheck -A -o -r -p -u admin  
這裡admin是指定的mysql使用者帳號。
4.如果使用指定的mysql.sock進入資料庫並修復
# mysqlcheck -A -o -r -p -S /tmp/mysql.sock  
這裡/tmp/mysql.sock是指定的mysql.sock存放的路徑。




About Me

.............................................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、部落格園(http://www.cnblogs.com/lhrbest)和個人微信公眾號(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文部落格園地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、個人簡介及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ群號:230161599(滿)、618766405

● 微信群:可加我微信,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友646634621,註明新增緣由

● 於 2017-09-01 09:00 ~ 2017-09-30 22:00 在魔都完成

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

.............................................................................................................................................

小麥苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

.............................................................................................................................................

使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公眾號(xiaomaimiaolhr)及QQ群(DBA寶典),學習最實用的資料庫技術。

   小麥苗的微信公眾號      小麥苗的DBA寶典QQ群1     小麥苗的DBA寶典QQ群2        小麥苗的微店

.............................................................................................................................................

MySQL之mysqlcheck、check、optimize和analyze
DBA筆試面試講解群1
DBA筆試面試講解群2
歡迎與我聯絡



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2144629/,如需轉載,請註明出處,否則將追究法律責任。

相關文章