You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

mysql汉字加索引

MySQL 是目前最常用的关系型数据库管理系统之一,它可以用来处理各种数据类型,包括文字、数字、日期和时间等。在 MySQL 中,索引是优化查询效率的重要手段,而对于包含大量中文字符的表,如何正确地应用索引就成了一个比较棘手的问题。

一般来说,MySQL 支持的字符集包括 ASCII、Latin1、UTF-8 等,其中 UTF-8 是最常用的一种字符集,因为它不仅可以支持英文字符和数字,还可以支持包括中文在内的各种国际字符。然而,在使用 UTF-8 字符集时,如果直接对包含中文字符的列建立索引,会发现查询速度十分缓慢,甚至出现 MySQL 卡死的情况。

这是因为 MySQL 的索引会按照字符编码的顺序进行排序,而在 UTF-8 字符集中,中文字符是通过多个字节来编码的,包含了更复杂的排序规则。如果直接对中文字符列建立索引,就会导致索引结构不稳定,查询效率低下。

那么,应该如何对中文字符列建立索引呢?通常来说,需要使用 MySQL 中的 Full Text Indexing(全文索引)技术,它可以将中文字符根据拼音或者笔画进行分词,然后对每个分词建立一个独立的索引。比如以下代码所示:

CREATE TABLE `cus_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `address` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  FULLTEXT INDEX `index_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

以上代码是创建一个包含名称和地址两个字段的表 cus_info,并在名称字段上建立了全文索引 index_name。当进行查询时,MySQL 会将查询字符串进行分词,然后在索引中匹配每个分词,最后计算出匹配度,返回与查询字符串最相关的结果。

需要注意的是,全文索引只适用于 varchar 和 text 类型的字段,而且需要使用 InnoDB

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
基于云平台的即开即用、稳定可靠、灵活弹性、易于使用的关系型数据库服务

社区干货

MySQL学习记录(一天搞懂一个问题)

索引并不一定就是给主键或是唯一的字段。如果在你的表中,有某个字段你总要会经常用来做搜索,那么,请为其建立索引吧。 例如搜索字串 “last_name LIKE ‘a%’”,一个是建了索引,一个是没有索引,性能差了 4 倍左右。另外,你应该也需要知道什么样的搜索是不能使用正常的索引的。例如,当你需要在一篇大的文章中搜索一个词时,如: “WHERE post_content LIKE ‘%apple%’”,索引可能是没有意义的。你可能需要使用 MySQL 全文索引 ...

表设计之数据类型优化 | 社区征文

因为在的多个地方增加数据类型的范围是一个非常耗时和痛苦的操作。如果无法确定哪个数据类型是最好的,就选择你认为不会超过范围的最小类型。### 2.2 越简单越好简单数据类型的操作通常需要更少的 CPU 周期。例... 因为可为 NULL 的列使得索引索引统计和值比较都更复杂。可为 NULL 的列会使用更多的存储空间,在 MySQL 里也需要特殊处理。当可为 NULL 的列被索引时,每个索引记录需要一个额外的字节。通常把可为 NULL 的列改为...

硬核干货!一文掌握 binlog 、redo log、undo log|社区征文

binlog 记录了对 MySQL 数据库执行更改的所有的写操作,包括所有对数据库的数据、表结构、索引等等变更的操作。> 注意:这其中不包含 SELECT、SHOW 等,因为对数据没有修改只要是对数据库有变更的操作都会记录到 ... 增加吞吐量,这是使用 buffer pool 的根本原因。**Q2:同为操作数据变更的日志,有了 binlog 为什么还要 redo log?**我认为最核心的一点就是**两者记录的数据变更粒度是不一样**的。以修改数据为例,binlog 是以...

MySQL 统计信息相关参数解析

# 前言MySQL 中的优化器是基于成本的优化器(CBO),所谓基于成本,代表着运行目标 SQL 语句需要消耗的 CPU,扫描行数,IO 等,这些信息是基于统计信息来获得的。如果统计信息不准确,优化器很可能选择那些不够优化,甚至是... mysql.innodb_table_stats` 和`mysql.innodb_index_stats`### 持久化统计信息搜集规则1. `innodb_stats_auto_recalc` 参数开启的情况下(默认),当表中数据更改超过 10% 时会自动统计2. 当添加新的索引时自动更新...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

