gpt4 book ai didi

MySql - innodb - 复合键上的行级锁定如何用简单的话工作

转载 作者:行者123 更新时间:2023-11-29 17:41:59 25 4
gpt4 key购买 nike

各位,我阅读了 MySQL 5.5 的引用手册,但是理解行级锁定非常困难。我正在使用 MySQL innoDB,想要了解具有复合主键的表上的行级锁定。两个键都是与父表一对一的标识键。

这是表格示例 enter image description here

我想在上表上运行Haversine公式(我知道查询和公式),这样在where子句中我必须提供trip_route_id。这样半正矢公式查询就可以在特定的 trip_route_id 上运行。

另一方面,一些线程/ session 正在插入到该表中,而另一些则正在搜索。我在两个 PK 列上都有一个默认的 PRIMARY 索引。

现在的问题是:我的整个表会被锁定还是仅锁定 trid_route_id = someProvidedId 的行?

编辑: PK 列的索引。 enter image description here

如果需要其他解释,请告诉我?

谢谢。

最佳答案

行级锁定不是问题。

您正在使用纬度和经度搜索“附近”的事物?

好吧,无需任何额外的努力,这将需要表扫描,随着表的增长,扫描速度会越来越慢。

WHERE 子句添加“边界框”。如果这还不够加快速度,请返回查询和表大小。使用边界框的示例:

WHERE lat BETWEEN 45.45 - 0.77 AND 45.45 + 0.77
AND lng BETWEEN 99.11 - 1.11 AND 99.11 + 1.11

将过滤到 (45.45, 99.11) 约 50 英里范围内的项目。 “盒子”大约是一个正方形。添加距离检查可以让您进入“xx 英里/公里的半径内”。

关于MySql - innodb - 复合键上的行级锁定如何用简单的话工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49956092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com