国产探花免费观看_亚洲丰满少妇自慰呻吟_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編程

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

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 云浮市| 淮北市| 二连浩特市| 武功县| 岱山县| 和顺县| 吐鲁番市| 鸡泽县| 达拉特旗| 阳东县| 聂荣县| 靖宇县| 无锡市| 金乡县| 邓州市| 东乌珠穆沁旗| 江北区| 明溪县| 武川县| 五家渠市| 巴中市| 保定市| 杨浦区| 昂仁县| 绥棱县| 布拖县| 沙雅县| 香港 | 胶南市| 庆元县| 祥云县| 建瓯市| 孟津县| 蒙山县| 江西省| 右玉县| 湛江市| 芷江| 阿鲁科尔沁旗| 晋中市| 柘城县|