我有一个大的MySQL表格(约1000万行,6.5G),我用它来读写。它是MyISAM格式的,由于MyISAM在写入时锁定整个表格,所以我经常遇到锁问题。
我决定尝试使用InnoDB,因为它适合读写表格,并且只在写入时锁定特定的行。
转换后,我测试了插入语句,结果发现在InnoDB表格中需要花费大约15倍的时间(从0.1秒到1.5秒),而在MyISAM表格中只需要很短的时间。这是为什么呢?
我还没有为InnoDB做任何配置,计划添加分区,但是这个数字对我来说仍然出乎意料。当然,表格是相同的,索引也一样。
根据请求提供的其他信息:
2个索引。主要索引是类型为Big INT的data_id,非唯一的user_id是varchar(255)类型。
插入是一起的约150行,具有相同的user_id。
索引大小:MyISAM中为200MB,在InnoDB中为400MB。
我决定尝试使用InnoDB,因为它适合读写表格,并且只在写入时锁定特定的行。
转换后,我测试了插入语句,结果发现在InnoDB表格中需要花费大约15倍的时间(从0.1秒到1.5秒),而在MyISAM表格中只需要很短的时间。这是为什么呢?
我还没有为InnoDB做任何配置,计划添加分区,但是这个数字对我来说仍然出乎意料。当然,表格是相同的,索引也一样。
根据请求提供的其他信息:
2个索引。主要索引是类型为Big INT的data_id,非唯一的user_id是varchar(255)类型。
插入是一起的约150行,具有相同的user_id。
索引大小:MyISAM中为200MB,在InnoDB中为400MB。