gpt4 book ai didi

mysql - 如何访问/查询mysql中的数据库分区?

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:33 24 4
gpt4 key购买 nike

在 mysql 中对数据库表进行分区后,如何访问/查询各个分区?

编辑

回应@Crack 的评论。

所以当表中有分区时,我仍然会使用普通查询。在查询的数据库端,“修剪”从哪里来?它是否是一个复杂的存储 Where 子句,然后应用于每个查询?如果分区不是单独访问的,为什么要命名?

最佳答案

好的,让我们一次只看这一部分。

So when a partition is in place in a table, then I still would use a normal query.

是的。分区对您来说是透明的,它意味着通过划分物理来优化(如果使用得当)查询性能。将数据和索引存储到单独的“容器”中。

Where does the "pruning" come in, at the database side of the query? Is it pretty much a complex stored Where clause that is applied to every query then?

是也不是。根据分区模式,MySQL 将您的数据放入不相交的“容器”中。稍后它会读取您的查询的 WHERE 子句,并知道它必须检查哪些分区才能回答它。 MySQL 文档中有几个很好的示例:Partition Pruning .

它允许您将每个分区存储在不同的物理存储设备上,并且 MySQL 可以并行运行某些操作或根本不扫描某些分区(请参阅上面链接中的示例)。

Why are the partitions named if they are not individually accessed?

它们是单独访问的,但您不做这个决定 - 优化器做。分区名称使您更容易管理它们。您可以在文档 ( Partition Management ) 中找到可能的操作。

从 MySQL 5.6.2 开始,您可以从各个分区中选择数据,请参阅 Partition Selection .只是一个建议 - 如果不需要,请不要使用此语法,因为使用它会使您的查询绑定(bind)到数据的存储结构(并且不要在生产中使用不稳定版本的 MySQL ;)。

关于mysql - 如何访问/查询mysql中的数据库分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10035516/

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