Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Розмістіть свій проєкт безплатно та почніть отримувати пропозиції від фрилансерів-виконавців уже через хвилини після публікації!

Оптимізація таблиці та запитів mysql

Translated849 UAH

Додатки 1

Перегляд додатків доступний тільки зареєстрованим користувачам.

Відгук замовника про співпрацю з фрилансером

Якість
Професіоналізм
Вартість
Контактність
Терміни

Все добре, працює набагато швидше, ніж працював sql.

Відгук фрилансера про співпрацю з Иваном Коленовим

Оплата
Постановка завдання
Чіткість вимог
Контактність

Адекватний і доброзичливий замовник. Я задоволений співпрацею.

Профіль видалено | Сейф Сейф

  1. 204    7  0
    3 дні1061 UAH

    Добрий день, у мене є досвід в оптимізації БД і запитів, з задоволенням допомоги. У моїй практиці був випадок, коли таблиці містили не менше 300к записів і створювали навантаження настільки велике, що провайдер погрожував відмовою у співпраці. В результаті зараз все працює без проблем. Ваш випадок нагадує мені цей. Для початку мені потрібна більше інформації про структуру БД і за запитом. Чекаємо на Ваші повідомлення.

  2. Ще 3 ставки приховано
  • Профіль заблоковано
    13 вересня 2019, 3:39 |
    видалено модератором
  • Иван Коленов
    13 вересня 2019, 3:51 |

    ты запретил чтобы тебе писать. 

  • Андрей Местный
    13 вересня 2019, 7:01 |
    Вы используете LIKE '%".$teg."%' то есть ищите подстроку в значении поля, соответственно перебираете каждый раз все 100.000 записей, вам нужно отказаться от этой практики. SQL запрос правильный, но вы неправильно ставите задачу своему SQL серверу, подумайте как не ставить знак процента впереди искомой подстроки. 
  • Иван Коленов
    13 вересня 2019, 7:07 |

    Можете помочь в оптимизации?

  • Андрей Местный
    13 вересня 2019, 7:10 |

    Нет, вам нужно отказаться от поиска подстроки в поле, можно искать слово, если использовать полнотекстовый поиск, а поиск подстроки всегда будет очень медленным на больших базах.

  • Андрей Местный
    13 вересня 2019, 7:12 |

    Даже если уберете процент вначале запроса Like оставив его только в конце то уже поиск будет идти по индексу и будет быстрым.

  • Иван Коленов
    13 вересня 2019, 7:13 |

    в поле есть текст "Мото Ауто Форум Деньги Золото"

    Как найти по другому все записи где есть слово Форум между 100 000 записей не используя %Форум%?

  • Андрей Местный
    13 вересня 2019, 7:16 |

    Если вам нужно полное слово форум, то через полнотекстовый поиск, а если вы хотите искать подстроку например фор** или **орум то ничего вам не поможет, кроме медленного выполнения запроса.

  • Андрей Местный
    13 вересня 2019, 7:18 |

    Вернее если вы издадите запрос like '%фор%  то запрос будет выполняться медленно, а если like 'фор% то результат будет мгновенным.

  • Андрей Местный
    13 вересня 2019, 7:18 |

    При наличии индекса по полю поиска.

  • Иван Коленов
    13 вересня 2019, 7:31 |

    "Мото Ауто Форум Деньги Золото" 

    не сможет найти поля со словом  Форум% так как слово между другими словами 

  • Андрей Местный
    13 вересня 2019, 8:28 |

    Тогда вам нужно подумать как построить программу так, чтобы этого не было, полное слово ФОРУМ вы можете искать через полнотекстовый поиск, а подстроку *ОРУМ никак только загружая на 100 % процессор и память.   

  • Иван Коленов
    13 вересня 2019, 10:29 |

    полнотекстовый поиск работает быстрее?

  • Андрей Местный
    13 вересня 2019, 10:41 |

    Если вы хотите в перечне осмысленных слов "Мото Ауто Форум Деньги Золото" найти слово Форум и создадите полнотекстовый индекс по этому полю, то тогда MySQL найдет слово Форум мгновенно. Но слово должно быть осмысленным, чтобы MySQL понял что вы ищите именно Форум. Он так же найдет и слово Форумы, Форума, Форумов, Форума  и т.д. Но слово ОРУМ полнотекстовый поиск не найдет, а like '%ОРУМ%' найдет.

  • Иван Коленов
    13 вересня 2019, 10:45 |

    вот то что нужно

  • Профіль заблоковано
    14 вересня 2019, 9:04 |

    А при 250 тыс полнотекст накроется медным тазом. (

  • Олексій К.
    13 вересня 2019, 9:32 |

    Если Вы хотите использовать полнотекстовый поиск, Вам стоит отказаться от поиска по MySQL) такими запросами и по такой базе))).

    решение(если VPS): делать связку ЦМС - ...

  • Профіль видалено
    13 вересня 2019, 8:10 |

    Готов сделать  

  • Сергій К.
    13 вересня 2019, 8:11 |

    Сделайте копию таблицы или всей базы данных для тестирования, и попробуйте создать вот такой индекс:

    ALTER TABLE `file` ADD FULLTEXT KEY `cosmos` (`cosmos`), ADD KEY `status` (`status`)

  • Иван Коленов
    13 вересня 2019, 10:40 |

    Спасибо. время выполнения одинаково. 

  • Андрей Местный
    13 вересня 2019, 10:56 |

    Вам нужно использовать WHERE MATCH(`cosmos`) AGAINST('форум'),  а не  Like 

  • Сергій К.
    13 вересня 2019, 11:52 |

    Верно. Забыл об этом написать.

  • Профіль видалено
    13 вересня 2019, 9:00 |

    У вас сервер на VPS?

  • Иван Коленов
    13 вересня 2019, 10:58 |

    нет,  свой сервер.

  • Профіль заблоковано
    13 вересня 2019, 9:52 |

    Попробуйте еще регулярными выражениями - может будет быстрее

    Пример: SELECT name FROM metal WHERE name REGEXP 'Форум'; 

  • Андрей Местный
    13 вересня 2019, 10:18 |

    Ну да а искать ..... WHERE MATCH(`cosmos`) AGAINST('форум')

  • Андрей Местный
    13 вересня 2019, 10:30 |

    Вам в каком виде вообще помощь нужна ? В виде совета, просмотра ваших SQL запросов или реальной перетряски всего вашего проекта, через SSH доступ к вашему серверу и пересмотр всей концепции поиска. 

  • Иван Коленов
    13 вересня 2019, 10:43 |

    на стороне сервера я смогу все сам настроить, мне нужно оптимизировать запрос LIKE или заменить его...

  • Андрей Местный
    13 вересня 2019, 10:49 |

    Найдите доку как использовать полнотекстовый поиск в MySQL если MySQL слишком древний, то вам придется его обновить до версии поддерживающей полнотекстовый поиск. Если уж ничего не поможет, то пишите в личку договоримся.

  • Иван Коленов
    13 вересня 2019, 10:53 |

    хорошо. спасибо.

  • Профіль видалено
    13 вересня 2019, 11:07 |

    Готов помочь в вашем вопросе

  • Профіль заблоковано
    14 вересня 2019, 9:02 |

    Напишите в личку, скину вам сайт, где я в почти 2-х млн. сделал быстрый поиск внутри текста.

