Mysql搜索 - InnoDB和事务与MyISAM进行FULLTEXT搜索

Dan*_*est 8 mysql search myisam innodb full-text-search

我目前正在研究为我的php项目提供高级搜索的最佳方法.

我已经缩小到使用FULLTEXT搜索而不是使用LIKE来查找表行中的匹配字符串.然而,为了做到这一点,似乎我需要牺牲使用InnoDB引擎,这将使我失去交易和表关系的ACIDity.

是否真的值得使用MYISAM mysql引擎,或者有更好的方法来提供搜索功能.

任何指针将不胜感激!

Jas*_*wis 8

这实际上取决于应用程序......使用MyISAM进行任何需要参照完整性的事情都是即时失败.与此同时,它的文本搜索是不是所有有效率的.

基本上,有两种方法可以去.如果您发现不需要真正的参照完整性,请考虑使用NoSQL数据存储.MongoDB是一个很棒的文档存储数据库.

另一方面,如果您确实需要参照完整性,但也需要快速索引的全文搜索,那么最好使用SphinxApache Solr为全文搜索创建索引缓存.

不管怎样,我认为MyISAM是一个遗留数据存储区.我不会在新项目中使用它.因人而异.

  • 坚持使用innodb并做这样的事情直到性能成为一个问题,在这种情况下切换到狮身人面像http://stackoverflow.com/questions/4732067/complex-query-for-recreating-fulltext-search-effect-on-innodb/4732982 #4732982.如果您认为myisam更好阅读此​​http://stackoverflow.com/questions/4419499/mysql-nosql-help-me-to-choose-the-right-one-on-a/4421601#4421601 (4认同)