关于like %**%的性能的问题

darzui 2003-06-21 05:21:02
select * from player, club where 1=1 and player.ename like '%aa%'
其中player表中记录大约2500条,club大约90多条,为什么这样的查询语句会让数据库失去响应?
我用的是mysql3.23,在windows2000 server上
...全文
145 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuixin13 2003-07-22
  • 打赏
  • 举报
回复
foxnt(吴剑明★天马梦想)
Delphi 的大侠呀,
也开始研究 MySQL 了?
呵呵,有好多 Delphi 版的朋友都开始研究 Delphi 啦!!
shuixin13 2003-07-22
  • 打赏
  • 举报
回复
foxnt(吴剑明★天马梦想)

Delphi 大侠 呀,
有兴趣研究 MySQL ??

呵呵,已有好多 Delphi 版的朋友过来啦

:)
foxnt 2003-07-22
  • 打赏
  • 举报
回复
你还在那家公司泡吗?:)
aloneflasher 2003-07-21
  • 打赏
  • 举报
回复
%放在开头那么索引是不起作用的,只有把他放在其它位置,才可以使用索引
istrue 2003-06-27
  • 打赏
  • 举报
回复
哦,是有2500*90条记录!
有问题的是楼主的sql语句本身!
楼主没有发烧吧!
Arbow 2003-06-26
  • 打赏
  • 举报
回复
还是用全文索引。
不然这样的搜索太慢了。
darzui 2003-06-26
  • 打赏
  • 举报
回复
谢谢大家的发言,希望高手对于mysql性能问题提出更多的见解
bluemeteor 2003-06-26
  • 打赏
  • 举报
回复
何止2500条啊?楼主两表关联查询没有限制条件,应该是2500*90条记录吧

20万条,在怎么也很慢吧
tchatcha 2003-06-26
  • 打赏
  • 举报
回复
狂顶!
istrue 2003-06-24
  • 打赏
  • 举报
回复
不会吧,
2500条记录会使mysql失去响应!!!
就算是全表扫描加上排序也不应使mysql失去响应。
我估计你在用msdos命令行模式操作mysql。
这样的话,失去响应的应是msdos程序(因它占用的资源非常有限,遇到大量数据要显示时,就会要等一段时间),而不是mysql数据库!
cclq 2003-06-23
  • 打赏
  • 举报
回复
同意楼上
shuixin13 2003-06-21
  • 打赏
  • 举报
回复
呵呵,
LIKE '%aa%' 的查询方式 不会使用 player.ename 列上的索引,
速度当然很慢,
如果你在 player.ename 列上只保存英文字符,
建议你使用全文索引,

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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