一、資料庫優化
建表:create table user(
id int not null,
name varchar(200),
ip int )engine=innodb default charset=utf8;
1. 選擇合適的字段型別,比如使用者狀態選擇tinyint,因為tinyint占用乙個位元組
2. 盡量每個欄位都新增not null
3. 能夠用數字型別盡量使用數字型別,比如ip位址可以使用int型別儲存
4. 選擇合適的表引擎,比如:如果這個表寫操作比較頻繁,建議使用innodb
5. 選擇合適的字符集。一般都是選擇utf8
6. 根據業務情況,給經常作為where/order by /group by後面的字段新增索引
7. 把不常用的字段和字段型別比較大(text) 劃分到其他表中
8. 適當地冗餘,反正規化。以達到空間換取時間
一般資料庫配置檔案的引數也是需要根據業務情況改動。
二、架構層面的優化:
1. 分庫分表
2. 搭建主從資料庫,做到讀寫分離。減少單台資料庫伺服器壓力
三、查詢的優化:
select id,name from user where md5(name) = '' limit 10 //先把乙個sql語句寫出來,然後分析
1. 不要使用*,盡量只查需要的字段
2. 盡量使用limit,減少資料傳輸大小
3. 盡量根據索引來檢索資料
4. 盡量不使用子查詢,可以使用連線替換,連線字段需要新增索引
5. 儘量減少在資料庫進行運算、使用內建函式
6. 儘量減少使用like模糊查詢
資料庫優化建議
1.建立索引時,按照索引字段重複最少來排序,盡量建立復合索引。2.應考慮在where及order by涉及的列上建立索引。3.select時,不要返回不需要的行。4.sql中where的第乙個條件寫聚集索引,where條件中建立了索引的字段要放在前面。5.聯合查詢時,使用exists 或not ex...
資料庫相關規範建議
核心 1 不在資料庫做運算cpu計算務必移至業務層 2 控制單錶資料量 單錶記錄控制在1000w 3 控制列數量 字段數控制在20以內 4 平衡正規化與冗餘 為提高效率犧牲正規化設計,冗餘資料 5 拒絕3b 拒絕大sql,大事物,大批量 欄位類 1 用好數值型別 tinyint 1byte smal...
資料庫優化相關概念
資料結構 sql 索引是成本最低,且效果最好的優化手段。1.sql 以及索引的優化 首先要根據需求寫出結構良好的 sql,然後根據 sql 在表中建立有效的索引。但是如果索引太多,不但會影響寫入的效率,對查詢也有一定的影響。2.合理的資料庫設計 1 根據資料庫三正規化來進行表結構的設計。設計表結構時...