mysql数据库的优点

mysql数据库的优点,第1张

mysql数据库的优点如下:

1、速度:运行速度快。

2、价格:MySQL对多数个人来说是免费的。

3、容易使用与其他大型数据库的设置和管理相比,其复杂程度较低,容易学习。

4、可移植性:能够工作在众多不同的系统平台上,例如:Windows、Linux、Unix、MacOS等。

5、丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Rudy和TCL等语言的APl。6、支持查询语言:MySQL可以利用标准SQL语法和支持ODBC(开放式数据库连接)的应用程序。

7、安全性和连接性十分灵活和安全的权限和密码系统,允许主机验证。连接到服务器时,所有的密码均采用加密形式,从而保证了密码安全。并且由于MySQL时网络化的,因此可以在因特网网上的任何地方访问,提高数据共享效率。

首先我们做一个模拟,执行以下的sql,其中有如下图数据:

我把执行结果按照表格如下展示:

分析:

在会话1当中,只有当会话1的事务提交后,才能查到最终会话2更改的数据。

在会话2当中,开启事务后更新数据,之后查询发现数据变成了17。

针对上面的现象我们进行个原理分析:

实际上产生上述显现是因为InnoDB采用的MVCC(多版本并发控制),其中针对每条数据会有它自己的事务id,以及一个最大事务id。针对事务中数据每次修改,会产生不同的版本。

1)假设开始id = 2的数据,其事务txid = 1000;

2)当会话1开始,此时txid变成了1001,而会话2开启,txid又变成了1002,同理会话3会变成1003,此时都生成了不同版本的快照。

3)会话1在事务当中去读取时候,采用了快照读的方式,即拿到一个1001的事务id,此时只会读取小于等于自己版本的数据,所以在事务中最终只能拿到值为17的数据。

4)会话2在更新数据的时候,采用的当前读的方式,即对数据增加X锁,获取最新的事务id,读取最新的版本数据。所以在更新之前,就读取到了age的年龄是16,之后在进行+1,得到17.

总结一下:

快照读 解决了幻读的问题,即多次读取数据不一致的问题。

update、insert、delete都会执行 当前读 ,防止并发更新数据导致数据错误,此过程或添加X锁。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/7386888.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存