数据库

 首页 > 数据库 > MySql > 优化MySQL插入方法的五个妙招

优化MySQL插入方法的五个妙招

分享到:
【字体:
导读:
         摘要:优化MySQL插入方法的五个妙招,阅读优化MySQL插入方法的五个妙招,以下是涉及到插入表格的查询的5种改进方法: 1)使用LOAD DATA INFILE从文本下载数据这将比使用插入语句快20倍。 2)使用带有多个VALUES列表的INSERT语句一次插入几行这将比使用一个单行插入语句">

优化MySQL插入方法的五个妙招

  以下是涉及到插入表格的查询的5种改进方法:

  1)使用LOAD DATA INFILE从文本下载数据这将比使用插入语句快20倍。

  2)使用带有多个VALUES列表的INSERT语句一次插入几行这将比使用一个单行插入语句快几倍。调整bulk_insert_buffer_size变量也能提高(向包含行的表格中)插入的速度。

  3)可以对myisam表并行插入Concurrent_insert系统变量可以被设置用于修改concurrent-insert处理。该变量默认设置为1。如果concurrent_insert被设置为0,并行插入就被禁用。如果该变量被设置为2,在表的末端可以并行插入,即便该表的某些行已经被删除。

  4)使用插入延迟

  如果你的客户不能或无需等待插入完成的时候,这招很有用。当你使用MySQL存储,并定期运行需要很长时间才能完成的SELECT和UPDATE语句的时候,你会发现这种情况很常见。当客户使用插入延迟,服务器立刻返回,如果表没有被其他线程调用,则行会列队等待被插入。使用插入延迟的另一个好处就是从多个客户插入的情况会被绑定并记录在同一个block中。这将比处理多个独立的插入要快得多。

  5)插入之前将表锁定(只针对非事务处理型的表)

  这将提高数据库性能,因为索引缓冲区只是在所有的插入语句完成后才对磁盘进行一次刷新。通常情况下,有多少个插入语句就会有多少次索引缓冲区刷新。如果你可以用一个插入语句实现所有行的插入,则无需使用显式锁定语句。

  要想更快地对事务型表插入,你应该使用START TRANSACTION和COMMIT语句,而不是LOCK TABLES语句。

优化MySQL插入方法的五个妙招
分享到:
解决MySQL数据库拒绝服务的小方法
解决MySQL数据库拒绝服务的小方法    下文中将具体讲述处理的方法:    1.使用Mysql 4.0或4.1版本,如果没有用到Mysql 5的一些新特性比如存储过程触发器之类。    2.定时重启Mysql服务器或Ser(由于本问题可能同样会影响到其它一些需要Mysql支持的服务器程序,所以重启Mysql服务器为好,但需要检测Mysql服务器不被...
MySQL存储过程例子,包含事务,参数,嵌...
MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等view plaincopy to clipboardprint?drop procedure if exists pro_rep_shadow_rs;   delimiter |   ----------------------------------   -- rep_shadow_rs   -- 用来处理信息的增加,更新和删除   -- 每次只更新上次以来没有做过的数据   -- 根据...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……