У меня 10 000 000 записей, которые будут лучшим методом для поиска записей, в настоящее время им, используя полнотекстовый поиск, но это медленный, пожалуйста, предложите.
Существует не одноразовое решение, но вы можете попробовать:
сфинкс
Как вы реализуете полнотекстовый поиск для этой таблицы в 10+ миллионов строк, не отставайте от нагрузки и сохраняете актуальность? Сфинкс хорош в таких загадках.
Sphinx – полнотекстовая поисковая система, распространяемая по версии GPL 2. Коммерческая лицензия также доступна для встроенного использования.
Как правило, это автономная поисковая система, предназначенная для обеспечения быстрых, эффективных по размеру и релевантных функций полнотекстового поиска для других приложений. Sphinx был специально разработан, чтобы хорошо интегрироваться с базами данных SQL и скриптовыми языками. В настоящее время встроенные источники данных поддерживают выборку данных через прямое соединение с MySQL или PostgreSQL или с использованием механизма XML-канала (канал для индексатора в специальном формате на основе XML, который распознает Sphinx).
Что касается имени, Sphinx является аббревиатурой, которая официально декодируется как индекс фразы SQL. Да, я знаю о проекте CMU Sphinx.
Lucene PHP (Part of Zend Framework):
Zend_Search_Lucene – это текстовая поисковая система общего назначения, полностью написанная на PHP 5. Поскольку он хранит свой индекс в файловой системе и не требует сервера базы данных, он может добавлять возможности поиска практически на любой веб-сайт, ориентированный на PHP. Zend_Search_Lucene поддерживает следующие функции:
- Ранжированный поиск – лучшие результаты, возвращенные сначала
- Много мощных типов запросов: фразовые запросы, логические запросы, подстановочный знак
запросы, запросы близости, диапазон
запросов и многих других.- Поиск по определенному полю (например, название, автор, содержимое)
http://framework.zend.com/ http://framework.zend.com/manual/en/zend.search.lucene.overview.html
Это зависит от нескольких простых вопросов:
Поскольку я не работал с такими большими наборами данных, как это, вот некоторые идеи, которые могут работать:
Первый вопрос заключается в том, что эти записи являются статическими (например, geoip) или нет?
Если вы можете предоставить более подробную информацию, я могу уточнить свои советы.
Используйте Solr . Это lucene с некоторыми дополнениями, легко доступными по протоколу http. Он быстро растет в сравнении с любыми текстовыми запросами из mysql.