gpt4 book ai didi

MySQL限制索引

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

我有一张 table :tbl_table

包含列:col1 , col2 , col3

我想运行一个查询,例如 SELECT col1 FROM tbl_table WHERE col2=$variable AND col3=0

为了优化此查询,我需要 (col2,col3) 上的多列索引但因为我永远不会运行查找 col3 的查询与 0 以外的任何内容一样索引所有 col3 的效率很低。的可能性。我希望能够创建一个多列索引,仅索引是否 col3为零或不为零,不是索引整个 col3 的索引.

这是针对我必须这样做的现实情况。我有数十亿条记录,索引太大,无法容纳在驱动器上,我需要修剪它们。

最佳答案

在存储稀缺的环境中运行 MySQL(或任何 rdms)非常困难,尤其是在 2014 年存储很便宜的情况下。

MariaDB 提供了持久虚拟列的概念。 https://mariadb.com/kb/en/virtual-columns/ 。这些可以被索引和加载。它们确实占用存储空间。

您可以尝试使用由涉及如下内容的函数组成的函数:

Concat(if(col3=0,'z','n'),col2)

但是,如果您的存储空间非常有限,无法添加索引,那么您可能也无法添加带有索引的持久虚拟列。

如果您的任何表是只读的,您可以尝试压缩它们以释放存储空间。

https://dev.mysql.com/doc/refman/5.5/en/compressed-format.html

关于MySQL限制索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938043/

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