Mysql数据库的优化方法

数据库的优化方案(这是自己整理的,如有错误请大家指出,谢谢!)

1.大量数据的插入

   可以从一下几方面改善效率:

         1.针对表结构进行改善

            如果是经常插入,创建的表应该采用Innodb引擎,相反,查询居多的话,应该选择Myisam引擎,但是 这里请注意Myisam引擎是无法开启事务的。(他俩区别很多,这里只谈关于插入和查询区别,其他的可以去查)。实际情况,还是采用Innodb的居多。

         2.针对自己写的插入sql语句进行改善,具体效果如下图

           假设有个user表,里面有id,name, age,score这四种属性,其中id自动增长,现在对表插入大量的user信息。

          其中一种方法实现方式是这种

              insert into user(name,age,score) values('wanghan1', 23, 80);

              insert into user(name,age,score) values('wanghan2', 24, 90); //依此执行两条sql语句

         另外一种方式采用如下

            insert into user(name,age,score)  values('wanghan1', 23, 80),('wanghan2', 24, 90);

//这样执行,两种结果是一样,但是运行的时间下面一种插入方式比上面方式快不少。下面是针对插入个数不同,执行时间的收集。

Mysql数据库的优化方法自己可以明显感觉到

          3.使用事务,提高插入效率

               提高效率的原因很简单,因为对Mysql进行插入的时候,mysql内部会建立一个事务,只有处于事务内才能进行真正的插入操作。通过使用事务减少了每次创建事务的消耗,实际上所有没有开启事务的插入都是在执行后才进行commit操作。下面是事务开启和不开启的执行时间图

Mysql数据库的优化方法 

           4.关于第四点优化,对插入的数据的主键数据进行排序然后进行插入(其实具体看项目实际情况,这里还是记录一下,以免后来用),话不多说 实际执行效果如下图

Mysql数据库的优化方法这里很明显看到时间相差无几,后面会有说明

其实对于第二,三,四的优化当时有综合性能测试,效果如下图

Mysql数据库的优化方法可以看出排不排序的区别

 

2.大量数据的查询

  1.最简单的一种方法就是建立索引,如忘记了sql语句的,在这提一下create index user_index on user(name,score)

这条语句指的是帮user表里的name和score属性建立索引,也可用 alter table user add index name_index(name) 其实索引有三种,主键索引,唯一索引,普通索引,一个表里面只能有一个主键索引,最好之多6个索引

   2.优化查询性能

         具体方法可以用EXPLAIN 后面接你的select语句,来分析索引的添加,具体的可以查EXPLAIN语句,这里就略过

   3.从侧面上提高效率,调整内部变量

    改变索引缓冲区(key_buffer)  改变表长(read_buffer_size) 设定打开表的数目的最大值(table_cache) 

   上面只提三个,大部分都是提高缓存的大小来控制效率

暂时只写到这三种,以后在遇到别的,在补上Mysql数据库的优化方法

 

 

 

 

  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值