MYSQL---存储引擎

MySQL可以将数据以不同的技术存储在文件中,这种技术就称为存储引擎。

每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。

 

MySQL支持的存储引擎有:

MyISAM

InnoDB

Memory

CSV

Archive

并发控制:当多个连接对记录进行修改时保证数据的一致性和完整性。

(假如一个用户正在删除22号记录,而另一个用户可能正在查询22号记录,这样可能会出现错误,为了避免这种错误的发生,需采用并发控制,系统会采用共享锁(读锁)和排他锁(写锁))

共享锁:在同一时间段内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化。

排他锁:在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁操作。

锁颗粒

-表锁,是一种开销最小的锁策略。(一个表只要一个锁,开销小)当一个用户对表进行写操作时,如果加了表锁的话,其他用户不能对该表进行读或写操作。

-行锁,是一种开销最大的锁策略。(一个表需要多个锁,开销大)

 

事务处理

.事物

-事物用于保证数据库的完整性

举例:转账

用户A转账200给用户B

步骤:

(1)从A账户减200元

(2)B账户加200元

任何一步出现问题都得回到初始状态

 

。事物的ACID特性

-原子性(Atomicity)

-一致性(Consistency)

-隔离性(Isolation)

-持久性(Durability)

 

。外键

-是保证数据一致的策略

。索引

-是对数据表中的一列或多列值进行排序的结构。(相当于一本书的目录)

小结:

MyISAM:存储限制可达256TB,支持索引、表级锁定、数据压缩。

InnoDB:存储限制64TB,支持事物和索引,索引颗粒为行锁。

posted @ 2015-07-27 16:15  框框A  阅读(317)  评论(0编辑  收藏  举报