MySQL為什麼不要多表關聯?
自己原文公眾號: https://mp.weixin.qq.com/s/NYEhQXgPA299dlyYNUmrOw
我個人是反對的,我覺得2個表關聯是正常的,單表最好。如果特殊最多3個表關聯,3個以上是不對的(效能不好,建議優化)。即使在Oracle上,不管MYSQL還是PostgesSQL。
某個SQL執行了幾分鐘大致是這樣的select * from 6個表關聯 limit 70000,10000.
最後Query_time: 255.707167 Lock_time: 0.002991 Rows_sent: 10000 Rows_examined: 8217255
大家覺得不可能,最大的表才140萬左右,怎麼可能800萬的掃描。
這個以前講過,今天再次資料說話,重現一下。t1 t2 t3各100萬。
結果請看,有幾個表就掃描了幾倍。上面這個最終顯示10條,但是掃描了300030 。就是100010X3
如果是10個表關聯,那就是100010X10
所以,千萬要控制表的關聯數量,這是根本。如果歷史原因已經很多表了,那麼where條件一定要控制住,大表不要全表。如果都控制不住,那就可能要出問題了。
表設計把控難度相對大,最好一開始就介入,結合需求設計。而不是把以前的專案的表拿過來用,然後再改。這樣需求和表就不在一個頻道上了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847174/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL關聯多表更新的操作MySql
- 多表關聯更新(mysql,oracle,postgreSQL)MySqlOracle
- mysql中的多表關聯查詢MySql
- MYSQL 怎麼 LEFT JOIN 多表聯查MySql
- MyBatisPlus怎麼多表關聯查詢?MyBatis
- JPA多表關聯查詢
- ORACLE多表關聯UPDATE語句Oracle
- 如何做多表關聯查詢
- mysql怎麼關聯表?MySql
- 為什麼SSB與PRACH occasion能夠關聯?
- Oracle\MS SQL Server Update多表關聯更新OracleSQLServer
- Python全棧Web(Flask框架、多表關聯)Python全棧WebFlask框架
- sql 多表關聯刪除表資料SQL
- onethinkphp 如何做多表關聯查詢PHP
- MySQL筆記-左連線的使用(left join有關聯的多表查詢)MySql筆記
- Spring Data JPA 實現多表關聯查詢Spring
- Java程式設計基礎32——MySQL多表聯查Java程式設計MySql
- 多表關聯查詢中,關聯欄位都應該建立索引嗎?索引
- 程式設計師為什麼千萬不要瞎努力?程式設計師
- 為什麼阿里巴巴禁止資料庫中做多表join?阿里資料庫
- SQL優化之多表關聯查詢-案例一SQL優化
- MySQL 優化器引數derived_merge導致多表關聯SQL效能及其低下MySql優化
- 為什麼不要把ZooKeeper用於服務發現?
- 【MySQL】多表查詢MySql
- mysql多表查詢MySql
- MySQL 多表查詢MySql
- mysql新建表和多表查詢,關鍵字joinMySql
- 筆記本千萬不要用固態硬碟是為什麼 買筆記本不要加固態硬碟是什麼原因筆記硬碟
- Mybatis【15】-- Mybatis一對一多表關聯查詢MyBatis
- 我為什麼不要30歲以上的程式設計師?程式設計師
- foreach迴圈中為什麼不要進行remove/add操作REM
- 為什麼程式設計師千萬不要重寫程式碼?程式設計師
- 物聯網路卡為什麼那麼火
- CDN和CDN加速有什麼關聯
- MySQL Connectors為什麼沒有javaMySqlJava
- MySQL為什麼選B+樹MySql
- MySQL 連線為什麼掛死了?MySql
- mysql為什麼加索引就能快MySql索引