数据库索引

索引是对数据表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。索引有助于更快的获取信息。

索引的一个主要目的就是加快检索表中数据的方法,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。

数据库事务

数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部操作成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。事务时数据库运行中的逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。

数据库事务隔离

同一时间,只允许一个事务请求统一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转钱。

inner joinleft join

left join(左连接)返回包括左表中的所有记录和右边中联结字段相等的记录

right join(右连接)返回包含右表中所有记录和左表中联结字段相等的记录

inner join(等值连接)只返回两个表中联结字段相等的行

数据库事务的一致性

事务是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元。事务时DBMA中最基础的单位,事务不可分割。

事务具有四个特征:分别是原子性、一致性、隔离性、持续性。简称ACID。

请你说一下索引是什么,多加索引一定会好吗?

  1. 索引

    数据库索引是为了增加查询速度而对表字段附加的一种标识,是对数据库表中一列或多列的值进行排序的一种结构。

    DB在执行一条sql语句的时候,默认的方式事根据搜索条件进行全表扫描,遇到匹配条件的就加入到搜索结果集合。如果我们对某一个字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少了遍历匹配的行数,所以能明显增加查询的速度。

    优点:

    1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
    2. 可以加快数据的检索速度,这也是键索引的最主要的原因。
    3. 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
    4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
    5. 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

    缺点:

    1. 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
    2. 索引需要占物理空间,输了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要占用的空间就更大。
    3. 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
  2. 添加索引的原则

    1. 很少使用的或者参考的列不应该创建索引。

数据库

死锁怎么解决