Как увеличить скорость работы модуля vtigercrm - PullRequest
0 голосов
/ 30 октября 2019

В настоящее время я занимаюсь разработкой vtigercrm 7.1.0 с открытым исходным кодом. Vtiger использует mysql для своей базы данных, а crm разбит на несколько модулей. Модуль возможностей является сердцем CRM и содержит большинство системных полей. Поскольку я работал над системой и добавлял больше полей в модуль Opportunity, он становился все медленнее. Теперь у меня есть более 500 полей в модуле возможностей. Каждый раз, когда я добавляю новое поле, он создает новый столбец в таблице MySQL vtiger_potentialscf. Если я запускаю select * from vtiger_potentialscf, выполнение запроса занимает около 10 секунд, что отрицательно сказывается на конечном пользователе, которому приходится ждать около 13 секунд для загрузки веб-страницы. Я прочитал на MySQL, и он не любит таблицы с большим количеством столбцов. Я работаю над этой системой уже несколько месяцев, но чувствую, что если я не смогу найти способ улучшить скорость, мне придется искать альтернативную систему CRM. У кого-нибудь есть полезные предложения по улучшению скорости?

1 Ответ

0 голосов
/ 30 октября 2019

Есть несколько вещей, которые вы должны проверить -

  1. Вам действительно нужно 500 полей для модуля? Могут ли они быть перемещены в другие модули или объединены каким-либо образом, чтобы уменьшить количество полей?
  2. Запустите объяснение запроса и посмотрите, почему он занимает столько времени.
  3. Добавьте индексы в таблицу cf- обычно столбец потенциального идентификатора должен быть индексом, но возможно, что он фрагментирован. Вы можете попробовать дефрагментировать таблицу
  4. Попробуйте переместить некоторые поля в основную таблицу vtiger_potential или даже в третью таблицу vtiger_potentialcf1, чтобы разделить данные дальше.
  5. Попробуйте изменитьMySQL конфигурация для оптимальной производительности. Есть несколько руководств, доступных через Интернет (даже у stackoverflow есть некоторые).

Дайте мне знать, как это происходит для вас.

...