MySQL-mysql如何给字段的后几个字符加索引而不是给整个字段加
表里边有一个字段image_url,想给他加索引但是这个字段有很多内容是重复的如下:
image_url
http://img1.douban.com/lpic/s10419031.jpg
http://img1.douban.com/lpic/s10419532.jpg
http://img2.douban.com/lpic/s10412033.jpg
http://img2.douban.com/lpic/s10412034.jpg
给整个字段加索引会不会有问题啊?
能不能就只给这个字段的后13个字符加索引啊,因为这13个字符才是我查找用的数据?
还有加上以后用这个索引的时候,要注意哪些东西?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
据我所知,MYSQL没有后缀索引(如果说错请指正);
如果真相要对这个字段添加索引又不想加整个字段,给你出歪招,程序可能稍微多一步。
创建字段image_url 按你的字符数添加前缀索引。存取该字段时反转字符传存储。结果如下:
gpj.13091401s/cipl/moc.nabuod.1gmi//:ptth
查询的时候反转一下就可以了。
不过我推荐你将最后要索引的这个字符拆出来单独存储,加索引。
给 image_url 加前缀 索引,但是我的存储方式不同:
s10419031.jpg|http://img1.douban.com/lpic/
查询时条件正常写就可以了,操作的话更方便一些。
给整个字段加索引 也不会有问题,但是索引文件比较大些,比较浪费磁盘空间,影响insert操作的速度。只相对于加前缀索引而言;
另外建议:如果图片是存在不同的服务器上的话,在图片名上加区别就可以,举例:
s10419031_A.jpg
s10412034_B.jpg
仅存图片名称就可以了,查询出来根据根据规则就知道该拼接哪个地址。