数据页:数据文件中的最小存储单元,页面的大小是8*1024个字节
聚簇:将含有相同列的表存到一个数据库块之中
写sql的顺序:
表->where(去除符合条件的行数据,此时列没有变化)->符合条件的中间结果表-> 分组统计运算或者投影运算:max、min、count、avg、group by->上步得到的新的结果集,这时就有可能产生新的列->having(筛选结果)->order by(得到排序结果表)->limit(限制条目)->最终结果表
SQL构造块
聚集函数
DISTINCT
GROUP BY
HAVING
集合操作(在MySQL中只有UNION, UNION ALL,没有EXCEPT和INTERSECT)
子查询
外键:
1,在大型系统中(性能要求不高,安全要求高),使用外键;在大型系统中(性能要求高,安全自己控制),不用外键;小系统随便,最好用外键。
2,用外键要适当,不能过分追求
3,不用外键而用程序控制数据一致性和完整性时,应该写一层来保证,然后个个应用通过这个层来访问数据库。
主键和索引是必须的
优点:对性能有巨大提升
泛关系假设:所描述的数据的全体能用一个关系来表述。
存储过程的优缺点:
1.无需进行数据库服务器解析,执行速度快
2.屏蔽sql注入,安全
3.不利于系统分层设计和维护
4.不利于数据库的迁移
索引
优点:提高查询速度
缺点:降低update和insert效率,且占用内存
聚簇索引适用情况:
1、含有大量非重复值的列。
2、使用BETWEEN,>,>=,<或<=返回一个范围值的列
3、被连续访问的列
4、返回大型结果集的查询
5、经常被使用连接或GROUP BY子句的查询访问的列
聚簇索引不适用情况:
1.高频更新的列
注意事项
定义聚集索引键时使用的列越少越好,这一点很重要。如果定义了一个大型的聚集索引键,则同一个表上定义的任何非聚集索引都将增大许多,因为非聚集索引条目包含聚集键
聚集函数:Max、Min、Sum 、Avg 、Count
avg和count参数必须是数据集,前四个与count(*)会忽略null,count(column)不忽略null