select * from a,b where a.id=b.id and a.id = 123;
創(chuàng)新互聯(lián)建站堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。10多年網(wǎng)站建設(shè)經(jīng)驗創(chuàng)新互聯(lián)建站是成都老牌網(wǎng)站營銷服務(wù)商,為您提供成都網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)站設(shè)計、H5開發(fā)、網(wǎng)站制作、品牌網(wǎng)站制作、小程序定制開發(fā)服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。
再explain一下看看?
因此,其實已經(jīng)使用了。但是因為你的查詢里對“左表a”沒有條件,是全部輸出的,因此不會用上a的索引,同時由于需要在b表里用id關(guān)聯(lián)a表,因此就用上了b表的索引。
比如在用戶表里面的ID,最好寫成userId
與之關(guān)聯(lián)的相冊表里面對應(yīng)一個userId即可實現(xiàn)關(guān)聯(lián)
參考1:
表的關(guān)聯(lián),只是一種邏輯概念,本并不需要進(jìn)行物理上的“硬綁定”,而且你所期望的關(guān)聯(lián),其實只是其數(shù)據(jù)上存在一定的聯(lián)系而已,而這種聯(lián)系實際上是在設(shè)計之初就定義好的固有邏輯。
所以在業(yè)務(wù)代碼中實現(xiàn)的時候,只要按照設(shè)計之初的這種固有關(guān)聯(lián)邏輯來“存/取”數(shù)據(jù)即可,并不需要在數(shù)據(jù)庫層面進(jìn)行“硬綁定”,因為在數(shù)據(jù)庫層面通過使用外鍵的方式進(jìn)行“硬綁定”,會帶來很多額外的資源消耗來進(jìn)行一致性和完整性校驗,即使很多時候我們并不需要這個校驗。
所以一般不建議在數(shù)據(jù)庫中使用外鍵約束來保證數(shù)據(jù)的一致性和完整性。
參考2:
首先關(guān)于外鍵的作用與使用場景:
1.作用:通過數(shù)據(jù)庫提供的外鍵功能,進(jìn)行數(shù)據(jù)完整性和一致性的維護(hù),避免借助外部力量維護(hù);
2.使用場景:若是高并發(fā)大流量事務(wù)場景,使用外鍵可能容易造成死鎖,以及數(shù)據(jù)庫資源更快出現(xiàn)瓶頸,所以一般互聯(lián)網(wǎng)行業(yè)不建議使用,多使用再企業(yè)內(nèi)部,比如ERP軟件,早期的MIS系統(tǒng)等
關(guān)于如何體現(xiàn)表與表之間的關(guān)聯(lián)性和如何維護(hù)數(shù)據(jù)完整性和一致性:
1.關(guān)聯(lián)性:那就是設(shè)計數(shù)據(jù)庫的時候,要讓所有人知道表與表之間的通過那個字段關(guān)聯(lián)起來,所以字段名稱命名上會做一些文章
2. 如何維護(hù)數(shù)據(jù)完整性和一致性:通過外部程序的力量,啟用事務(wù)的方式,比如:
START TRANSACTION;
UPDATE A SET co1=** …;
UPDATE B SET A_co1=**…;
COMMIT;
注釋:假設(shè)場景 A表的col1變成某值之后,B表中的A_col1字段也必須修改為對應(yīng)的值…
方法和操作步驟如下:
1、首先,創(chuàng)建一個測試表,如下圖所示,然后進(jìn)入下一步。
2、其次,插入測試數(shù)據(jù),如下圖所示,然后進(jìn)入下一步。
3、接著,完成上述步驟后,查詢表中的數(shù)據(jù),“select t.* from test_tbl2 t?”,如下圖所示,然后進(jìn)入下一步。
4、最后,完成上述步驟后,編寫sql,兩個表通過pid與id關(guān)聯(lián), “select t1.*, t2.* from test_tbl1 t1 join test_tbl2 t2 on t1.p_id = t2.id;”,如下圖所示。這樣,問題就解決了。
分享文章:mysql怎么加快表關(guān)聯(lián) mysql 三表關(guān)聯(lián)
文章來源:http://aaarwkj.com/article26/doodijg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站制作、、云服務(wù)器、商城網(wǎng)站、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)