mysql建表和索引使用規範
tt_lan2003
一、 mysql建表,欄位需設定為非空,需設定字段預設值。
二、 mysql建表,欄位需null時,需設定字段預設值,預設值不為null。
三、 mysql建表,如果字段等價於外來鍵,應在該字段加索引。
四、mysql建表,不同表之間的相同屬性值的字段,列型別,型別長度,是否非空,是否預設值,需保持一致,否則無法正確使用索引進行關聯對比。
五、 mysql使用時,一條sql語句只能使用乙個表的乙個索引。所有的字段型別都可以索引,多列索引的屬性最多15個。
六、 如果可以在多個索引中進行選擇,mysql通常使用找到最少行的索引,索引唯一值最高的索引。
七、 建立索引index(part1,part2,part3),相當於建立了index(part1),index(part1,part2)和index(part1,part2,part3)三個索引。
八、 mysql針對like語法必須如下格式才使用索引:
select * from t1 where key_col like 'ab%' ;九、 select count(*) 語法在沒有where條件的語句中執行效率沒有selectcount(col_name)快,但是在有where條件的語句中執行效率要快。
十、在where條件中多個and的條件中,必須都是乙個多列索引的key_part屬性而且必須包含key_part1。各自單一索引的話,只使用遍歷最少行的那個索引。
十一、 在where條件中多個or的條件中,每乙個條件,都必須是乙個有效索引。
十二、 order by 後面的條件必須是同一索引的屬性,排序順序必須一致(比如都是公升序或都是降序)。
十三、 所有group by列引用同一索引的屬性,並且索引必須是按順序儲存其關鍵字的。
十四、 join 索引,所有匹配on和where的字段應建立合適的索引。
十五、 對智慧型的掃瞄全表使用force index告知mysql,使用索引效率更高。
十六、 定期analyze table tbl_name為掃瞄的表更新關鍵字分布 。
十七、 定期使用慢日誌檢查語句,執行explain,分析可能改進的索引。
十八、條件允許的話,設定較大的key_buffer_size和query_cache_size的值(全域性引數),和sort_buffer_size的值(session變數,建議不要超過4m)。
備註 主鍵的命名採用如下規則:
主鍵名用pk_開頭,後面跟該主鍵所在的表名。主鍵名長度不能超過30個字元。如果過長,可對錶名進行縮寫。縮寫規則同表名的縮寫規則。主鍵名用小寫的英文單詞來表示。
外來鍵的命名採用如下規則:
外鍵名用fk_開頭,後面跟該外來鍵所在的表名和對應的主表名(不含t_)。子表名和父表名自己用下劃線(_)分隔。外鍵名長度不能超過30個字元。如果過長,可對錶名進行縮寫。縮寫規則同表名的縮寫規則。外鍵名用小寫的英文單詞來表示。
索引的命名採用如下規則:
1)索引名用小寫的英文本母和數字表示。索引名的長度不能超過30個字元。
2)主鍵對應的索引和主鍵同名。
3)唯一性索引用uni_開頭,後面跟表名。一般性索引用ind_開頭,後面跟表名。
4)如果索引長度過長,可對錶名進行縮寫。縮寫規則同表名的縮寫規則
index 相關語法
例:create index log_url on logaudit_log(url);
show index from logaudit_log
drop index log_request_time on logaudit_log
Mysql建表與索引使用規範詳解
一 mysql建表,欄位需設定為非空,需設定字段預設值。二 mysql建表,欄位需null時,需設定字段預設值,預設值不為null。三 mysql建表,如果字段等價於外來鍵,應在該字段加索引。四 mysql建表,不同表之間的相同屬性值的字段,列型別,型別長度,是否非空,是否預設值,需保持一致,否則無...
Mysql建表與索引使用規範整理
一,設計表規範 1.mysql建表,欄位需設定為非空,需設定字段預設值。2.mysql建表,欄位需null時,需設定字段預設值,預設值不為null。3.mysql建表,如果字段等價於外來鍵,應在該字段加索引。4.mysql建表,不同表之間的相同屬性值的字段,列型別,型別長度,是否非空,是否預設值,需...
Mysql建表與索引使用規範整理
一,設計表規範 1.mysql建表,欄位需設定為非空,需設定字段預設值。2.mysql建表,欄位需null時,需設定字段預設值,預設值不為null。3.mysql建表,如果字段等價於外來鍵,應在該字段加索引。4.mysql建表,不同表之間的相同屬性值的字段,列型別,型別長度,是否非空,是否預設值,需...