gpt4 book ai didi

mysql - 按位存储我的数据会使搜索结果更快

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

我的 tinyint 字段有 6 个可能的选项,对于每次搜索,用户选择可接受的选项。目前我将每个选项简单地存储为 0 到 6 的值,并在 WHERE 中为每个可接受的选项执行一个单独的子句。示例(用户选择选项 0、3 和 4):

SELECT * FROM table WHERE type = 0 OR type = 3 OR type = 4

我想知道如果将数据存储为 1、2、4、8、16 和 32 是否会更快,我进行了按位搜索。

SELECT * FROM table WHERE type & 25

我相信第一种方案正常情况下是可以索引的,然后速度会更快,但是这个表实际上是43个字段,其中33个是可搜索的,包括各种操作。 (到查询完成时,查询通常有很多 AND。)我不仅需要为很多字段建立索引,而且这不会抵消索引的优势吗?

最佳答案

一个好的优化器应该为这两个选项产生大致相同的速度。我会选择更符合逻辑的解决方案:如果您的程序使用类型 0 到 6,那么将数字 0 到 6 存储在数据库中会更好。

您也可以使用 IN 运算符使您的查询更具可读性:

SELECT * FROM table WHERE type IN (0, 3, 4)

关于mysql - 按位存储我的数据会使搜索结果更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27219539/

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