作者statue (statue)
看板Database
标题Re: [SQL ] 如何改善 LIKE '%search%' 的效能?
时间Mon Jun 25 13:15:47 2007
※ 引述《zhman (闲闲的人)》之铭言:
: MySQL的全文检索我想并不适合用,尤其是中文的资料,虽然网页上是讲得很好听,不过试了就知道.
: 如果你的资料是有特别的结构或pattern,那也许有其他更好的方法.
: 我这里提供一个简单的一般化方法,就是自己实作index,透过cache的方式.
: 1.开一个新的table,包含2个栏位:(key,id),key就是会被查询的keyword,id则是对应record的primary key.
: 2.每次查询就先查这个table,有资料,那很幸运,你很快就有结果了.
: 3.没资料,就重做你原来的like查询,再把结果insert到这个table中,下次就可以用.
这个其实有做了, 不过大家乱打的机率很大,
所以其实重复 match 查询字串的机率小的可怜..
: 基本假设是你只想知道某个keyword是存在某笔record.其他更详细的查询,则需再做其他的变化.
: 如果你有一些keywords,那可以预先insert一些资料,也可以增加效率.
: 一旦资料有做更新时,也需要一并keyword的table,如果更新频繁的话,那你可要考量一下时间成本.
这边有点太高深了, 看不太懂....
fulltext 其实我有试过, 但是我做了 FULLTEXT 後, 他显示的组别只有一组...
所以不管怎麽查的结果都是空的...
而这个查询在我的网站上平均会消耗 1-2 秒的时间, 其他的查询都能利用 index ..
对中文的查询该怎麽做才能加速呢..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.226.5