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