在第177页的书中,有一个关于“当主键顺序更差时”的提示
对于高并发性工作负载,按主键顺序插入实际上可以在innodb中创建争用点。主键的上端是一个热点。因为所有插入都发生在那里,所以并发插入可能会争夺下一个密钥锁。另一个热点是自动增量锁定机制;如果遇到问题,可以重新设计表或应用程序,或者配置innodb\u autoinc\u lock\u模式。如果您的服务器版本不支持innodb\u auto inc\u lock\u模式,您可以升级到innodb的较新版本,该版本对于这个特定的工作负载性能更好。
如何理解主键上端的概念?
1条答案
按热度按时间jgzswidk1#
这本书的意思是“表中使用的主键的当前最大值”。
意思是如果你一直按主键升序插入,那么你可能会影响性能,因为(在自动递增的情况下)“这个主键的下一个值”是必须自动生成和使用的,因为(在其他情况下)有一些实现因素会使它慢一点。
如果我有一个表,其中包含主键值为
1, 2, 3, 4
,则在“上端”插入意味着插入主键值大于4
. 显然在这个例子中,你没有太多的选择!