数据库

1.建立索引的目的是加快对表中记录的查找或排序。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。所以适用于查询多,插入修改少的操作

2.建立索引适用的列:

1)在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度

2)在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;

3)在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

3.不该建立索引的列:

1) 对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。

2)对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少,不利于使用索引。

3) 当修改性能远远大于检索性能时,不应该创建索引。

4.数据库优化

1)横向切表,适用于各数据之间独立(用户信息表),且集合统计操作不多

5.高效SQL

1) 减少数据库访问次数

2) 用Exist代替in

3)用union all代替union,因为union除了union all以外还要排序

4)当要在索引列上用or时,一般替换成Union,因为此时索引失效,全表扫描

5)避免在索引列上使用函数导致索引失效

6)虽然数据库可以自动转化,但不要比较不匹配类型

WHERE  business_date = 20090201;

WHERE  business_date = '20090201' 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值