三范式
:
一:属性不可再分;学生表中有姓名,性别,年龄等
二:字段必须完全依赖于全部主键而非部分主键. 学生表中有姓名,性别,年龄等,学号唯一确定,
三:非主键外的所有字段必须互不依赖。–数据只在一个地方存储,不重复出现在多张表中,消除传递依赖
删除:drop,truncate,delete
drop table student;
truncate table student;
delete from yanxy_1 where seq_id=20181298969; --可以回滚
创建索引,提升搜索速度,(增删改多的,表少不建议做索引)
create index 索引名 on 表名(所需要索引的列)
提高了查询速度,将数据从无序变化为有序,(B+树)降低了数据的增删改速度,B+树是一颗平衡树,增删改会破坏原有结构,为了维持平衡树,需要增加额外的工作。
索引分类:唯一索引:不允许两行具有相同的索引。
主键索引:为表创建主键会自动创建主键索引,是唯一索引的特殊类型。
聚集索引:表中各行的物理数据与索引顺序相同,每个表只能有一个。
非聚集索引;指定表的逻辑顺序,数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储的指针。
存储引擎:
innoDB:修改数据要求高。(提供了对于数据库事务的支持,提供了行级锁和外键的约束,处理大容量的数据库系统)–存储数据为实际数据(聚集索引)
MyIASM:不支持事务,不支持行级锁和外键。只用于查询,临时表。–索引和实际数据分开。(非聚集索引)
数据库优化思路
1.选择最有效率的表名顺序,(数据库按照从右往左处理form子句的表名,所以把查数据最多的表放最后)
2.选择最优效率的条件顺序(数据库按照从右往左处理form子句的表名,所以把筛除数据最多的条件放在最后面)
3.少使用*
4.多使用内部函数
5.使用表别名
6.善于用索引
7.避免在索引列上使用not --遇到not,全表扫描
8.数据库结构优化,拆分表,范式优化,反范式优化(为了减少联结,适当增加表冗余)
存储过程
rowid --物理地址?可以去PL/SQL里修改数据
数据库水平切分和垂直切分
数据库分表和数据据属性扩展表。