MySQL索引长度是什么意思?

谁学逆向工程 2019-06-25 02:22:21
表中有个text类型的字段,用于存放电话号码, 用这个列创建索引需要指定的长度是字节还是字符? 这个长度是啥意思?数据库内部是怎么使用这个长度的?

当软件已经发布以后,我在进入数据库后台用 Create Index 增加索引, 不需要重新修改已发布的 SELECT 语句吧? 已发布的软件已经可以使用索引提高查询速度了吧?
...全文
1923 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
谁学逆向工程 2019-06-28
  • 打赏
  • 举报
回复
引用 5 楼 f**kcsdn 的回复:
索引长度其实就是列的前缀长度索引
这个具体的话楼主去看看文档就知道了

如果列是text类型,是不是就是取前几个字符做长度
谁学逆向工程 2019-06-28
  • 打赏
  • 举报
回复
引用 7 楼 f**kcsdn 的回复:


我按个text列是填电话号码的,至于是手机或者座机,或者带不带区号的的座机,或者区号和电话号之间有没有横线就随便填了。
csdnFUCKINGSUCKS 2019-06-28
  • 打赏
  • 举报
回复

a
----
abc
efgh
ijkl
aa
举个例子就是a列上建立长度3的索引 那么参与建立索引的数据 abc,efg,ijk,aa 至于你要用3还是300来作为长度就看你自己的选择 长度不同导致的查询效率肯定也是不一样的 具体优化的话上一个回复有文章 不过还是推荐官方的全文索引 毕竟是针对text类型的解决方案 当然你坚持要在列上加也可以 用罗老师的话说就是 又不是不能用 :)
谁学逆向工程 2019-06-27
  • 打赏
  • 举报
回复
引用 2 楼 闭包客 的回复:
知道一个字符串的最大长度有利于提高索引效率,固定长度就更好。

索引的增加不需要修改查询语句。

CREATE INDEX 语句中索引长度是啥意思
csdnFUCKINGSUCKS 2019-06-27
  • 打赏
  • 举报
回复
索引长度其实就是列的前缀长度索引 比如指定100的长度在a列上 那么就是根据a列内容的前100长度的内容去建立索引 mysql中索引长度与区分度的选择 针对text类型 在新版本中可以使用全文索引 FULL-TEXT Index 这个具体的话楼主去看看文档就知道了
闭包客 2019-06-27
  • 打赏
  • 举报
回复
create index 语句一般是不需要指定长度的,mysql 的 text 类型不知道有什么特别之处,这个你要看一下文档。
谁学逆向工程 2019-06-26
  • 打赏
  • 举报
回复
闭包客 2019-06-26
  • 打赏
  • 举报
回复
知道一个字符串的最大长度有利于提高索引效率,固定长度就更好。 索引的增加不需要修改查询语句。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