向一个有索引(5个索引)的数据表插入数据,一次插入一条,经常有新数据插入请问需要先禁用索引( ALTER TABLE 表名 DISABLE KEYS ),后插入数据,再开启索引( ALTER TABLE 表名 ENABLE KEYS )吗谢谢

解决方案 »

  1.   

    一般不需要,除非数据量很大,你可以先关闭索引,然后等所有数据UPLOAD完成再开启索引,让MYSQL重构所有索引。
      

  2.   

    实际上,任何系统都是分层次的,即如果你是程序员,你就做程序员的事,你只需要使用查询、插入更新的SQL语句就可以了,实际上索引的事是数据库自己的事情。有研究认为,数据库的索引不应该摆在程序员的面前,而应该由数据库自己去处理,把索引摆在程序员面前去解决,实际上是越界了。
    但现在大多数数据库,仍然把索引的事交给程序员去做。这样在某些时候会提高效率,因为程序员了解数据特征,知道哪些数据经常变化和查询。但这样看起来很合理的事情在交流成本、使用风险上都存在很大问题。
    好的数据库系统会自行建立和维护数据库索引,能自动分析哪些该建立索引,哪些不该建立,数据表如何分区,怎样分区,这些都应该由数据库自己去处理。
    专业化的处理和专业化的分工,高内聚低耦合一直是完美系统的典范。