国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

數據庫分表和分庫的原理及基于thinkPHP的實現方法

2020-03-22 19:59:55
字體:
來源:轉載
供稿:網友
  • 為什么要分表,分庫:

    當我們的數據表數據量,訪問量很大,或者是使用頻繁的時候,一個數據表已經不能承受如此大的數據訪問和存儲,所以,為了減輕數據庫的負擔,加快數據的存儲,就需要將一張表分成多張,及將一類數據存入不同的幾張表,當分表已經不能滿足需求是,我們還可以分庫,及用幾個數據庫存儲。

    分表會隨著需求和功能的不同有不同的實現方法,下面是我做項目中的一個例子:

    需求:product,product_price兩張表是一對多的關系,及產品和產品每日的價格,一個產品對應幾種價格,現在由于產品表數據量很大,每天多有上百萬條數據,就以天為單位對表進行分表,以月為單位對數據庫進行分庫,表的命名為‘product_price2014-07-20’表格式:前面是原數據庫表名,后面是日期(年-月-日).

    創建數據庫和表的代碼如下:

    function get_product_price_table(){    $db_info=array();           //這個月    $newmot_time=date("Y-m");    //今天日期    $newday_time=date("Y-m-d");    //本月數據庫,今天的表    $db_name = 'acbooking'.$newmot_time;    $table_name = "product_price".$newday_time;        //昨天的日期    $yesday_time = date("Y-m-d",strtotime("-1 day"));        //取出昨天的數據,獲取 product_price的最后id,作為新表id的起始值    $last_one_product_price = get_info('product_price_table_id',array('time'=>$yesday_time));    if($last_one_product_price['table_id_end']>0){        $table_id = $last_one_product_price['table_id_end']+1;    }else{        $table_id = 1;    }            //創建數據庫	
    	$Db_string_line = C('DB_TYPE').'://'.C('DB_USER').':'.C('DB_PWD').'@'.C('DB_HOST').'/'.$new_db_database;	$DB_P=C('DB_PREFIX');	$Model=M($table,$DB_P,$Db_string_line);	$db_name=$Model->execute($sql);//通過sql語句配置創建新數據庫新標,此處省略了sql語句    
        //創建數據表
    	$Db_string_line = C('DB_TYPE').'://'.C('DB_USER').':'.C('DB_PWD').'@'.C('DB_HOST').'/'.$new_db_database;	$DB_P=C('DB_PREFIX');	$Model=M($table,$DB_P,$Db_string_line);	$table_name=$Model->execute($sql);

        //返回新 數據庫,新的表    $db_info['database']=$db_name;    $db_info['table']=$table_name;    return $db_info;}

    創建出分表后,即可存儲當天的所有數據,每天換一張表,執行效率很高。。。。

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 永修县| 浦江县| 米易县| 平顶山市| 宁晋县| 武陟县| 永清县| 吉安市| 崇文区| 陇西县| 绥滨县| 桐梓县| 遂川县| 城市| 西丰县| 凌云县| 德昌县| 治县。| 巩义市| 金坛市| 神木县| 玛多县| 沙田区| 福海县| 白水县| 剑阁县| 丰台区| 旅游| 固安县| 临高县| 荣昌县| 正蓝旗| 防城港市| 井研县| 鹤岗市| 宜州市| 兴仁县| 钦州市| 平昌县| 玉屏| 德兴市|