На предварительно скомпилированных MySQL

Перед тем, как  разница в Mybatis $ # {} и {} является  привлеченный  в SQL предкомпилятору и # {значение} пройти  образом , чтобы предотвратить инъекции SQL.

Что привело к идее хочет знать прекомпилировано. Так что прекомпилируется что?

Во-первых, три этапа:

  1. Лексический и семантический разбор

  2. Оптимизация оператор SQL, чтобы разработать план реализации

  3. Выполнение и возвращает результат

Во-вторых, причина появляется прекомпилирована

  1, во многих случаях, SQL заявление может быть повторено, или每次执行的时候只有个别的值不同

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

  3, так как каждое из этих значений будет отличаться лексико семантический разбор , оптимизация, реализация плана развития , это будет влиять на эффективность .

  4, ступень 1, и часто больше, чем суммарная длительность временного шага 3.

 

  Вам нужно предкомпилированный играли в этом случае.

 

В-третьих, прекомпилируются

  1, предкомпилированный: диск относится к базе данных, составленных до SQL заявления, направленного в СУБД в операторе SQL и параметры, так что, когда СУБД SQL выполняется, нет необходимости перекомпилировать.

 

  2, скомпилированные преимущества:

    1, в большинстве случаев, после того, как следующий SQL предварительно компилятор может быть выполнен непосредственно, СУБД не нужно перекомпилировать.

    2, SQL-более сложным, тем больше будет сложность компилятор, множественные операции компилятор предварительно стадии могут быть объединены в одну операцию.

    3, то же скомпилированный SQL может быть использован повторно. (Объект PreparedStatement производится после того, как предварительно скомпилированного SQL кэшируются,

        В следующий раз за тот же SQL, вы можете непосредственно использовать этот объект кэша PreparedState. )

    4, такое значение может быть SQL-заявление с заполнителями В качестве альтернативы, каждый компилятор не должен быть выполнен непосредственно,

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

    5, можно рассматривать как скомпилированный SQL Statement шаблонного или параметрические.

Четыре, mybatis SQL динамического анализа исходного кода и предкомпилированного

  mybatis SQL динамический анализ

    mybatis до соединения вызова прекомпилировать SQL, SQL заявление будет динамическим разрешением, динамический анализ в основном включает в себя следующие функции:

    • Обработка заполнитель

    • Динамическая обработка SQL

    • Параметр проверки Тип

  Примечание: mybatis По умолчанию все SQL будет прекомпилирована.

 

См: Https://Www.Cnblogs.Com/ConfidentLiu/p/7142495.Html

См: Https://Www.Jianshu.Com/p/9972d7b33061

Продолжение. , , ,

рекомендация

отwww.cnblogs.com/mww-NOTCOPY/p/11789011.html