面经——数据库

sql优化

选取最合适的字段属性(字段长度不宜过长,能用数值型就用数值型(比文本型快))

使用连接来代替子查询

使用union来代替创建的临时表

使用事务(从安全的角度考虑,定义事务 begin  commit)

使用锁(从一致性的角度考虑)

使用外键(保障一致性,数据之间的关联关系 foreignkey( *) reference  talble(*))

使用索引,在经常需要查询的字段上建立索引,例如jion where用到的字段

查询语句的优化,先选择再连接,尽量避免使索引失效(or,like)

索引为什么能够提高效率

索引的数据结构,索引是树,复杂度是logm,n(m阶树)

索引不存放实际数据,一次I/O可以读取更多的数据,方便快速确定数据真实的位置

数据库三范式

第一范式:属性不可拆分

第二范式:非主属性完全依赖于码

第三范式:非主属性既不完全依赖于码,也不传递依赖于码

数据库索引的执行流程

索引中存放索引和rowid,索引扫描分两步,首先扫描索引得到rowid,然后根据rowid去读取对应的行的数据(如果得到的行数太多则不使用索引扫描,因为每次索引扫描其实分两次I/O,如果行数过多索引效率很低)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值