一、php的foreach和mysql的in哪個執行效率高?
1:foreach($item as $k=>$v){
//迴圈100次
//這裡使用單id查詢一條資料。
2:使用in查詢id in(1,2,3,.......,100),100個id條件。
同樣的結果,1個查詢100次,1次查詢1條資料;乙個查詢1次,1次查詢100條資料,哪乙個效率高些?
在查詢效率上,是第乙個快
但是在對伺服器的io壓力上,傾向於使用第二個。
因為一次查詢就是一次mysql鏈結,佔乙個磁碟io。而且mysql一般的連線數是2000,你這一迴圈就一下佔100個鏈結,雖然不會那麼誇張,但是如果是高併發的情況就不容樂觀了。
所以推薦使用第二個。
二、ta(taid, b, c, d, e),tb(tbid, b, f, g, h, i, j, k),根據b欄位級聯查詢兩表,獲取兩表所有欄位的資料,如何操作?
1.查詢ta表得到多條記錄
2.通過上述in的方式查詢tb表得到多條記錄
3.通過使用內外兩層迴圈的方式、通過b欄位把兩次查詢得到的多條記錄連線起來
MySQL沒有級聯 MySql級聯操作
外來鍵約束對子表的含義 如果在父表中找不到候選鍵,則不允許在子表上進行insert update 外來鍵約束對父表的含義 在父表上進行update delete以更新或刪除在子表中有一條或多條對應匹配行的候選鍵時,父表的行為取決於 在定義子表的外來鍵時指定的on update on delete子句...
mysql級聯 MySQL外來鍵之級聯
簡介 mysql外來鍵起到約束作用,在資料庫層面保證資料的完整性。例如使用外來鍵的cascade型別,當子表 例如user info 關聯父表 例如user 時,父表更新或刪除時,子表會更新或刪除記錄,這個過程是資料庫層面完成的。早期企業系統資料庫設計裡面比較多,雖說幫程式設計師節省了delete ...
mysql的級聯操作 mysql的級聯操作
1.建立表a create table a name char 20 not null,id char 20 not null primary key 2.建立表b create table b b name char 20 not null,b id char 20 not null constr...