数据库索引,优化

三范式


一:属性不可再分;学生表中有姓名,性别,年龄等
二:字段必须完全依赖于全部主键而非部分主键. 学生表中有姓名,性别,年龄等,学号唯一确定,
三:非主键外的所有字段必须互不依赖。–数据只在一个地方存储,不重复出现在多张表中,消除传递依赖
删除: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里修改数据

数据库水平切分和垂直切分
数据库分表和数据据属性扩展表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值