gpt4 book ai didi

php - Laravel 快速整数查找?

转载 作者:行者123 更新时间:2023-12-02 07:48:43 27 4
gpt4 key购买 nike

我们有一个包含数百万行的表。最近我们引入了一个整数作为辅助键,它只是一个唯一的整数列 new_identifier = 1100327,尚未定义为辅助主键。

此查找查询在 Tinker 中大约需要 6 秒。 $this->id_lookup 也是一个整数。最多 50 秒!

DB::table('my_big_table')->where('new_identifier', $this->id_lookup)->get();

我们如何才能实现与 DB::table('my_big_table')->find($this->id_lookup); 相同的几乎即时的性能?

我们可以引入第二个主键,例如 $table->key(['id', 'new_identifier']); 吗?

这会如何影响在其他地方执行的其他查找,例如 MyBigTable::find($id);

更新 - 将列从 int 更改为索引将查找时间从 50 秒减少到 <0.01 秒

最佳答案

您可以创建索引,在迁移中执行以下操作。

Schema::table('my_big_table', function (Blueprint $table) {
$table->index('new_identifier');
});

索引可以帮助你,但是主键索引很特殊,它们是聚集的。这意味着它包含以下键上的所有数据。当二级索引非聚集时,仅包含索引列和主键列。它仍然会提高性能,但是您需要在这个领域进行大量研究,了解不同索引对查询的影响,而且这并不是黑白分明的。

关于php - Laravel 快速整数查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59049915/

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