Есть ли прирост производительности на выбранном языке и БД? - PullRequest
0 голосов
/ 13 октября 2009

Наша текущая система использует PHP и Microsoft SQL Server.

Я пытаюсь понять, будет ли увеличение производительности при использовании PHP и MySQL?

Потребуется некоторое усилие, чтобы перейти на эту платформу, поэтому я надеюсь узнать как можно больше. Есть ли какие-либо вопросы, которые я должен задать себе, чтобы определить правильный выбор?

Спасибо всем

Подробнее

  • 100 миллионов записей, обрабатываемых регулярно (ежемесячно)
  • PHP + MS SQL Server работает на той же машине
  • Windows Enivronment

Разъяснение

Я изначально надеялся, что этот обмен станет волшебным решением, очевидно, нет !!

Чтобы сохранить этот поток полезным, можем ли мы сосредоточиться на том, какой эффект будет иметь переключение на MySQL или любую другую систему БД для всего приложения, которое было точно настроено и ничего больше не может быть сделано!

Ответы [ 5 ]

4 голосов
/ 13 октября 2009

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

СУРБД - сложные животные. Прежде чем подумать об их замене, внимательно посмотрите на свою текущую базу данных. Еще лучше - платите специалисту с опытом работы с SQLServer. Плохо настроенные базы данных есть везде.

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

Как только что ответил Джеймс Блэк, правильный способ повысить производительность - это профилировать приложение и выяснить, на что оно тратит свое время.

4 голосов
/ 13 октября 2009

Вы можете сначала профилировать свое приложение и определить, сколько времени тратится в базе данных и сколько времени в каждом запросе.

Тогда легче ответить, так как вы можете сказать, что приложение тратит 3% в базе данных, и из этого 27% находятся в выборках, а остальные - вставки, которые включают триггеры.

Кроме того, в какой ОС будет работать MySQL?

Это на отдельном компьютере, чем сервер PHP?

Какова ваша нынешняя архитектура?

Если вы смотрите на тот факт, что ваш веб-сервер и сервер БД находятся на одном компьютере, а затем вы разделяете их для MySQL, и вы получаете повышение производительности, это, скорее всего, связано с тем, что один процессор на вашем первом компьютере теперь не нужно выполнять двойную функцию.

Какая версия PHP? Это будет изменено?

В настоящее время вы используете функции mssql, odbc или pdo?

1 голос
/ 13 октября 2009

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

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

Я укажу, что ничего, кроме SQL Server, не должно работать на компьютере с SQL Server, особенно если вы ожидаете высокую производительность. Одно только это заявление заставляет меня думать, что у вас, вероятно, будет система с недостаточным уровнем мощности для того, что вы от него просите. Я бы никогда не подумал о запуске наших приложений на одном сервере с нашей базой данных.

1 голос
/ 13 октября 2009

Наряду с тем, что уже было сказано, я думаю, что стоит упомянуть, что MySQL не ограничен одним набором характеристик в этом отношении - есть несколько различных механизмов хранения, которые вы можете использовать с MySQL, и каждый имеет свой набор эксплуатационных характеристик. MySQL с MyISAM действует несколько иначе, чем MySQL с InnodDB, а MySQL с Infobright несколько отличается от любого из них (и, конечно, есть и другие).

1 голос
/ 13 октября 2009

Самое важное, что нужно проверить на стороне базы данных, - это правильное использование индексов. Проверьте свои запросы, используя EXPLAIN PLAN, чтобы увидеть, выполняют ли они TABLE SCAN. Если они есть, добавьте индексы для повышения производительности.

Я бы серьезно сомневался в том, что замена SQL Server и MySQL будет иметь какое-либо значение. Если бы все было так просто, а MySQL имел такое универсальное преимущество в производительности по сравнению с SQL Server, доля рынка SQL Server за ночь упала бы до нуля, пока расхождение не будет устранено. Нет никакой возможности скрыть такую ​​разницу при наличии Интернета.

Отличная рекомендация для профилирования всего приложения. Вы можете проверить свои запросы, ожидая, пока это произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...