zoukankan      html  css  js  c++  java
  • MyBatis中#{ }和${ }的区别,数据库优化遵循层次和查询方法

    MyBatis中#{ }和${ }的区别详解

    1.#将传入的数据当成一个字符串,会对自动传入的数据加一个

    双引号。

    例如order by #id#,如果传入的值是111,那么解析成sql时变为order by “111”,如果传入的值是id,在解析成sql为order by “id”.

    其实原来sql语句通常写成order by #{id} 与order by #id#的效果

    一样。

     

    2.$将传入的数据直接显示在sql语句中。例如order by${id},如果

    传入的值则解析成sql语句为order by 9

     

    3.#方式能够很大程度上防止sql注入,而$无法防止sql注入,

    $一般用于传入数据库对象,例如传入表名,

    一般能用#就别用$

     

    4.mybatis排序是用order by动态参数时需要注意,用$而不是用

    #。

     

     

    5.查询语句使用别名来解决,#{ }是spring表达式,${ }是el表达式。

     

     

     

    ---------------------------------------------------

     

    6.Web Service : 一种可以接收从Internet或Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。

     

    7.数据库优化应该遵循的层次

       1.减少应用的请求(应用层)

       2.降低数据库内部资源争用(数据库层)

       3.降低输入输出数据和规模(内存)

       4.优化输入输出处理能力(储存层)

       5.如果做查询的时候尽量不要用*,尽量减少不必要的空间消耗。

     

    优化查询:

    1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要.2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)3、升级硬件4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。

    5、提高网速;6、扩大服务器的内存,Windows 2000和SQL server 2000能支持4-8G的内存。

    7、增加服务器CPU个数;但是必须明白并行处理串行处理更需要资源例如内存。

    8、如果是使用like进行查询的话,简单的使用index是不行的,但是全文索引,耗空间。

    19、查询时不要返回不需要的行、列

    等等

     

     

     

     

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    从 MVC 到微服务,技术演变的必经之路
    JBOSS最大连接数配置和jvm内存配置
    数据库原理及应用第7章课后习题答案
    如何实现超高并发的无锁缓存?
    手工清理win7系统C盘的技巧
    SVN版本回退
    在sql server数据库的一个表中如何查询共有多少字段
    软件测试的四个阶段
    sp_change_users_login 'Update_One', '用户名', '登录名';
    讲一讲java异常及自定义异常
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/9627712.html
Copyright © 2011-2022 走看看