Mysql優化--skip-name-resolve
同一IDC ,IDC內部有DNS服務器,對各服務器的IP做了反向解析,但未對內網IP做反向解析,所以使用skip-name-resolve以後用內網地址向mysqlslap請求響應快了一半
涉及參數 --skip-name-resolve ,--skip-host-cache ,--skip-networking
當新的客戶連接mysqld時,mysqld創建一個新的線程來處理請求。該線程先檢查是否主機名在主機名緩存中。如果不在,線程試圖解析主機名:
如果操作系統支持線程安全gethostbyaddr_r ()和gethostbyname_r()調用,線程使用它們來執行主機名解析。
如果操作系統不支持線程安全調用,線程鎖定一個互斥體並調用gethostbyaddr()和gethostbyname()。在這種情況下,在第1個線程解鎖互斥體前,沒有其它線程可以解析不在主機名緩存中的主機名。
你可以用--skip-name-resolve選項啟動mysqld來禁用DNS主機名查找。然而,在這種情況下,你只可以使用MySQL中的授權表中的IP號。
如果你有一個很慢的DNS和許多主機,你可以通過用--skip-name-resolve禁用DNS查找或增加HOST_CACHE_SIZE定義(默認值:128)並重新編譯mysqld來提高性能。
你可以用--skip-host-cache選項啟動服務器來禁用主機名緩存。要想清除主機名緩存,執行FLUSH HOSTS語句或執行mysqladmin flush-hosts命令。
如果你想要完全禁止TCP/IP連接,用--skip-networking選項啟動mysqld。
連接mysql時,都會向DNS做反向地址查詢
只有等超時失敗後,mysql才會響應客戶端
等待解析的mysql進程都是 login狀態