Lam's blog

知之爲知之,不知爲不知


  • 首頁

  • 歸檔

  • 關於我

  • 搜索

MySQL最佳實踐10點建議

時間: 2021-02-26 | 字數: 889 字 | 閱讀: 2分鐘 | 閱讀次數:

MySQL是使用最廣泛的開源關系型數據庫管理系統之一。性能佳、高可用和易於使用是它流行的原因。本文給出一些在使用MySQL時的一些最佳實踐建議。

MySQL最佳實踐

1. 使用最合適的數據類型

選用數據類型應基於數據性質來決定。如果使用了不洽當的數據類型可能會浪費多余空間或者引發錯誤。

例:使用varchar(20)來存儲DATETIME數據類型的值時在計算時間相關會出現錯誤,同時也會導致存儲了無效的值。

2. 使用CHAR(1)而不是CARCHAR(1)

如果存儲單字符的值,使用CHAR(1)而不是VARCHAR(1),因為CARCHAR(1)會占用多余字節存儲額外信息。

3. 使用CHAR數據類型存儲固定長度的數據

如使用CHAR(1000)相比VARCHAR(1000)存儲數據時如果數據長度小於1000,將會浪費多余的空間。

4. 避免使用地區的日期格式

當使用DATETIME或者DATE數據類型時使用"YYYY-MM-DD"日期格式,或者ISO日期格式。像"DD-MM-YYYY"、“MM-DD-YYYY"等其它地區的格式無法正確存儲。

5. 索引key字段

確保在使用JOIN語句的字段使用了索引以提高查詢效率。

如果使用UPDATE時影響多個表,確保關聯表的字段添加了索引。

6. 不要在建立了索引的字段使用函數

在創建了索引的字段使用函數會破壞索引。如下:

SELECT columns FROM table WHERE left(customer_code, 2) = 'AK';

優化為:

SELECT columns FROM table WHERE customer_code LIKE 'AK%';

7. 不要使用SELECT *

指定查詢所需的字段。

8. 慎用ORDER BY語句

ORDER BY會影響SQL執行效率。這個以後會另起一篇來說明。

9. 選用合適的數據庫引擎

如果開發的項目讀無比讀的情況多,那選用MyISAM存儲引擎。

選擇錯誤的存儲引擎會影響數據庫性能。

10. 必要時使用EXISTS語句

為了檢測數據是否存在,使用EXISTS子句會更快。

IF (SELECT COUNT(*) FROM Table WHERE col='value') > 0

優化

IF EXISTS(SELECT * FROM Table WHERE col='value')

11. 分析SELECT語句

#MySQL#

聲明:MySQL最佳實踐10點建議

鏈接:https://www.lamsir.cc/post/top-10-best-practices-in-mysql/

作者:Lam Sir

聲明: 本博客文章除特別聲明外,均采用 CC BY-NC-SA 3.0許可協議,轉載請註明出處!

創作實屬不易,如有幫助,那就打賞博主些許茶錢吧 ^_^
ETH Pay

ERC20-USDT

Mysql查看Binlog日誌數據
javascript復製文本
Lam Sir

Lam Sir

Live your life...

30 日誌
5 分類
11 標簽
標簽雲
  • Python
  • Php
  • Javascript
  • Mysql
  • Video
  • Wordpress
  • API
  • Laravel
  • MAC
  • Node.Js
© 2020 - 2022 Lam's blog
0%