相关疑难解决方法(0)

在固定大小的字段上使用 CHAR 与 VARCHAR 对性能有何影响?

我有一个存储 MD5 哈希的索引列。因此,该列将始终存储 32 个字符的值。无论出于何种原因,它都是作为 varchar 而不是 char 创建的。迁移数据库以将其转换为字符是否值得?这是在带有 InnoDB 的 MySQL 5.0 中。

mysql innodb performance varchar

66
推荐指数
3
解决办法
8万
查看次数

MySQL VARCHAR 大小的性能影响

在 MySQL 中 varchar 大小之间是否存在性能差异?例如,varchar(25)varchar(64000)。如果没有,是否有理由不声明所有具有最大大小的 varchars 以确保您不会用完空间?

mysql performance datatypes varchar

55
推荐指数
6
解决办法
3万
查看次数

MySql 中 VARCHAR 字段的可能索引

我在MySql 数据库中工作,有一个这样的表:

+--------------+
|  table_name  |
+--------------+
|    myField   |
+--------------+
Run Code Online (Sandbox Code Playgroud)

...我需要进行很多这样的查询(列表中有 5-10 个字符串)

SELECT myField FROM table_name
WHERE myField IN ('something', 'other stuff', 'some other a bit longer'...)
Run Code Online (Sandbox Code Playgroud)

将有大约 24.000.000 个唯一行

1)我应该使用FULLTEXTor 和INDEXkeyVARCHAR(150)吗?
2)如果我将字符从 150 增加到 220 或 250 ......会产生很大的不同吗?(有没有办法计算它?)
3)正如我所说,它们将是唯一的,所以myField应该是一个PRIMARY KEY。向已经是 VARCHAR INDEX/FULLTEXT 的字段添加 PRIMARY KEY 是不是很少见?

mysql index full-text-search varchar

51
推荐指数
2
解决办法
7万
查看次数

针对这些项目需求,选择 MyISAM 而不是 InnoDB;和长期选择

很抱歉这篇很长的帖子,但我必须提供尽可能多的信息,以使这个非常模糊的问题更加具体。

我的项目的目标是让用户搜索各种产品的(巨大)数据库。

  • 每个产品都存在于一个类别下。
  • 每个产品将有 10 到 100 个“规格”或“功能”,用户将通过这些“规格”或“功能”进行搜索。

最常见的用例是:

  1. 用户点击一个类别;然后根据需要单击各种子类别。
  2. 用户从 1 或 2 个条件开始并搜索产品。
  3. 然后,用户不断向搜索添加更多条件以缩小产品范围。

我有三个主要表“产品”、“功能枚举”和“功能”。让数据输入用户为产品即时创建新的“功能”非常重要 - 因此我使用 EAV(反)模式。

以下是表的结构:

'products'
    ID(PK), TITLE, CATEGORY
    (Indexed by CATEGORY)
'features_enum'
    ID(PK), TITLE
'features'
    P_ID, F_ID, VAL
    (Indexed by P_ID and then F_ID)
Run Code Online (Sandbox Code Playgroud)

我的主要搜索查询的示例格式:

SELECT
  p.ID,
  p.TITLE PROD_TITLE,
  fe.TITLE FEATURE_TITLE,
  f.VAL
FROM
  products p, features f, features_enum fe
WHERE
  p.CATEGORY = 57 AND
  p.ID = f.P_ID AND
  f.F_ID = fe.ID AND
  (
    (f.F_ID  = 1 AND f.VAL = 'Val1') AND
    (f.F_ID  = …
Run Code Online (Sandbox Code Playgroud)

mysql innodb myisam database-design

6
推荐指数
1
解决办法
1681
查看次数