mysql面經

Cooler Boy發表於2020-10-07

sql優化

可以考慮從下邊幾個方面說

硬體 資料庫的設計 外來鍵 索引及sql語句的書寫 欄位 讀寫分離 引入快取

  • 資料庫的設計
    遵循三大正規化,避免資料冗餘
  • 外來鍵
    外來鍵會降低mysql的效率,儘量避免使用
  • sql語句的書寫
    1 可以用EXISTS替代IN,否則會導致全表掃描
    2 避免where字句中使用表示式,否則mysql不會使用索引
    3 可以使用連線查詢代替子查詢
    4 只查詢想要的欄位,避免使用select *,資料多時可以使用limit進行數量限制,
  • 欄位
    良好的欄位設計可以提升sql查詢的效率
  • 引入快取
    對於需要重複查詢的資料,可以將其放入redis中,避免重複查詢
  • 索引
    1 加入索引,經常查詢的欄位可以加上索引,儘量在where或order by後的欄位加上索引
    2 可以將索引列設為非空,查詢null或非null時不會使用索引

相關文章