數(shù)據(jù)頁:數(shù)據(jù)文件中的最小存儲單元,頁面的大小是8*1024個字節(jié)
聚簇:將含有相同列的表存到一個數(shù)據(jù)庫塊之中
寫sql的順序:
表->where(去除符合條件的行數(shù)據(jù),此時列沒有變化)->符合條件的中間結(jié)果表-> 分組統(tǒng)計運算或者投影運算:max、min、count、avg、group by->上步得到的新的結(jié)果集,這時就有可能產(chǎn)生新的列->having(篩選結(jié)果)->order by(得到排序結(jié)果表)->limit(限制條目)->最終結(jié)果表
SQL構(gòu)造塊
聚集函數(shù)
DISTINCT
GROUP BY
HAVING
集合操作(在MySQL中只有UNION, UNION ALL,沒有EXCEPT和INTERSECT)
子查詢
外鍵:
1,在大型系統(tǒng)中(性能要求不高,安全要求高),使用外鍵;在大型系統(tǒng)中(性能要求高,安全自己控制),不用外鍵;小系統(tǒng)隨便,最好用外鍵。
2,用外鍵要適當,不能過分追求
3,不用外鍵而用程序控制數(shù)據(jù)一致性和完整性時,應(yīng)該寫一層來保證,然后個個應(yīng)用通過這個層來訪問數(shù)據(jù)庫。
主鍵和索引是必須的
優(yōu)點:對性能有巨大提升
泛關(guān)系假設(shè):所描述的數(shù)據(jù)的全體能用一個關(guān)系來表述。
存儲過程的優(yōu)缺點:
1.無需進行數(shù)據(jù)庫服務(wù)器解析,執(zhí)行速度快
2.屏蔽sql注入,安全
3.不利于系統(tǒng)分層設(shè)計和維護
4.不利于數(shù)據(jù)庫的遷移
索引
優(yōu)點:提高查詢速度
缺點:降低update和insert效率,且占用內(nèi)存
聚簇索引適用情況:
1、含有大量非重復(fù)值的列。
2、使用BETWEEN,>,>=,<或<=返回一個范圍值的列
3、被連續(xù)訪問的列
4、返回大型結(jié)果集的查詢
5、經(jīng)常被使用連接或GROUP BY子句的查詢訪問的列
聚簇索引不適用情況:
1.高頻更新的列
注意事項?
定義聚集索引鍵時使用的列越少越好,這一點很重要。如果定義了一個大型的聚集索引鍵,則同一個表上定義的任何非聚集索引都將增大許多,因為非聚集索引條目包含聚集鍵
聚集函數(shù):Max、Min、Sum 、Avg 、Count
avg和count參數(shù)必須是數(shù)據(jù)集,前四個與count(*)會忽略null,count(column)不忽略null