我在对数据库进行单一的操作,如insert和update的时候,没执行一条大约需要0.03s,有没有什么办法能够提高执行效率呢?
我在使用C++操作数据库的时候大约可以进行40条/秒 的insert操作(无任何条件判断),能不能提高一点呢?

解决方案 »

  1.   

    insert 一般来说和你的一次性 insert 的数据有关,比较你有1000个字段肯定会比仅有10字段的速度慢。 另外就是你的索引,索引越多,速度也会越慢。
    update 则和你的 where 后的条件有关。仅从你的这种说法上很难判断你的情况是什么原因。建议给出你语句,和建表语句,还有当前表中有多少记录?有多少相关的索引?
      

  2.   

    1、减少不必要的索引(考虑你是为了查询某些语句的速度为主要呢?还是插入数据更优先呢?从中找个平衡点吧)
    2、想办法批量插入。3、如果是批量插入时,为了提高更快的速度,可以先disable keys,插入完后再enable keys,这样也有速度上提高。
      

  3.   

    我这边没有那么复杂的东西在里面,我们不是做数据库方面的,只需要能够对数据库进行存储查询等一般简单的功能就可以了,而且我现在用的时候只是对一个单一的表格进行操作,没有与其他表格关联。时间就要0.03秒,我在用C++编写一个多线程来进行操作的时候平均每秒钟可以向数据库中插入42条记录。应该效率不会在C++这边浪费,效率应该浪费在MySql这边,如何提高呢?
      

  4.   

    提供一下你的表结构,表的索引信息,你的 insert 的方式。否则没办法帮你分析。 
      

  5.   

    我在使用C++操作数据库的时候大约可以进行40条/秒 的insert操作
    ----------------
    我以前也碰到过类似你这样的环境, 那时我们的6000条/秒,速度瓶颈很明显在插入的IO里,所以,硬盘IO很重要、减少索引、批量插入都会收到很好的效果。