佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1946|回复: 7

百万级 mysql

[复制链接]
发表于 5-5-2009 11:42 PM | 显示全部楼层 |阅读模式
伺服器里的一个 table 有过百万条数据。
搜索 select id, name from table_a where name like '%abc%' 时候显得非常慢。
CPU 和 内存 RAM 都没有问题,甚至使用率低过 10%。

优化 my.cnf 会有明显的变化吗?
还是说有什么其他方法可以使到搜索变快?
回复

使用道具 举报


ADVERTISEMENT

发表于 6-5-2009 09:45 AM | 显示全部楼层

回复 1# vampcheah 的帖子

TABLE 有 indexing 吗?
回复

使用道具 举报

发表于 17-5-2009 08:29 PM | 显示全部楼层
回复

使用道具 举报

发表于 3-6-2009 07:28 PM | 显示全部楼层
考虑使用 horizontal partitioning 吧。。。

http://dev.mysql.com/tech-resour ... e-partitioning.html
回复

使用道具 举报

 楼主| 发表于 16-6-2009 08:20 PM | 显示全部楼层
考虑使用 horizontal partitioning 吧。。。

http://dev.mysql.com/tech-resour ... e-partitioning.html

我用着5.0.x, partitioning 是 5.1 的功能而且还是beta 中。有些文章不建议使用。


full-text search 的确很不错但是对中文的支持还是。。。。
sphinx 也有做过一些research 但是不是很明白。是直接安装就可以了吗?

[ 本帖最后由 vampcheah 于 16-6-2009 08:23 PM 编辑 ]
回复

使用道具 举报

发表于 14-7-2009 05:48 PM | 显示全部楼层
原帖由 r9jason 于 6-5-2009 09:45 AM 发表
TABLE 有 indexing 吗?


当 '%abc%' 为 'abc%' 时,index才有效
回复

使用道具 举报

Follow Us
发表于 29-7-2009 11:45 AM | 显示全部楼层
当你用LIKE 的时候,整个QUERY一定会变慢,因为搜寻的方向太模糊了。
就算INDEX也不能帮助得太多。或许分段搜寻可以帮你:

先从第一百千的RECORD里面找起,
然后再第二个一百千, 虽然需要重复几次。 但是会比较快。
回复

使用道具 举报

发表于 7-8-2009 06:43 PM | 显示全部楼层
原帖由 cyea 于 14-7-2009 05:48 PM 发表 当 '%abc%' 为 'abc%' 时,index才有效

这家伙是内行!
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 25-4-2024 01:09 PM , Processed in 0.065675 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表