如何提高mysql数据库插入的性能


how to increase performance of mysql database insertion

从事与web抓取相关的PHP项目,我的目标是将数据存储到mysql数据库中,我在9列表中的3个索引上使用唯一键索引,记录超过5k。

  1. 我应该在程序级别检查唯一的数据吗?比如在数组中放入值,然后在插入数据库之前进行比较
  2. 有没有什么方法可以加快数据库的插入速度

永远不要创建重复的表这是一种反SQL模式,它使处理数据变得更加困难。

也许PDO和准备好的声明会给你一点鼓舞,但不要指望它会带来奇迹。

多重插入IGNORE也可能给你一点帮助,但不要指望它会带来奇迹。

您应该生成一个类似的多插入查询

INSERT INTO database.table(列)VALUES(值),(值)请记住,要保持在mysql的最大数据包大小以下。这样索引文件就必须更新一次。

您可以创建当前表的副本,但在任何字段上都没有索引。将数据存储在此表中。

然后使用事件将数据从临时表移动到主表中。一旦数据被移动到主表,然后从临时表中删除if。

您可以使用triger跟踪更新。您应该更新表,并且必须右键触发该表。

使用PDO,mysqli_*函数来增加对数据库的插入

您可以在查询中使用"INSERT IGNORE"。这样,如果违反任何唯一约束,就不会插入记录。

示例:

INSERT IGNORE INTO table_name SET name = 'foo', value = 'bar', id = 12345;