У меня есть база данных продуктов с 3 миллионами записей. Я пишу webservice для запроса db. Вывод будет присвоен массиву в клиенте для сопоставления строк (аналогично тому, как вы начинаете вводить ipod в окне поиска Google). Любые предложения о том, как я могу оптимизировать запрос или кэшировать его таким образом, чтобы новый кеш создавался только при обновлении продукта. БД продукта будет обновляться каждую неделю новыми продуктами, что означает, что количество записей будет расти с течением времени.Laravel 5.1, запрашивающий базу данных с миллионами записей
ответ
Если вам нужно найти по описанию продукта в любой части строки (запрос LIKE '% string%'), я бы рекомендовал хранить уникальные описания в другой таблице с помощью FULL TEXT INDEX, обновляя ее каждую неделю (при необходимости). Поэтому, когда пользователь начинает печатать, мы используем эту таблицу для вывода предложений.
Когда пользователь попадает в одно описание, мы ищем это описание в таблице продуктов ->, поэтому нам нужно добавить индекс INDEX в столбец описания в таблице продуктов.
Если вам нужно совместить только начальную фразу (запрос LIKE 'string%'), вы можете просто поместить индекс INDEX в столбец описания продукта.
Сэм, разве полный индекс все равно не вызвал бы загрузку сервера? – singh
@ JotiBasi ему нужен бенчмаркинг и зависит от размера данных, оборудования и нагрузки. Если ваш mysql кэширует запросы, он может быть медленным в начале, в то время как в кеше ничего нет. Если вы можете разрешить некоторую задержку для события нажатия клавиши, значит, на каждом нажатом ключе не будет запроса, и вы не будете получать огромное количество запросов каждую секунду, тогда это будет совершенно нормально –
- 1. создать базу данных с миграцией laravel 5.1
- 2. jQuery, запрашивающий базу данных
- 3. Работа с миллионами записей данных в MySQL и PHP/Laravel
- 4. Дизайн базы данных с миллионами записей
- 5. MySQL - рейтинг с миллионами записей
- 6. Laravel 5.1 - создание записей из данных формы плюс добавленные данные
- 7. записи обновления на стол с миллионами записей
- 8. Grails, запрашивающий базу данных по списку объектов
- 9. Mean.js angularjs, запрашивающий базу данных mongodb
- 10. Импорт файла Csv с 8 миллионами записей
- 11. Laravel 5.1 переносить базу данных на размещенную mysql
- 12. Hadoop backend с миллионами записей вставки
- 13. Вытягивание записей из MySQL Db с использованием Laravel 5.1 Пагинация
- 14. Быстрое обновление базы данных с более чем 10 миллионами записей
- 15. фильтрация данных в плоском файле с миллионами записей
- 16. SQL - не существует запроса с миллионами записей
- 17. ускорить запрос LIMIT с миллионами записей
- 18. Удаление из таблицы с миллионами записей
- 19. Связь Laravel 5.1 с несколькими базами данных
- 20. Подключение динамической базы данных Laravel 5.1
- 21. Laravel 5.1 firstOrNew
- 22. Выезд с Laravel 5.1
- 23. уничтожить несколько записей с Model Binding Laravel 5.1
- 24. Laravel 5.1 Маршруты с вопросительным знаком
- 25. Laravel 5.1 отсоединяется, где
- 26. Laravel 5.1 Api для Android
- 27. Laravel 5.1 Запрос отношений
- 28. Легкое решение для хранения одной таблицы с миллионами записей
- 29. Вставка миллионов записей в базу данных MySQL с использованием Python
- 30. TokenMismatchException laravel 5.1
Как мы можем помочь, если даже не видим запрос? Вы просите нас настроить машину формулы 1, не показывая нам машину с ее спецификацией. – davejal
Я бы не использовал БД для таких огромных записей. Вы попробовали что-то вроде ElasticSearch –