zoukankan      html  css  js  c++  java
  • 数据库相关知识整理

    1、数据库索引
         索引是对数据库表中一个或者多个列的值进行排序的数据结构,以协助快速查询、更新数据库表中的数据。
    2、事务的特性
         事务简单来说:一个Session中所进行所有的操作,要么同时成功,要么同时失败。
         作为单个逻辑工作单位执行的一系列操作,满足四大特性
         ①、原子性:事务作为一个整体被执行,要么全部执行,要么全部不执行
         ②、一致性:保证数据库状态从一个一致状态转为另一个一致状态
         ③、隔离性:多个事务并发执行时,一个事务的执行不应该影响其他事务的执行
         ④、持久性:一个事务一旦提交,对数据库的修改应该永久保存
    3、事务的隔离级别
         隔离级别决定一个session中的事务可能对另一个session中的事务的影响。ANSI标准定义了4个隔离级别,MySql的InnoDB都支持,分别是:
        ①、读未提交(READ UNCOMMITTED):最低级别的隔离,运行一个事务读取另外一个事务还未提交的数据,这样可能性能提高,但是会导致脏读
        ②、读已提交(READ COMMITTED):在一个事务中只允许对其他事务已经提交的记录可见,该隔离级别不能避免不可重复读问题
        ③、可重复读(REPEATABLE READ):在一个事务开始后,其他事务对数据库的修改在本事务中不可见,知道本事务提交或者回滚。但是,其他事务的插入/删除操作是对该事务是可见的,也就是说,该隔离级别并不能避免幻象读问题。在一个事务中重复查询的结果一样,除非本身事务中更新数据库
        ④、序列化(SERIALIZABLE):最高级别的隔离,至允许事务串行执行
    4、MySql的隔离级别及事务支持
         MySql的默认隔离级别是可重复读
         MySql的事务支持不是绑定在MySql服务器本身,而是与存储引擎相关:
         MyISAM引擎:不支持事务,用于只读程序提高性能
         InnoDB引擎:MySql5.5后的默认引擎,支持ACID事务,行级锁、并发
         Berkeley DB引擎:支持事务
    5、drop、delete、truncate的区别
         drop直接删除表;delete删除表中数据,可带where字句;truncate清空表中数据,再插入时自增id又从1开始
    6、SQL语句优化策略
         ①、优化insert语句,一次插入多值;
         ②、避免在where子句中使用!=或者<>操作符,否则会放弃使用索引进行全表扫描
         ③、避免在where子句中对字段进行null值判断,否则会放弃使用索引进行全表扫描
         ④、优化嵌套查询,子查询可以用join代替
         ⑤、使用exists代替in
         ⑥、避免使用类似select * from查询
         ⑦、避免以%开头的like模糊匹配
         ⑧、避免数据类型隐式转化,如varchar不加单引号会自动转化为int型
         ⑨、联合索引,需要满足最左匹配原则,如联合索引col1,col2,col3,则索引生效的情况包括col1,col和col2,col1和col2和col3,类似col2和col3这种则索引失效。

  • 相关阅读:
    lcd驱动解析(二)
    php参数引用
    Curl来做冒烟测试
    TIB自动化测试工作室QTP脚本汇总比较有价值
    使用QTP自动化 DZ消息复选框选择实例!
    正则表达式30分钟
    sqlserver查询数据库中有多少个表
    怎样获取页面上所有链接的名称和url
    Curl 来做自动跟踪重定向
    sqlserver2008 删除指定表
  • 原文地址:https://www.cnblogs.com/conswin/p/10402597.html
Copyright © 2011-2022 走看看