关系型数据库ACID
原子性:事务的操作要么全部做完,要么都不做,一旦操作失败,整个事务失败,需要回滚
一致性:数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
隔离性:如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响
持久性:指一旦事务提交后,它所做的修改将会永久的保存在数据库上,不会丢失
数据库连接池:
数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池,由应用程序动态地对池中的连接进行申请、使用和释放
数据库执行流程:
1.TCP建立连接的三次握手 2.MySQL认证的三次握手 3.真正的SQL执行 4.MySQL的关闭 5.TCP的四次握手关闭
缺点:网络IO较多 数据库的负载较高 响应时间较长 应用频繁的创建连接和关闭连接,导致临时对象较多 在关闭连接后,会出现大量TIME_WAIT 的TCP状态
数据库连接池:第一次访问的时候,需要建立连接。 但是之后的访问,均会复用之前创建的连接,直接执行SQL语句。
优点:减少了网络开销 系统的性能会有一个实质的提升 没了麻烦的TIME_WAIT状态
数据库的类型:
关系型:Orcale、SQL serverI、BM DB2、Sybase
非关系型:Redis(键值型)、HBase(列存储)、MongoDB