最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php導(dǎo)入大量數(shù)據(jù)到mysql性能優(yōu)化技巧

 更新時(shí)間:2014年12月29日 08:52:29   投稿:shichen2014  
這篇文章主要介紹了php導(dǎo)入大量數(shù)據(jù)到mysql性能優(yōu)化技巧,通過針對SQL語句的優(yōu)化實(shí)現(xiàn)了mysql性能的提高,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了php導(dǎo)入大量數(shù)據(jù)到mysql性能優(yōu)化技巧。分享給大家供大家參考。具體分析如下:

在mysql中我們結(jié)合php把一些文件導(dǎo)入到mysql中,這里就來分享一下我對15000條記錄進(jìn)行導(dǎo)入時(shí)分析與優(yōu)化,需要的朋友可以參考一下.

之前有幾篇文章,說了最近tiandi在幫朋友做一個(gè)小項(xiàng)目,用于統(tǒng)計(jì)電話號(hào)碼的,每次按需求從數(shù)據(jù)庫里隨機(jī)生成打包的電話號(hào)碼,然后不停地讓人打這些電話號(hào)碼推銷產(chǎn)品(小小鄙視一下這樣的行為)。但是朋友要求幫忙,咱也不能不幫啊,是吧。程序兩個(gè)星期前已經(jīng)做好,測試完畢交工。前幾天朋友來電說,每天導(dǎo)入電話號(hào)碼的時(shí)間越來越長,有時(shí)候一萬條記錄就要半個(gè)小時(shí)以上,看看能不能想辦法提高一下這個(gè)速度。

我理了一下思路,數(shù)據(jù)庫結(jié)構(gòu)很簡單,可以認(rèn)為就兩個(gè)字段,一個(gè)字段存電話號(hào)碼,另一字段存類別,類別分別為c,d,e等等,分別代表已經(jīng)撥通過此電話,未撥通過此電話,未撥打過此電話等等狀態(tài),而整個(gè)程序邏輯是這樣的.

■拿到一個(gè)txt文件,里面存的是電話號(hào)碼

■通過程序?qū)xt文件導(dǎo)入到mysql里

■導(dǎo)入的時(shí)候,檢測txt里的電話號(hào)碼是否和mysql里的重復(fù),如果不重復(fù),直接插入新記錄,如果重復(fù),就需要按照判斷電話號(hào)碼所屬類別來進(jìn)行更新。

由于每個(gè)txt里的電話號(hào)碼導(dǎo)入時(shí),都需要做一次比較,所以程序肯定會(huì)耗時(shí)一些,這里我們先撇開這個(gè)原因,因?yàn)楸疚恼碌臉?biāo)題是優(yōu)化寫入速度,那么程序什么時(shí)候會(huì)寫入記錄呢?通過上面的邏輯得知,在匹配數(shù)據(jù)庫時(shí),沒有發(fā)現(xiàn)存在記錄時(shí)會(huì)發(fā)生寫入數(shù)據(jù)庫操作(當(dāng)然update也算,只是這里只討論insert),那么將上述邏輯轉(zhuǎn)化為代碼,差不多如下:

復(fù)制代碼 代碼如下:
//$array為txt文件explode出來的數(shù)組,每一個(gè)為一個(gè)電話號(hào)碼, $str為類型
for($i=0; $i<count($array); $i++) 

        $tmpstr = "'". $array[$i] ."','". $str ."'";
        $sql="INSERT INTO ".$usertable." (tel,type) VALUES (".$tmpstr.")";
        mysql_query($sql);
}

以上代碼完全正確,但是效率低下,當(dāng)txt文件里包含了上萬個(gè)電話號(hào)碼時(shí),即會(huì)有上萬次的插入數(shù)據(jù)庫操作,雖然每次的數(shù)據(jù)庫寫入操作都是很快的,但是上萬條累計(jì)下來,這個(gè)執(zhí)行時(shí)間不容忽視,tiandi簡單的測試了一下插入15000萬條記錄,耗時(shí)差不多5分鐘,如果再加上之前的邏輯判斷等等過程,那么半個(gè)小時(shí)還真得不算少了,這樣可不行,必須減少數(shù)據(jù)庫庫寫入次數(shù)才對,于是上面代碼變更為以下:
復(fù)制代碼 代碼如下:
$sql2="INSERT INTO ".$usertable." (tel,type,updatetime) VALUES";
for($i=0; $i<count($array); $i++) 

        $tmpstr = "'". $array[$i] ."','". $str ."'";
 $sql2 .= "(".$tmpstr."),";
}
$sql2 = substr($sql2,0,-1);   //去除最后的逗號(hào)
mysql_query($sql2);

