NodeJS + MySQL вместо PHP + MySQL. Это нормально?
Я читал о NodeJS, но не смог найти его преимущества. Могу ли я заменить приложение PHP/MySQL на NodeJS/MySQL? это хорошая идея?
Пожалуйста, рассмотрите PHP CMS. Может ли NodeJS делать так же, как PHP? Является ли NodeJS подходящим только для некоторых легких действий?
Если это нормально, какой модуль MySQL является лучшим?
Ответы
Ответ 1
Перед тем, как войти в Node.js hype, прочитайте следующую статью.
В основном, Node.js HAS проблемы.
Это сервер, но вы можете подключиться к MySQL через Node и отправить данные пользователю. Есть много подводных камней, одним из которых является то, что вы должны знать JS, и вам придется форматировать свой вывод через JS вместо PHP.
Однако ваше узкое место почти никогда не будет PHP, если только вы не делаете некоторые вещи, для которых PHP не был разработан (например, загрузка 1 миллиона записей в массиве и выполнение различных запросов с использованием этого массива, а что нет).
То, что вы обнаружите в качестве узкого места (в случае загруженного веб-сайта), является HTTP-сервером, так как вы, вероятно, превысите объем памяти из-за каждого подключения, требующего определенного объема памяти, и, конечно же, ваша БД будет (скорее всего) I/O bound (hdd bound).
В этом процессе PHP будет наименьшим из ваших забот. Использование программ, написанных на C или для Node, не ускорит работу, так как вам придется масштабировать вашу систему баз данных - это совсем другая история (плюс вам нужно будет масштабировать настройку HTTP-сервера).
В принципе - придерживайтесь PHP/MySQL, забудьте о Node, по крайней мере пока.
Обновление: поскольку этот ответ принят и технология догнана, хорошо предупредить новых людей: Node.js стал популярным за пределами самых смелых мечтаний, и я лично нашел его awesome. Мне повезло, что я могу использовать как Node, так и php взаимозаменяемо.
Node имеет отличные сообщества и потрясающие пакеты, менеджеров пакетов и участников задач. Любой, кто знаком с JS, может работать с Node мгновенно. Это замечательно, очень полезно, и я вижу Node как нечто, что побудит JavaScript делать то, на что первоначально предназначалась Java (это мнение основано на анекдотических доказательствах, а не на факте).
Итог: при выборе технологии следует выбрать тот, с которым они знакомы или выразительны. Как PHP, так и Node.js велики по-своему, нет окончательного способа определить, какой из них "лучше".
Ответ 2
Было бы полезно, если бы вы написали немного подробную информацию о своем приложении php. Решение будет зависеть от многих вещей, например -
- Насколько обширно ваше приложение? Это повлияет на время, необходимое для переноса приложения php на node. Вам также может потребоваться рассмотреть ваши знания по программированию асинхронного стиля в javascript.
- Вы написали, что находитесь на этапе оптимизации. Php существует в течение длительного времени. Это должно быть проще применять методы оптимизации, чем переписывать все на другой платформе на этом позднем этапе, конечно, я предполагаю, что время для вас является решающим фактором, как в индустрии программного обеспечения.
- Как замедляется ваше приложение? Выполняется ли это медленно или не масштабируется с увеличением нагрузки? Языковая производительность вряд ли является узким местом для веб-приложений. Пробовали ли вы оптимизировать свои запросы, добавляя правильную индексацию к своему db, пытаясь улучшить веб-сервер и/или кеширование? Осмотритесь, вы получите в несколько раз больше ресурсов на то, как оптимизировать приложения php, чем что-то делать в node.
- Рассматривали ли вы инвестирование в оборудование? Может быть, это дешевле, чем переделывать все?
Чтобы быть коротким, node все еще изучает свои возможности, если вы хотите узнать это, сейчас самое лучшее время. Но если это обучение связано с запуском приложений уровня производства, мое предложение - нет. node не будет волшебным образом улучшать производительность вашего приложения, он не был создан для этой цели.
Чтобы ответить на другой вопрос, большинство людей предпочитают драйвер Felixge MySQL: https://github.com/felixge/node-mysql
И вот еще одна альтернатива: https://github.com/sidorares/nodejs-mysql-native
Ответ 3
Вы можете. Быстро.
Бенчмаркинг:
http://zgadzaj.com/benchmarking-nodejs-basic-performance-tests-against-apache-php
Взаимодействие с MySQL довольно сложно. Если у вас есть твердый фон на node.js, это не должно быть проблемой.
Но разработчики PHP сделали взаимодействие с MySQL самым простым и чистым.
http://www.giantflyingsaucer.com/blog/?p=2596
http://utahjs.com/2010/09/22/nodejs-and-mysql-introduction/
Для меня я бы использовал PHP/MySQL
Ответ 4
Вы можете использовать https://github.com/masuidrive/node-mysql или https://github.com/sdepold/sequelize. это один из лучших драйверов mysql для nodejs
Ответ 5
Если у вас есть большая существующая база данных mysql, вам нужно взаимодействовать с полным устаревшим кодом, который станет кошмаром для преобразования в nosql, тогда да.
В противном случае нет, используйте couch/mongo/redis/riak/cassandra/etc.
Выберите надежную базу данных noSQL, которая соответствует вашим требованиям.
Что касается того, может ли node делать то, что php/mysql может сделать "да". Вы можете создавать веб-сайты с ним.
Есть ли у node эквивалент drupal или wordpress, который держит вашу руку и делает все для вас? Нет.
Ответ 6
Я плохо разбираюсь в NodeJS. Но мои пункты:
-
Nodejs создан для создания приложений реального времени, таких как чат, онлайн-игры и т.д., потому что это действительно быстро.
-
NodeJS - это сервер. Таким образом, вы не можете сравнивать с php, имея в виду, что вам нужно перейти на сторонние модули для выполнения некоторых задач, таких как expressjs, node -mysql и т.д.,
-
Создание приложения с помощью NodeJS очень просто, как php-mysql