2核4G共享型云服务器

Intel CPU 性能可靠,不限流量,学习测试、小型网站、小程序开发推荐,性价比首选
86.00/1908.00/年
立即购买

mysql汉字加索引-优选内容

MySQL学习记录(一天搞懂一个问题)
索引并不一定就是给主键或是唯一的字段。如果在你的表中,有某个字段你总要会经常用来做搜索,那么,请为其建立索引吧。 例如搜索字串 “last_name LIKE ‘a%’”,一个是建了索引,一个是没有索引,性能差了 4 倍左右。另外,你应该也需要知道什么样的搜索是不能使用正常的索引的。例如,当你需要在一篇大的文章中搜索一个词时,如: “WHERE post_content LIKE ‘%apple%’”,索引可能是没有意义的。你可能需要使用 MySQL 全文索引 ...
使用 MySQL Console 客户端访问企业级 SQL 分析节点
企业级 SQL 分析节点启用后,您可以在本地 MySQL 客户端连接 SQL 分析节点(数据库服务),然后可以通过外表方式查询分析实例中的索引数据。 注意事项目前 ES 6.7.1 版本实例暂不支持企业级 SQL 分析节点。 准备工作在... http_ssl_enabled:是否启用了 SSL 协议密。说明 如果实例切换传输协议、重置外表用户密码,将会导致已经在 SQL 分析节点中创建的外表将无法继续使用,您需要重新创建外表才可以继续查询分析索引数据。 (可选)查...
表设计之数据类型优化 | 社区征文
因为在的多个地方增加数据类型的范围是一个非常耗时和痛苦的操作。如果无法确定哪个数据类型是最好的,就选择你认为不会超过范围的最小类型。### 2.2 越简单越好简单数据类型的操作通常需要更少的 CPU 周期。例... 因为可为 NULL 的列使得索引索引统计和值比较都更复杂。可为 NULL 的列会使用更多的存储空间,在 MySQL 里也需要特殊处理。当可为 NULL 的列被索引时,每个索引记录需要一个额外的字节。通常把可为 NULL 的列改为...
硬核干货!一文掌握 binlog 、redo log、undo log|社区征文
binlog 记录了对 MySQL 数据库执行更改的所有的写操作,包括所有对数据库的数据、表结构、索引等等变更的操作。> 注意:这其中不包含 SELECT、SHOW 等,因为对数据没有修改只要是对数据库有变更的操作都会记录到 ... 增加吞吐量,这是使用 buffer pool 的根本原因。**Q2:同为操作数据变更的日志,有了 binlog 为什么还要 redo log?**我认为最核心的一点就是**两者记录的数据变更粒度是不一样**的。以修改数据为例,binlog 是以...

mysql汉字加索引-相关内容

精选文章|MySQL深分页优化

