如何快速删除mysql中的一部分记录,用delete from table where,发现效率比较低。如何快速更新mysql中的一部分记录,循环用update更新,效率较低。

解决方案 »

  1.   


    1:
    1:创建索引,使删除能够更快的找到要被删除的记录
    2:用分区表,删除记录相当迅速7.2.17. UPDATE语句的速度
    更新查询的优化同SELECT查询一样,需要额外的写开销。写速度依赖于更新的数据大小和更新的索引的数量。没有更改的索引不被更新。使更改更快的另一个方法是推迟更改然后在一行内进行多次更新。如果锁定表,同时做多个更新比一次做一个快得多。请注意对使用动态记录格式的MyISAM表,更新一个较长总长的记录可能会切分记录。如果经常这样该,偶尔使用OPTIMIZE TABLE很重要。参见13.5.2.5节,“OPTIMIZE TABLE语法”。7.2.18. DELETE语句的速度
    删除一个记录的时间与索引数量确切成正比。为了更快速地删除记录,可以增加键高速缓冲的大小。参见7.5.2节,“调节服务器参数”。如果想要删除一个表的所有行,使用TRUNCATE TABLE tbl_name 而不要用DELETE FROM tbl_name。参见13.2.9节,“TRUNCATE语法”。