gpt4 book ai didi

mysql - MySQL InnoDB 中 varchar 列的最佳键长度

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

我有下表:

CREATE TABLE cities (
city_id INT,
city_name VARCHAR(255),
-- some other columns
PRIMARY KEY (city_id)
) ENGINE=InnoDB

我想为 city_name 添加索引,以便我可以使用 LIKE 运算符对其进行搜索。如何确定最佳 key 长度?

编辑:该表将填充美国城市,并且使用情况是只读的。

最佳答案

您希望 key 长度刚好足够宽,这样大多数情况下都是唯一的,不会更宽。如果您有现有数据,请查看键必须有多少个字符宽,以便几乎所有城市都可以表示为所选宽度的不同字符串。如果您没有现有数据,请在谷歌上搜索您感兴趣的地理区域(例如美国、全世界)的城市列表,并将其用作您的指南。

例如,如果您的键宽只有 5 个字符宽,则城市如

Saint Louis
Saint Petersberg

都将在 key 中表示为“Saint”,导致 key 成为不完美的鉴别器。

如果那是要考虑的整组城市,则键长度为 7 将是理想的。你的 key 将是

Saint L
Saint P

这是涵盖该内容的 MySQL 手册页:

http://dev.mysql.com/doc/refman/5.6/en/create-index.html

查找文本 CREATE INDEX part_of_name ON customer (name(10));

对于城市列表,如果您只想考虑人口最多的城市:

http://en.wikipedia.org/wiki/List_of_United_States_cities_by_population

完整列表:

http://geonames.usgs.gov/domestic/download_data.htm

(局部地名词典,人口稠密的地方)

关于mysql - MySQL InnoDB 中 varchar 列的最佳键长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6741037/

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