• Насколько важно сейчас начинающему веб-разработчику разбираться в SQL досконально?

    ruFelix
    @ruFelix
    Предсказание будущего по руке, таро, кофе.
    Реализация ORM обычно такова, что это тот же SQL синтаксис только в виде объекта вызовов методов объектов.

    1. В простых случаях, что то типа: User::findAll()->where(['id'=>10])
      Это как бы прикольно, но тот же SQL: SELECT * FROM user WHERE id =10 не выглядит более сложным.
    2. Join, ORM как бы скрывает джойны:

      $UserCollection = User::findAll()->where(['id'=>10]);
         foreach($UserCollection as $User){
            if($User->ProfileSetting->is_enable == 'yes'){
               doSomething($User);
            }
         }

      Тут как бы скрыто то, что запрос происходит к двум связанным таблицам (user и profile), это достаточно в многих случаях, но в любом случае это не круто, т.к. вы не знаете какой запрос или запросы генерит ORM и не понимаете, что происходит на самом деле.
    3. Внешний вид запросов в объектном представлении становиться тяжёлым для восприятия даже для запросов средней сложности, с SQL таких проблем нет.
    4. Для сложных запросов ORM не даёт ни чего, кроме варианта писать тот же SQL.


    ORM имеет серьёзные преимущества в кодогенерации, в написании автоматизированных тестов.

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

    Так происходит потому, что по мере роста вашей квалификации у вас будут пропадать сопутствующие задачи типа вёрстки и js, готовую архитектуру вам навяжут фреймворки, а вашей основной задачей будет манипуляции с небольшими блоками данных хранящимися в больших массивы данных.
    Ответ написан
    Комментировать
  • Как объективно протестировать производительность node.js и PHP в запросах к mysql БД?

    nazarpc
    @nazarpc
    Open Source enthusiast
    for ($i = 0; $i < 1000; $i++) {
        $result = mysql_query('SELECT * FROM dreg_document');
      }

    Бессмысленно, и беспощадно. Вы слышали про кэширование запросов? Так вот только оно здесь и будет работать)

    И ещё, вы об асинхронности слышали? Так вот, NodeJS асинхронный, в том числе с запросами к БД.
    Ответ написан
    4 комментария
  • Как Вы справляетесь с большими данными в MS SQL Server?

    Insaned
    @Insaned
    Ничего непонятно из вашего поста. Больше вопросов возникает чем ответов: почему именно терабайт ОЗУ? Чем оракл принципиально для вас лучше ? Какой профиль нагрузки? Какая структура данных? Если нагрузка преимущественно на чтение - нет проблем замасштабироваться горизонтально. Если нагрузка смешанная надо смотреть в сторону оптимизации. Вообще надо брать за уши нормального ДБА и садить его за покурку вашей базы.
    5-10 Тб по нынешним временам - нифига не большая база.
    Ответ написан
    Комментировать
  • Можно по подробнее о команде GO?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Можно: GO - это вообще не SQL, это - специфика MS SQL. Ну, а USE существует практически в любом распространенном диалекте и предназначена для "выбора" БД, для использования в последующих запросах.

    Вызывать GO в конце этого запроса - вряд ли... хотя, смысл может появиться, если до и/или после него делается что-то еще, чего мы не видим :)
    Ответ написан
    Комментировать
  • Крупный проект, что выбрать Azure+MSSQL или Обычный хостинг+MySQL?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Пока у Вас старт - размещайтесь где угодно.
    Будет какая то нагрузка - переедете на свои сервера.
    Будет серьезная нагрузка - перепишете архитектуру раза 4 точно.
    Ответ написан
    6 комментариев