這樣,整個(gè)寫入操作只有1次,大大地縮短了執(zhí)行時(shí)間,差不多10秒就搞定了15000條記錄,好了,本文到此結(jié)束,如果你也遇上寫入大量數(shù)據(jù)到mysql耗時(shí)長的問題時(shí),不如試試本文的優(yōu)化方式.

希望本文所述對大家的php程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP中限制IP段訪問、禁止IP提交表單的代碼

    PHP中限制IP段訪問、禁止IP提交表單的代碼

    最近,小編發(fā)現(xiàn)有一個(gè)云南的網(wǎng)友經(jīng)常在網(wǎng)站發(fā)表一些垃圾信息的評論,由于使用的事DEDECMS構(gòu)架,系統(tǒng)本身并無禁止IP功能,每天看到這些垃圾評論,盡管不多,但是讓人感覺不爽,那么如何來限制呢?
    2011-04-04
  • 如何用PHP實(shí)現(xiàn)多線程編程

    如何用PHP實(shí)現(xiàn)多線程編程

    原以為 PHP 普遍都是單線程模型,并不適合多線程領(lǐng)域,發(fā)現(xiàn)PHP的多線程也頗有可取之處,用來解決某些問題竟然非常適合。本文對比多進(jìn)程介紹了下多線程的優(yōu)勢和適用場景,提出了一種巧用方案,并使用PHP代碼實(shí)現(xiàn)了多線程的常見用法。
    2021-05-05
  • PHP header()函數(shù)常用方法總結(jié)

    PHP header()函數(shù)常用方法總結(jié)

    這篇文章主要介紹了PHP header()函數(shù)常用方法.總結(jié)了常見的用法,需要的朋友可以參考下
    2014-04-04
  • php和asp語法上的區(qū)別總結(jié)

    php和asp語法上的區(qū)別總結(jié)

    在本篇文章中小編給大家分享了關(guān)于php和asp語法上的區(qū)別以及相關(guān)代碼知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-05-05
  • php版微信js-sdk支付接口類用法示例

    php版微信js-sdk支付接口類用法示例

    這篇文章主要介紹了php版微信js-sdk支付接口類用法,結(jié)合實(shí)例形式分析了php版微信js-sdk支付接口類的定義與相關(guān)使用技巧,需要的朋友可以參考下
    2016-10-10
  • 黑夜路人出的幾道php筆試題

    黑夜路人出的幾道php筆試題

    黑夜路人出的幾道php筆試題,大家可以看看。
    2009-08-08
  • PHP獲取數(shù)組長度或某個(gè)值出現(xiàn)次數(shù)的方法

    PHP獲取數(shù)組長度或某個(gè)值出現(xiàn)次數(shù)的方法

    這篇文章主要介紹了PHP獲取數(shù)組長度或某個(gè)值出現(xiàn)次數(shù)的方法,實(shí)例分析了count()與array_count_value()的使用技巧,需要的朋友可以參考下
    2015-02-02
  • 如何隱藏你的.php文件

    如何隱藏你的.php文件

    如何隱藏你的.php文件...
    2007-01-01
  • PHP+Ajax實(shí)現(xiàn)的檢測用戶名功能簡單示例

    PHP+Ajax實(shí)現(xiàn)的檢測用戶名功能簡單示例

    這篇文章主要介紹了PHP+Ajax實(shí)現(xiàn)的檢測用戶名功能,結(jié)合簡單實(shí)例形式分析了php結(jié)合ajax基于事件響應(yīng)動(dòng)態(tài)查詢數(shù)據(jù)庫及用戶名檢測相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享

    PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享

    這篇文章主要為大家詳細(xì)介紹了PHP5.5.15、Apache2.4.10和MySQL5.6.20配置方法,感興趣的小伙伴們可以參考一下
    2016-05-05

最新評論

阳新县| 江达县| 红安县| 琼海市| 台南县| 平乡县| 西青区| 南雄市| 衡东县| 蒙阴县| 监利县| 中卫市| 治多县| 望谟县| 东光县| 汶上县| 长海县| 合川市| 乌鲁木齐县| 松阳县| 绥江县| 五峰| 米泉市| 宝清县| 定边县| 汾西县| 铜鼓县| 莎车县| 健康| 闵行区| 永丰县| 郎溪县| 崇仁县| 公安县| 分宜县| 利津县| 南昌县| 宜阳县| 新余市| 桦甸市| 确山县|