Актуальні фриланс-проєкти в категорії PHP

Прописати мета дані АЛЬТ за допомогою ІІ

Сайт на Laravel, на сайті багато зображень, для яких потрібно прописати коректні за семантикою та релевантні для сторінки АЛЬТ описання зображення в автоматичному режимі, з можливістю перевірки

AI та машинне навчанняPHP ∙ 19 годин 21 хвилина тому ∙ 28 ставок

Потрібен розробник для завершення та інтеграції проєкту з автоматичного збору й обробки данних

700 UAH

Основна частина парсера вже реалізована. Парсер працює на Windows-середовищі через Microsoft Edge: сайт має антибот-захист, тому збір даних виконується не прямими HTTP-запитами, а через живу браузерну сесію. Скрипти керують відкритою вкладкою Edge через Chrome DevTools Protocol,…

PHPВеб-програмування ∙ 1 день 1 година тому ∙ 21 ставка

Оновлення плагінів і тем WP сайт putevka.uz

«Потрібно провести технічний аудит WordPress-сайту, перевірити актуальність, безпеку та сумісність встановлених плагінів і теми. За результатами — запропонувати легальні варіанти оновлення, заміни застарілих рішень або переходу на офіційно доступні аналоги. Платні плагіни та…

HTML та CSS верстанняPHP ∙ 1 день 3 години тому ∙ 36 ставок

Інтеграція блоку "Де дивитися" (Laravel / Livewire)

Потрібно реалізувати інтеграцію зовнішньої стримінгової платформи для сайту про фільми та серіали на Laravel / Livewire. Що потрібно зробити: Реалізувати імпорт зовнішнього каталогу контенту, який оновлюється 1 раз на день. Виконувати матчинг контенту по IMDb ID та/або TMDB ID.…

PHPВеб-програмування ∙ 1 день 18 годин тому ∙ 38 ставок

Доопрацювання існуючого проєкту на Laravel (PHP)

Потрібно доопрацювання існуючого проєкту на Laravel (PHP). Проєкт включає в себе готову адмін-панель яка має в середині себе білдер який виступає для створення сторінок через нього з версткою (html+css+js) на php кодом для виводу данних. В проєкті потрібно реалізувати 2-3…

CMSPHP ∙ 1 день 21 година тому ∙ 40 ставок

Замовник
Иван Коленов
США Aberdeen  7  0
Проєкт опублікований
6 років тому
235 переглядів