一個DBA對於開發人員使用MySQL的tips

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   io   使用   ar   檔案   

http://neoremind.net/2011/06/%E4%B8%80%E4%B8%AAdba%E5%AF%B9%E4%BA%8E%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E4%BD%BF%E7%94%A8mysql%E7%9A%84tips/ 剛剛入職不久,一個陪伴項目組走過3年的DBA離職,在最後的一天給我們培訓了下,下面是記錄的一些要點,MySQL的使用、表設計學問還是很大的,以後還會陸續學習資料庫部分的相關知識。 1 insert要寫欄位名,不能光values,避免庫表結構變化  2 不要使用select *,寫出確切欄位,效能考慮,減少IO,MYSQL最佳化 3 盡量少用聯表查詢 4 不能使用聯表更新,盡量少用load data 5 資料約束盡量由程式保證 6 大資料量排序等操作最好由程式完成 7 所有欄位定位為not null,數值型用0代替,字元型用"代替 8 庫、表命名方式,按C風格,表名小寫,兩個 如beiker_sms_template 9 50位元組以下的直接使用char,不要使用varchar(update delete會增加開銷,資料檔案片段搞,檔案系統定址效率低) 10 不同表相同欄位需要使用相同的欄位名,如user_id 11 欄位加上comment 12 杜絕只增不減的表,要定期刪除無效資料 13 盡量使用主鍵 14 使用首碼索引 create table xxx (id int(20) name varchar(255)value varchr(255)NOT NULL DEFAULT ‘0000-00-00 00:00:00′PRIMARY KEY(‘id’)KEY `userid` (`userid,`’value’,‘id’)) select * from xxx where userid = xx and value =  提高運行效率 15 對於innodb來說,使用主鍵鎖的是一行,使用索引鎖的可能不值一行 16 對於MyISAM 在進行大批量插入前可以將索引關閉,等全部插入完畢後再開啟索引,進行索引更新 alter table xxx disable keys; insert …… insert效率很高endable keys; 耗時的是分析索引 17 單表資料量建議少於2KW,否則存在效能拐點,需要拆表 18 union操作盡量少用,必須的情況下用union all,而不要使用union,兩次結果重複的行去除掉,CPU IO消耗會少很多,資料量小的話沒事 19 not in不會使用索引,建議不要使用in,盡配量序做 20 不要用ctrl c停止一個指令碼 用kill 否則主從同步會不一致。0  

一個DBA對於開發人員使用MySQL的tips

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.