真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL對(duì)DROPTABLE的處理過程

本篇內(nèi)容介紹了“MySQL對(duì) DROP TABLE的處理過程”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)萬安,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

前幾天,在DROP TABLE的時(shí)候,所有進(jìn)程不管是DDL還是DML都被HANG起;直到DROP結(jié)束才繼續(xù)執(zhí)行;
    對(duì)這個(gè)現(xiàn)象甚其不解;
    今天研究了一個(gè) MYSQL 源代碼,看其對(duì)DROP TABLE 的內(nèi)部處理過程 ;
    當(dāng)用戶發(fā)出 DROP TABLE 命令后:
    ############# MYSQL SERVER 處理刪除一個(gè)表 ##################
    /* 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 ,
    實(shí)際調(diào)用的是這個(gè) int ha_innobase::delete_table
    轉(zhuǎn)到下面:   #### INNODB 處理刪除一個(gè)表 ####
    如果是其他引擎,則直接刪除數(shù)據(jù)文件,往下走*/
    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 處理刪除一個(gè)表 ##################
    /* Drops a table from an InnoDB database.  */
    int ha_innobase::delete_table( const char* name) ; // 從INNODB刪除表
    int row_drop_table_for_mysql()
    /* 外鍵關(guān)聯(lián)檢查 */
    /* 鎖住數(shù)據(jù)字典(獨(dú)占鎖)*/
    /* Serialize data dictionary operations with dictionary mutex:
    row_mysql_lock_data_dictionary(trx);
    /* 更新數(shù)字字典(MEMDB,information_schema), line 3178 */
    que_eval_sql(info, “PROCEDURE DROP_TABLE_PROC () IS\n”
    /*這里是通過一個(gè)PROCEDURE來處理的*/
    /* 更新數(shù)字字典(CACHE) */
    void dict_table_remove_from_cache(dict_table_t* table))
    /* 刪除數(shù)據(jù)文件
    /* 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大概就是這么一個(gè)過程 ;

“MySQL對(duì) DROP TABLE的處理過程”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


名稱欄目:MySQL對(duì)DROPTABLE的處理過程
網(wǎng)站鏈接:http://weahome.cn/article/pdpoei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部