Mysql 同一个表中的并发SQL插入是否在事务上安全?

Mysql 同一个表中的并发SQL插入是否在事务上安全?,mysql,database,concurrency,Mysql,Database,Concurrency,我在MySql中有一个简单的表,其存在的理由是存储日志。 该表具有自增序列,所有其他列对其他表的引用完整性为零。任何列上都没有唯一的键或索引。具有autoincrement的列是主键 并发插入是否会相互干扰?我将干扰定义为丢失数据 我正在为此插入使用autocommit=true。是。对于InnoDB,更多信息是。对于InnoDB,更多信息参见MySQL手册: 从MySQL手册中获取: 您永远不会因为同时插入而丢失数据。如果使用事务,可能会“丢失”一些ID,但没有实际数据。(假设您启动一个事务,

我在MySql中有一个简单的表,其存在的理由是存储日志。 该表具有自增序列,所有其他列对其他表的引用完整性为零。任何列上都没有唯一的键或索引。具有autoincrement的列是主键

并发插入是否会相互干扰?我将干扰定义为丢失数据


我正在为此插入使用autocommit=true。

是。对于InnoDB,更多信息

是。对于InnoDB,更多信息参见MySQL手册:


从MySQL手册中获取:


您永远不会因为同时插入而丢失数据。如果使用事务,可能会“丢失”一些ID,但没有实际数据。(假设您启动一个事务,插入几行,然后执行回滚。InnoDB将分配自动增量ID,但由于您执行了回滚,因此没有具有这些ID的行)


因为您不需要索引,所以应该看看归档表引擎。它的速度惊人地快——而且您的表变得更小,这反过来使您以后读取表时的表扫描速度更快。

您永远不会因为同时进行插入而丢失数据。如果使用事务,可能会“丢失”一些ID,但没有实际数据。(假设您启动一个事务,插入几行,然后执行回滚。InnoDB将分配自动增量ID,但由于您执行了回滚,因此没有具有这些ID的行)


因为您不需要索引,所以应该看看归档表引擎。它的速度惊人地快--而且你的表变得更小,这反过来使你以后阅读表时的表扫描速度更快。

你将使用哪个存储引擎?我想如果它适用于MyISAM,它应该适用于Innodb:)你将使用哪个存储引擎?我想如果它适用于MyISAM,它应该对Innodb起作用:)+1在我们两人之间,我想问题已经解决了:)+1在我们两人之间,我想问题已经解决了:)我体验到存档表引擎比其他引擎慢得多,尤其是在筛选值时,因为引擎中不支持索引……Cassy-是的,的确如此。如果可以有效地使用索引,那么具有索引的表类型将更快。但通常你不能;归档表上的完整扫描速度尽可能快。然后,您可以“按需”将相关数据扫描到一个汇总表(带索引)中并查询该汇总表。我体验到存档表引擎比其他引擎慢得多,尤其是在筛选值时,因为引擎中不支持索引…Cassy-是的,的确如此。如果可以有效地使用索引,那么具有索引的表类型将更快。但通常你不能;归档表上的完整扫描速度尽可能快。然后,“按需”表将相关数据扫描到一个汇总表(带索引)中,并查询该汇总表。
"MyISAM supports concurrent inserts..."