zoukankan      html  css  js  c++  java
  • 总结一些关于操作数据库是sql语句还是存储过程问题

    总结一些关于操作数据库是sql语句还是存储过程问题

    程序中,你跟数据的交互,需要向数据库拿数据、更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式,还是存储过程方式,都是让数据库去做。
    在程序中,你如果将数据库操作那块封装成存储过程调用,以后即使换了数据库,如果存储过程不变,你的程序就不需要修改,实现的相对的隔离。

    用不用存储过程还是要看具体场合。把常用的SQL封装成存储过程中提高重用性是好,但问题是不同项目需要重用的情况本来就少,而且很多时候多个项目访问同一数据库并不合适。

    效率是另一方面,有多少复杂而且使用频率很高的sql语句?
    总的来说存储过程适合那些对性能要求高,以数据为中心,业务复杂但固定,标准化做的比较好的场合,比如银行之类的。
    对于新开发的项目,尤其是需求变化可能较大的项目,还是尽量少用存储过程。即使对性能要求高,也可以在系统稳定之后统计分析出关键、耗时的数据库操作,然后封装在存储过程中。

    使用存储过程优点

    1. 直接在程序中构造SQL的话后期维护, 比如表字段的增减, 有可能会影响到你SQL语句的可执行性, 那个时候你就必须要修改程序源码, 可能的结果是牵一发而动全身, 如果用存储过程, 那么只要更新存储过程就可以了, 便于维护!
    2. 如果不法分子破解你的程序, 存储过程是放在你的数据库服务器上的!那么光得到你的存储过程名称, 没有实际的实现代码~~所以使用存储过程的安全性相对较高!
    3. 为了防止sql注入,使用存储过程。
    4. 存储过程的执行效率较高, 速度快!复杂的查询, 对速度的要求还是有讲究的!
  • 相关阅读:
    Linux内核之 I/O多路复用
    Linux内核之 页高速缓存与页回写
    Linux内核之 块I/O层及I/O调度
    Linux内核之 文件I/O
    C++雾中风景15:聊聊让人抓狂的Name Mangling
    音频数据增强及python实现
    深度学习中“过拟合”的产生原因和解决方法
    资料-资源(不定期更新)
    论文翻译:2020_Acoustic Echo Cancellation Challenge Datasets And Testingframework
    语音信号处理概念
  • 原文地址:https://www.cnblogs.com/lisuyun/p/6053658.html
Copyright © 2011-2022 走看看