表中有31个字段。 
其中设置了number,stat位索引 
ALTER TABLE SALES DROP INDEX indes1, ADD INDEX (number,stat) 
还有其他的 ALTER TABLE SALES DROP INDEX indes1, ADD INDEX (uid1,uid2...) 
一共有19个设置成索引(这些索引内容都是数字的) 第一次、一次写入1000数据的时候需要10秒左右 
第二次、一次写入1000数据差不多20秒多。 
连续...可以说是数据在表中也多写入的时间更久了。 大家帮忙看看。是否我设置索引有误,哪方面需要进行优化的。

解决方案 »

  1.   

    show create table SALES ;
    show index from SALES ;看一下。
    innodb的写入会比较慢,因为会需要扩展磁盘文件。如果是这个原因,则一次性把ibdata设置得大一些,从而形成连续的磁盘簇,以避免磁盘碎片。过多的索引,会导致记录插入时索引维护的开销增加,有时删除索引,批量插入记录后再重建索引速度会更快。 等等可能影响插入记录效率的方面很多。
      

  2.   

    show create table SALES ; 
    show index from SALES ; 
    是在服务器上面运行吗?
    还是在程序中。
    ibdata是怎么设置大些我的服务器是FreeBSD的。是不是在/etc/my.cnf中设置
      

  3.   


    用msyql.exe 客户端连上你的MYSQL数据库,然后执行。是的。
      

  4.   

    show create table SALES ; 
    show index from SALES ; 设置这两个。是什么作用呢?/etc/my.cnf中设置
    是设置什么参数呢。
      

  5.   


    这个不是设置,是需要你提供你表的信息,否则别人怎么去猜你的速度慢到底是什么原因呢?医生看个病也就要想办法得到些信息吧。
    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  6.   

    不过我检测服务器。wcpu达到80%左右我设置复合索引之后就降到5%了。让我很惊讶