sql优化、数据库优化

数据库优化:

数据库优化吧我觉应该从硬盘、内存和网络带宽考虑,提高硬盘的读写速度,增大带宽提高吞吐量,增大服务器内存,可以采用读写分离,降低单台数据库的访问压力,查询的时候控制数据量的大小,返回更少数据,减少交互次数,减少cpu及内存的开销,

    sql优化:如果一个表中数据量过大我们可以采用横切割,如果一个表中字段过多,我们可以采用纵切割,适度冗余减少表关联查询,避免过多的联查,设计合理的表关系,适当建立索引,但是不能每个字段都建立索引,因为索引也要占用一定的物理存储空间,而且索引也需要动态维护,增加索引虽然可以提高查询速度,但是如果索引过多就会降低增删改的速度,写sql的时候也要注意,尽可能不要写一些让索引失效的sql,例如:索引的字段不能为空,不能进项模糊搜索,不能进项逻辑运算,不能使用函数,给索引查询的值应是已知数据,不能是未知字段值。也可以使用force(fou si)强制走索引,咱们常用的索引包括,单个索引、唯一索引、复合索引,单个索引就是创建的索引中只包含一个字段,复合索引是创建的一个索引中包含多个字段,创建索引:create index index_name on table_name(column_name)

怎么防止sql注入

  1. 永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。

(1).使用PreparedStatement(pu pei er de si de te men ci)

sql注入只对sql语句的准备(编译)过程有破坏作用而PreparedStatement(pu pei er de si de te men ci)已经准备好了,执行阶段只是把输入串作为数据处理, 而不再对sql语句进行解析,准备,因此也就避免了sql注入问题.

(2).使用正则表达式过滤传入的参数

(3).字符串过滤

(4).jsp中调用该函数检查是否包函非法字符

(5).JSP页面判断代码 ”‘”,”\\”,”/”

2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把机密信息直接存放,加密或者hash(ha )掉密码和敏感的信息。

5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值