mysql 注意 mysql 注意點

2021-10-22 04:44:22 字數 1187 閱讀 8587

mysql 優化:

每個innodb 表都要有乙個主鍵

限制表上索引的數量,避免建立重複和冗餘索引

注意合理選擇復合索引鍵值的順序

優先選擇符合儲存需要的最小的資料型別

varchar(n) 中的n 代表的是字元數,而不是位元組數

使用utf8 儲存漢字 varchar(255) = 765 個位元組

過大的長度會消耗更多的記憶體

避免使用text,blob 資料型別

避免使用join 關聯太多的表

每join 乙個表會多占用一部分記憶體(join_buffer_size)

會產生臨時表操作,影響查詢效率

mysql 最多允許關聯61個表,建議不超過5個

減少同資料庫的互動次數

資料庫更適合處理批量操作

合併多個相同的操作到一起,可以提高處理效率

使用in 代替or

in 的值 不要超過 500個

in 操作可以有效的利用索引

禁止使用 order by rand() 進行隨機排序

會把所有符合條件的資料裝載到記憶體進行排序

會消耗大量的cpu 和io 及記憶體資源

推薦在程式中獲取乙個隨機值,然後從資料庫中獲取資料的方式

where 從句中禁止對列進行函式轉換和計算

對列進行函式轉換或計算會導致無法使用索引

在明顯不會有重複值時使用union all 而不是 union

union 會把所有資料放到臨時表中後再進行去重操作

union all 不會再對結果集進行去重操作

super 許可權只能留給dba 處理問題的賬號使用

對於程式連線資料庫賬號,遵循許可權最小原則

拆分複雜的大sql 為多個小sql

mysql 乙個sql 只能使用乙個cpu 進行計算

sql 拆分後可以通過並行執行來提高處理效率

超過100萬行的批量寫操作,要分批多次進行操作

大批量操作可能會造成嚴重的主從延遲

binlog 日誌為row 格式是會產生大量的日誌

避免產生大事務操作

禁止為程式使用的賬號賦予super 許可權

當達到最大連線數限制時,還允許1個有super 許可權的使用者連線

mysql 注意點

標籤:函式   連線   連線資料庫   varchar   轉換   取數   var   最大   長度

mysql 查詢注意點

具體的優化方法 exist和in 如果主查詢的資料集大,使用in,select tname from teacher where tid in x,y,z 如果子查詢的資料集大,使用exist,select tname from teacher where exist select from tea...

mysql特別點 Mysql 特別注意點!

初始環境 create table product id int unsigned not null auto increment,amount int unsigned default null primary key id engine innodb charset utf8 insert in...

mysql遞增欄位的注意點

mysql sql 遞增函式 create table tab2 col1 integer not null auto increment,col2 char 20 not null,primary key col1 注意 auto increment 整數列可以具有 auto increment ...