1、索引的优化(索引的创建:oracle中为create index 索引名 on 表名(列名); )
当我们数据库的数据过多,查询速度跟不上时,我们可以通过创建索引的方式,加快速度,
我自己进行过一个测试,我当时用了300万条数据,字段大概8个 ,不加索引时查询一条数据用了8.626秒,加完索引以后用了0.004,快了两千多倍,其中加索引的速度用了2分40秒,索引占了200多兆的空间,由此可以看出,加索引的好处,当然,索引不能烂加,因为在做修改时,在速率上会慢,因为他要先解开索引,在修改,在加上索引,比较麻烦,索引我们只需在常查询的字段上加索引就能达到优化的效果了。
至于常听人说的查询int类型比string类型快,以及查询字符串长的比短的慢,这些都是不可取的,我知道并测试通过的只是查询字段的多少会影响到查询效率,跟字段类型无关。
2、sql语句的优化
当我们数据库的数据过多,查询速度跟不上时,我们可以通过创建索引的方式,加快速度,
我自己进行过一个测试,我当时用了300万条数据,字段大概8个 ,不加索引时查询一条数据用了8.626秒,加完索引以后用了0.004,快了两千多倍,其中加索引的速度用了2分40秒,索引占了200多兆的空间,由此可以看出,加索引的好处,当然,索引不能烂加,因为在做修改时,在速率上会慢,因为他要先解开索引,在修改,在加上索引,比较麻烦,索引我们只需在常查询的字段上加索引就能达到优化的效果了。
至于常听人说的查询int类型比string类型快,以及查询字符串长的比短的慢,这些都是不可取的,我知道并测试通过的只是查询字段的多少会影响到查询效率,跟字段类型无关。
2、sql语句的优化
- 当我们要查询的表过多时,sql语句会大大影响到我们的效率,那么这个时候我们可以通过oracle的with查询语句去优化我们的sql语句,当我们使用with查询多张表时,当sql语句第一次查到a表时,他会把a表放在with特有的高速缓冲区中,当后面的查询再用到这个表时,他会直接从这个里面将表取出来,达到你想要的效果,不需要在进行查询,从而大大加快了sql语句查询的效率。
- 能用>=或者<=的地方就尽量不要使用 ><,能带=的就尽量带上=号,效率高
- 分库:简单点就是说将一张数据库分成多张数据库,这样可以减轻数据库的压力。也可以加快我们对数据库的操作。
比如:
- 我们在做订单的模块的时候,我们会在每一年的结束的时候来进行分库,2015年的放在一个库中,2016年的放在一个库中。
- 当商品过多时,极差比较大的就可以放在两个库中,如汽车类和衣服类。
- 分表:分表分为纵向分和横向分,他也是为了方便我们对数据库的操作,就像京东商城(名字改成自己做的电商项目)的三级标签式导航栏一样,它是由一级大分类,二级分类,三级分类组成,这这三次分类中,每一级都有不同的许多项,我们可以把这个一二三级当成纵向的分表,而每一级的那么多项,就如横向的分表,这样分表的效果,不仅大大加快了效率,还可以方便我们管理。