2013-10-12 111 views
0

我愿意为我当前的项目使用sphinx和MySQLMYISAM数据库引擎,因为这db是去是唯一只读10-25百万条记录在查询中使用联合或连接会导致Sphinx性能下降吗?

,所以我想知道 是否使用是否工会或加入查询导致狮身人面像的性能问题?

因为我即将设计数据库,如果工会/加入会导致较慢的表现,那么我可以去优化狮身人面像的设计。

也许像创建一个包含所有字段和数据的大表,然后根据要搜索的数据在sphinx中创建单独的索引

请指导我正确的方向。

感谢您的时间。

回答

1

狮身人面像无法加入。可以做联合,一次搜索多个索引。

或者你的意思是建立狮身人面像索引(即在sql_query)?索引器只会首先运行查询来构建索引。

正如你所说只读 - 因此没有更新,索引不应该重建,所以并不重要他们是多么慢。

一般来说,狮身人面像索引将执行非常相似,无论有多少feilds。所以不应该需要分成不同的索引。 JUEST有一个多用途索引(如果可能的话)。

但是,您可以将索引分成若干位,因此如果性能成为问题,可以分配给多个服务器。

+0

我的意思是,在构建索引时,如果我提供了带有UNION和/ JOIN的mysql查询来连接2-3个表中的数据,它会降低速度吗?或者一旦建立INDEX,它就无关紧要了。 sql_query的 – AMB

+1

可以是数据库服务器能够运行的任何任意的任意查询。 Sphinx只是直接运行查询,并为结果编制索引。它不关心查询是多么简单或复杂。对于数据库服务器来说,所有复杂的查询都会更难以优化。 – barryhunter

+0

谢谢,这解决了我的查询。 – AMB

相关问题