**MySQL深分页优化**![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/1499ce77b4ea4b91b806bfab2774e01f~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=17150... 可以看到带主键排序使用了主键索引,且只读取了需要的前n条数据,所以快。**因此, 结论1:即使业务上看起来没有任何条件还不需要排序,也加上order by主键。**这里其实有另一个问题:如果不带排序条件,MyS...

如何避免MySQL全表的误删除/更新操作

# 问题描述如何避免在 UPDATE 或者 DELETE 的时候,忘记 WHERE 条件,导致对数据库的全表数据进行误操作。# 问题分析开启 MySQL 系统变量 sql_safe_updates ,可以捕获没有使用索引,没有使用 WHERE 语句,LIMIT 语句导致的大量的更新或者删除的的操作。# 场景模拟1. 开启会话级别的 sql_safe_updates```sqlMySQL [sbtest]> show variables like 'sql_safe_updates';+------------------+-------+| Variable_name | V...

RDS for MySQL 慢SQL问题分析

# 问题描述我的 RDS for MySQL 慢查询数很高,我该如何排查问题并解决?如下图:在 RDS MySQL 控制台上点击 "监控告警","引擎监控",再点击 "访问",查看 "慢查询数" 指标,会发现在一个时间段内出现尖刺![alt](ht... 表中没有索引,大量的全表扫描或者扫描行数太多。- 表中数据量发生变化,但是统计信息未及时更新。- 业务量持续增长,实例没有及时扩容导致达到性能瓶颈。- 批量的更新,插入,删除。除此之外,还有一些不是很常...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

2核4G共享型云服务器

Intel CPU 性能可靠,不限流量,学习测试、小型网站、小程序开发推荐,性价比首选
86.00/1908.00/年
立即购买

RDS for MySQL 慢SQL问题分析

# 问题描述我的 RDS for MySQL 慢查询数很高,我该如何排查问题并解决?如下图:在 RDS MySQL 控制台上点击 "监控告警","引擎监控",再点击 "访问",查看 "慢查询数" 指标,会发现在一个时间段内出现尖刺![图片](http... 表中没有索引,大量的全表扫描或者扫描行数太多。* 表中数据量发生变化,但是统计信息未及时更新。* 业务量持续增长,实例没有及时扩容导致达到性能瓶颈。* 批量的更新,插入,删除。除此之外,还有一些不是很常见的...

通过数据库交互台实现表的全生命周期

本文以云数据库 MySQL 版为例,介绍如何在数据库工作台 DBW 的数据交互台中通过执行命令实现表的全生命周期。 前提条件已注册火山引擎账号并完成实名认证。关于账号的创建方法和实名认证,请参见如何进行账号注册和实... 添加数据: 添加索引 sql ALTER TABLE `test`.`table` ADD INDEX `op_href_index` (`ophref`) USING BTREE; 添加外键 sql ALTER TABLE `test`.`table` ADD CONSTRAINT `op_code` FOREIGN KEY (`opcode`) REFERENC...

MySQL 内存相关参数说明

# 前言内存指标是 RDS for MySQL 最重要的指标之一,不合理的参数配置,待优化的 SQL 可能导致内存利用率持续升高,严重时会导致实例 OOM,进而导致主从切换。本文从参数的角度分析 MySQL 内存的组成部分。# sessio... **innodb_buffer_pool_size**:buffer pool 是 MySQL 中最终要的缓存。其中会存储数据页,undo 页,索引页 以及一些字典信息。对数据的读写操作,首先会对 buffer pool 进行相应的操作,然后才会与存储引擎层进行交互。...

RDS for MySQL handler 相关指标说明

# 前言在当前 RDS MySQL 控制台上,选择监控告警,引擎监控,handler,我们可以看如下指标:![alt](https://lf3-volc-editor.volccdn.com/obj/volcfe/sop-public/upload_5172abc4b131d5869ccb0a563fa9d00d.png)涉... 索引不正确或写入的查询没有利用索引。# 内部回滚数内部回滚数取自 Handler_rollback 指标,意味着innodb 存储引擎回滚的次数[2]。如下是一个简单的步骤,当我们调用rollback时,Handler_rollback 指标会增加。...

RDS for MySQL handler 相关指标说明

# 前言在当前 RDS MySQL 控制台上,选择监控告警,引擎监控,handler,我们可以看如下指标:![图片](https://lf3-volc-editor.volccdn.com/obj/volcfe/sop-public/upload_5172abc4b131d5869ccb0a563fa9d00d.png)涉及... 索引不正确或写入的查询没有利用索引。# 内部回滚数内部回滚数取自 Handler_rollback 指标,意味着innodb 存储引擎回滚的次数[2]。如下是一个简单的步骤,当我们调用rollback时,Handler_rollback 指标会增加。```...

配置 MySQL 数据源

需要将资源组关联 VPC 中的 IPv4 CIDR 地址添加进数据库白名单中。 参数 说明 基本配置 数据源类型 MySQL 接入方式 火山引擎 MySQL 数据源名称 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100... 建议使用主键或有索引的列作为切分键: 如果表没有主键或者索引列,可以不配置该字段,同步任务不会进行分片,并以单并发的方式同步所有的数据; 建议使用主键或有索引的列作为切分键,切分键配置没有索引的列同步任务会...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

2核4G共享型云服务器

Intel CPU 性能可靠,不限流量,学习测试、小型网站、小程序开发推荐,性价比首选
86.00/1908.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

数据智能知识图谱
火山引擎数智化平台基于字节跳动数据平台,历时9年,基于多元、丰富场景下的数智实战经验打造而成
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询