1.定長和變長的分離
如int,char,time所佔位元組是固定的字段放在一張表
如varchar,text所佔位元組不確定的字段放在一張表中
2.常用字段和不常用字段進行分離,根據查詢頻率來設計
3.一對多的關聯表可以新增冗餘字段,如商品分類表 和商品表 ,在首頁中需要顯示每個分類商品總數.解決方案1是left join查詢,解決方案2是在商品分類表中增加欄位來統計數量,每次增加商品+1,這樣就避免關聯表查詢犧牲的性
能4.欄位型別的選擇,整型 ->datetime->enum->char->varchar->text,優先定長型別,沒有國家區分,無字符集的差異.整型的優勢,例如tinyint 1 2 3 4和char a b c d e在order by 下前者速度快。如果是字元型別快考慮字符集和排序,影響效能
5.enum型別約束值的規範使用.在.net中經常使用enum.但是php中我還是很少的.enum('男','女'),內部會增加乙個轉換過程,轉為數字來存
6.盡量避免使用null,不利於索引
7.儲存引擎選擇,小型產品對資料不嚴格,採用myisam,插入速度快,移植快;大型專案對資料一致性,可用性要求比較高建議innodb,memory型別選擇我還是不建議的,還不如直接採用redis
8.精確浮點數使用decimal替代float和double,例如微擎人人**系統中大幅度使用
mysql建表原則 mysql優化1 建表原則
建表三大原則 定長和變長分離 常用字段和不常用字段分離 使用冗餘欄位或冗餘表 1 定長與變長分離 如 id int,佔4個位元組,char 4 佔4個字元長度,也是定長,time 即每乙個單元值佔的位元組是固定的。在磁碟上查詢時,由於每一行長度固定,比如長度為10000,查下一條時只需查 10001...
Mysql優化之建表原則
1.定長與變長分離 如 id int佔4個位元組,char 4 佔4個字元長度,也是定長,time即每一單元值佔的位元組是固定的 核心且常用字段,直建成定長,方在一張表上 而 varchar,text,blob這種變長字段,適合單方一章表,用主鍵與核心表關聯起來 2.常用字段要與非常用字段分離 需要...
mysql建表思路 MySQL 建表思路
思想 硬碟如倉庫,表如倉庫中貨架 常用與不常用等分類 欄位如貨物 尺寸是固定或變動 訪問貨物涉及到貨架的佔位 效率。資料型別選用,建表思路,正規化 資料型別特點 資料型別的速度關係 最快 整形 date,time char,enum varchar text blob 最慢 char 與 varch...