愛遊思 大資料程式設計之MySQL

2021-07-14 22:25:41 字數 1632 閱讀 3692

/*通常當我們涉及到大資料高併發處理的時候,如果不注意效能問題我們的應用或**是會卡卡的乃至崩潰,如果有遠見大資料高併發應該從一開始就被重視,

那麼,今天來舉個大資料栗子,首先我們得搭建測試環境,

實驗環境,windows7,apache,php,mysql,

建立資料表(資料表可以自己設計,插入資料**也可以自己設計,表結構可以再簡單,資料也可以相同,myisam用以下php**執行要幾分鐘,innodb感覺半個鐘)*/

create table `user` (

`id` int(10) unsigned not null auto_increment,

`name` varchar(30) not null,

`xuhao` int(10) unsigned not null,

`suijishu` int(10) unsigned not null,

`chat` varchar(30) not null,

primary key (`id`),

key `index_name` (`name`)

) engine=myisam default charset=utf8;

/*資料表有了,執行以下**建立大資料環境*/

<?php

$servername = 「localhost」;

$username = 「root」;

$password = 「root」;

$dbname = 「sqltest」;

function getrandchar($length)

return $str;

}// 建立連線

$conn = new mysqli($servername, $username, $password, $dbname);

// 檢測連線

if ($conn->connect_error)

$len = 100000;//本人執行的是100000,可以在後面再加個0試試(百萬級資料或執行10次),反正我是分開執行了4,5次

for($i=1;$i<=$len;$i++) else

}$conn->close();

echo 『』;

?>

/*首先來說說分頁上的技巧,如果每頁y條記錄,設第n頁

做法一:

select * from table limit (n-1)*y,y;

以下是每頁5條記錄的截圖,很好,執行時間都很小

圖1但問題來了,當分頁分頁越到後面,截圖如下

如第8001頁,就是(80001-1)*5

select * from table limit 400000,5;

截圖如下

圖2執行時間為1s以上,如果再加上高併發,資料庫伺服器就要崩掉了

所以做法二:

select * from table where id > (n-1)*y limit y;

同樣是第80001頁,

圖3very good,執行時間為0,

那麼,我們來看看索引,乙個未新增索引的字段反覆執同一語句行時間在0.14s以上

圖4name欄位已新增索引,首次0.3s,再次0s

圖5、6

總之,大家可以自己搭建乙個百萬級、千萬級資料,自己慢慢虐就是了,實踐出真理

《程式設計之美》學而思 金剛坐飛機

金剛坐飛機 2015 11 2 flyfish 引用自 程式設計之美 國外有乙個諺語 問 體重800 磅的大猩猩在什麼地方坐?答 它愛在哪兒坐就在哪兒坐。這句諺語一般用來形容一些 強人 並不遵守大家公認的規則,所以要對其行為保持警 惕。現在有一班飛機將要起飛,乘客們正準備按機票號碼 1,2,3,n ...

2013程式設計之美資格賽之大資料測試( )

傳話遊戲大資料通過 長方形wa。原因是求長方形數量時,用到了四數連乘,哦,其結果就是超出int型表示的範圍,wa是必然的。樹上的三角形tle。這個也是在情理之內,由於我連樹的構造都不太會實現,自己想的一種方法構造了一種類樹 就是類似的樹 時間會比較長,超時也在情理之中。哦。說一下結果,題目1題目2 ...

賽思互動 大資料能給企業帶來什麼

在以往的文章中,我們不止一次的提到過資料對企業的重要性。對現代企業來說,資料的意義不亞於第一次工業革命後的煤炭 鋼鐵,或是現代工業的電力 石油甚至自動化技術。事實上,對於資料的深度挖掘和應用正是工業4.0的核心。在具體應用中,廣告自動化購買 使用者畫像這些基於大資料的企業級應用都已經獲得了廣泛的認同...