實際工作中遇到上一次資料庫訪問和下一次資料庫訪問超過wait_timeout的情況, 此時就會報mysql has gone away的錯誤.
利用mysql_ping可以解決:
1 現在資料庫抽象層加入重連功能:
/**
* 重新連線資料庫
*/private function reconnect()
/*** 檢查資料庫連線是否可用,如果不可用嘗試重新連線
*/private function checkconnect()
}
2 然後在查詢語句前加入檢測是否需要重連
/**
* 執行sql
* * @param string $sql
* @param bool use_mas 是否使用主鏈結
* @return 記錄集
*/public function query($sql,$forece_mas_link = false) }}
}}
$forece_mas_link && $this->_memcache && $this->_memcache->deltable($this->_sql_table_arr[0]) && $this->setforcemasarr($this->_sql_table_arr);
$this->_res = mysql_query($sql,$this->_link);
$this->_fetch_from_memcache = false;
if(((defined('debug') && debug)||(defined('is_xmlrpc') && is_xmlrpc)) && !$this->_res)
$this->_query_count++;
}
資料庫去重
資料庫資料去重方法 假設現在資料庫中有乙個人員表 user 表中包括 主鍵id,姓名name 身份證號碼id number等字段。由於程式的的原因,後來發現表中有許多理論上重複的資料 例如姓名 和身份證號相同的資料 現在要求根據身份證號碼和姓名去除表中的重複資料。select max id from...
資料庫重連
4.2.10 資料庫自動重連 dbcp使用apache的物件池objectpool作為連線池的實現,在構造genericobjectpool時,會生成乙個內嵌類evictor,實現自runnable介面。如果 timebetweenevictionrunsmillis大於0,每過 timebetwe...
資料庫資料去重方法
1.2個結果進行union 時,也可以去重 2.group by 也可以去重 below is a reprint of others 假設現在資料庫中有乙個人員表 user 表中包括 主鍵id,姓名 身份證號碼 等字段。由於程式的的原因 好來發現表中有許多理論上重複的資料 即姓名 和身份證號相同的...