zoukankan      html  css  js  c++  java
  • MySQL 相关

    MySQL相关知识

    一、表类型分析(MyISAMInnoDB的区别)

    1.存储结构

    MyISAM:每个MyISAM在磁盘上存储成三个文件,每一个文件的名字均以表名开始。扩展名支出文件类型。.frm文件存储表定义,.MYDmydata)文件存储表的数据,.MYImyindex)文件存储表的索引

    InnoDB:所有的表都存储在一个数据文件中(也有可能是多个文件,或者是独立的表文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2G

    2.存储空间

    MyISAM:可以被压缩,存储空间较小。支持三种不同的存储格式:静态表、动态表、压缩表

    InnoDB:需要更多的内存和存储,会在主内存中建立其专用的缓冲池用来高速缓冲数据和索引,但是不支持全文索引

    3.事务支持(事务的四大特性:原子性,一致性,隔离性,持久性)

    MyISAM:强调的是性能,每次查询均具有原子性,其执行速度比InnoDB类型更快,但是不提供事务支持

    InnoDB:提供事务支持,外部键等高级数据库功能,是具有事务(commit)、回滚(rollback)和崩溃修复功能(crash recovery capabilities)的事务安全(transcation-safe)型表

    4.CURD增删改查操作(createupdatereaddelete

    MyISAM:如果执行大量的select操作,MyISAM是更好的选择,因为不支持行级锁,但是在增删的时候效率就会差好多,因为MyISAM支持表级锁。相反的是InnoDB支持行级锁但是不支持表级锁,所以删除插入的时候只需要锁定行就行,效率比较MyISAM高。

    InnoDB:如果执行大量的insertupdate,处于对于性能的考虑,应该使用InnoDB

    Delete从性能上来看InnoDB更优秀,但是delete from table的时候,InnoDB不会重新建立表,而是一行一行的删除,所以在InnoDB表上如果要清空保存有大量数据的表,最好使用truncate table命令

    5.外键

    MyISAM:不支持

    InnoDB:支持

    二、数据库的特点

    1.数据结构化,具有完整性:防止数据库中存在不符合语义的数据及不正确的数据

    2.数据的共享性高、冗余度低、易扩展

    3.数据独立性高

    4.数据有DBMS统一管理和控制

    三、数据库的优化

    1.选取最适合的字段属性,尽可能减少定义字段的长度,把字段设置为NOT NULL ,但是省份这些可选的字段,尽量设置成EUNM枚举类型字段

    2.使用联合(union)来代替手动创建的临时表

    3.使用事务处理,保证数据的完整性和安全性

    4.合理使用查询语句,尽量避免全表扫描

    5.建立索引

    6.使用外键

    7.https://blog.csdn.net/u014649204/article/details/24126871

    四、SQL注入原理及如何防止SQL注入攻击

    1.SQL注入原理

    SQL命令扎入到web表单然后提交到所在页面请求(查询字符串),从而达到欺骗服务器执行恶意的SQL命令语句。它是利用现有的应用程序,将SQL语句插入到数据库中执行,所以执行的时候并非按照设计者原先意图的SQL语句进行执行查询。

    2.SQL注入攻击产生的原因

    程序并没有非常细致的过滤用户输入的数据,从而导致非法数据进入系统。SQL注入可以分为平台层注入和代码注入,平台层注入主要是由不安全的数据库配置和系统的漏洞造成的,代码注入主要是因为程序员卫队输入数据进行细致安全的检测。使得SQL注入攻击通过嵌入的方式放在了合法的HTTP提交请求中从而达到攻击者的某种意图。

    3.基本步骤

    基本步骤:

    一、找到注入点;

    二、判断当前表的字段;

    三、用联合语句查看哪几位是有效位;

    四、查看当前数据库中有哪些表;

    五、查看表中有哪些属性;

    六、查看表中具体的数据信息。

     

  • 相关阅读:
    将model注册进单例中,每次用的时候从单例里面取
    构建ASP.NET MVC4&JQuery&AJax&JSon示例
    ajax用法
    MVC 后台向前台传值,同一Controller下Action之间的传值,Controller与Controller之间的传值
    mvc5入门指南
    在EF中做数据索引
    json to Object
    ajax请求后返回的时间转换格式
    Target JRE version (1.8.0_101) does not match project JDK version (unknown), will use sources from JDK: 1.8
    Idea 配置启动JDK___在windows中使用Intellij Idea时选择自定义的64位JVM
  • 原文地址:https://www.cnblogs.com/zhangweijie01/p/10423208.html
Copyright © 2011-2022 走看看