使用mySQL部分建議

2021-07-29 14:12:38 字數 2264 閱讀 8510

mysql是乙個小型關係型資料庫管理系統,開發者為瑞典mysql ab公司。目前mysql被廣泛地應用在internet上的中小型**中。在資料庫選擇上,由於其體積小、速度快、總體布置成本低,最重要的是開源**這些特點,成了許多公司為了降低**的總體成本的不二選擇。

1、能夠工作在眾多的平台,功能強大

2、提供事務性引擎和非事務性引擎

3、支援豐富的資料型別

4、高效能、穩定、支援大資料

5、提供了豐富的api

6、提供眾多的工具和文件

7、開源

1、2023年,報表工具、資料引擎

2、2023年,mysql1.0支援sql

3、2023年,mysql ab公司成立

4、2023年,sun公司收購mysql ab公司

5、2023年,oracle收購sun公司

1.字段型別選擇

- 根據需求選擇合適的字段型別,在滿足需求的情況下欄位型別盡可能小。

-資料型別盡可能簡單

-只分配滿足需求的最小字元數,不要太慷慨

原因:更小的字段型別占用更少的記憶體和磁碟空間。使用時,占用相對更少的磁碟i/o和更少的寬頻。

2.主鍵選擇

-顯式的定義乙個數值型別自增字段的主鍵,這個字段可以僅用於做主鍵,不做其他用途

-mysql主鍵應該是單列,以便提高連線、篩選等操作的效率,一般(建議)主鍵放在表的第一列

-主鍵的字段型別盡可能小

-盡量保證不對主鍵字段進行修改、主鍵字段發生變化,容易引發資料儲存碎片,降低i/o效能。

-mysql主鍵不應包含動態變化的資料,如時間戳、建立時間列、修改時間列。禁忌字串做索引。

推薦:推薦數字型別做主鍵並採用auto_increment屬性。

3.not null or null

盡可能設定每個欄位為not null,除非有特殊的需求,原因如下:

- 使用含有null列做索引的話會占用更多的磁碟空間,因為索引null列需要額外的空間來儲存

- 進行比較時,程式處理會更複雜,出錯概率會增大

- 含有null的列比較特殊,sql很難優化,如果查詢包含有null列,會極大影響索引效率。

4.編寫高效的sql語句

-不要在直接使用類似select * from形式運算元據庫。推薦只操作需要使用的列

-範例:

select * from 『pre_common_banned』;

select id from 『pre_common_banned』;

-盡量不要在資料庫中做計算

-範例:

select id from pre_home_notification where uid>0 and new=0 and dateline<1329357342-172800;

select id from pre_home_notification where uid>0 and new = 0 and dateline < 1329184542;

-where子句盡可能不要對列進行計算和使用函式,例如:

select 『name』from test where id-1 = 100;

select 『name』from test unix_timestamp(date_time)=1331481600;

推薦:

select 『name』from test where id=99;

select 『name』 from test where date_time = from_unixtime(1331481600);

-避免負向查詢和%字首模糊查詢

範例:

select 『title』 from 『v9_news』 where title like %hr美眉%;

推薦:

select 『title』 from 『v9_news』 where title like 『hr美眉%』;

-避 免隱式型別轉換,例如字元型一定要用』 『,數字型別一定不要使用』 『;

範例:

select 『userid』 from 『v9_member』 where username = 1786099370;

select 『userid』 from 『v9_member』

where userid = 『1786099370』;

mysql使用建議,盡量避免這些問題

做伺服器端開發的同學們,相信對於mysql應該是十分熟悉,但是一旦真正出現問題,你是否能夠快速的發現問題的起因,並且解決呢?一旦問題涉及到資料庫層面,往往不是那麼好解決的,通常來說,我們需要提前做應對未來可能出現問題的準備。下面是幾條針對mysql使用的優化建議 儘量減少資料庫上的計算操作 將那些需...

mysql使用建議,盡量避免這些問題

做伺服器端開發的同學們,相信對於mysql應該是十分熟悉,但是一旦真正出現問題,你是否能夠快速的發現問題的起因,並且解決呢?一旦問題涉及到資料庫層面,往往不是那麼好解決的,通常來說,我們需要提前做應對未來可能出現問題的準備。下面是幾條針對mysql使用的優化建議 儘量減少資料庫上的計算操作 將那些需...

Mysql儲存引擎介紹和使用建議

1.介紹 資料庫儲存引擎是資料庫底層元件,資料庫管理系統使用資料引擎進行建立 查詢 更新和刪除資料操作。不同的儲存引擎提供不同的儲存機制 索引技巧 鎖定水平等功能,使用不同的儲存引擎還可以獲得特定的功能。我們可以通過show engines 2.多種儲存引擎說明 innodb儲存引擎 innodb越...