亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL對 DROP TABLE的處理過程

發布時間:2021-09-18 12:41:15 來源:億速云 閱讀:180 作者:chen 欄目:數據庫

本篇內容介紹了“MySQL對 DROP TABLE的處理過程”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

前幾天,在DROP TABLE的時候,所有進程不管是DDL還是DML都被HANG起;直到DROP結束才繼續執行;
    對這個現象甚其不解;
    今天研究了一個 MYSQL 源代碼,看其對DROP TABLE 的內部處理過程 ;
    當用戶發出 DROP TABLE 命令后:
    ############# MYSQL SERVER 處理刪除一個表 ##################
    /* Sql_table.cc  delete (drop) tables. */
    bool mysql_rm_table( )
    /*   Execute the drop of a normal or temporary table */
    int mysql_rm_table_part2 ()
    /* Remove matching tables from the HANDLER's hash table.  */
    void mysql_ha_rm_tables ()
    /* Mark all entries with the table as deleted to force an reopen of the table */
    remove_table_from_cache ()
    /* remove engine files */  LINE 2024
    int handler::ha_delete_table(const char *name)
    file->ha_delete_table(path)   line 1991
    int handler::delete_table(const char *name) //刪除物理表文件;
    /* 這里INNODB繼承了父類handler ,
    實際調用的是這個 int ha_innobase::delete_table
    轉到下面:   #### INNODB 處理刪除一個表 ####
    如果是其他引擎,則直接刪除數據文件,往下走*/
    int mysys::my_delete_with_symlink(const char *name, myf MyFlags)
    int mysys::my_delete(const char *name, myf MyFlags)
    /* Delete the table definition file */  LINE 2042
    int mysys::my_delete()
    /* clear query cache*/
    query_cache_invalidate3
    /* writes to BINLOG */
    ############# INNODB 處理刪除一個表 ##################
    /* Drops a table from an InnoDB database.  */
    int ha_innobase::delete_table( const char* name) ; // 從INNODB刪除表
    int row_drop_table_for_mysql()
    /* 外鍵關聯檢查 */
    /* 鎖住數據字典(獨占鎖)*/
    /* Serialize data dictionary operations with dictionary mutex:
    row_mysql_lock_data_dictionary(trx);
    /* 更新數字字典(MEMDB,information_schema), line 3178 */
    que_eval_sql(info, “PROCEDURE DROP_TABLE_PROC () IS\n”
    /*這里是通過一個PROCEDURE來處理的*/
    /* 更新數字字典(CACHE) */
    void dict_table_remove_from_cache(dict_table_t* table))
    /* 刪除數據文件
    /* Deletes a single-table tablespace */
    ibool fil_delete_tablespace()
    /* Frees a space object from the tablespace memory cache*/
    ibool fil_space_free ()
    /* Deletes a file. The file has to be closed before calling this. */
    ibool os_file_delete ()
    unlink((const char*)name);
    /* 釋放鎖 */
    row_mysql_unlock_data_dictionary(trx);
    DROP TABLE大概就是這么一個過程 ;

“MySQL對 DROP TABLE的處理過程”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

福清市| 武鸣县| 安庆市| 泰顺县| 阿巴嘎旗| 航空| 胶州市| 榆中县| 阳西县| 绥棱县| 大关县| 双柏县| 柳江县| 淮阳县| 广东省| 秦皇岛市| 五大连池市| 得荣县| 竹山县| 巴东县| 革吉县| 大悟县| 江都市| 延安市| 舒城县| 岳池县| 锦州市| 乌恰县| 宿松县| 壤塘县| 四子王旗| 韶关市| 永昌县| 万安县| 云梦县| 昭苏县| 肃宁县| 芮城县| 勃利县| 云霄县| 华安县|