今天,我将和你谈谈MySQL不支持的功能。可能很多人不太了解。为了让大家更加了解,边肖为大家总结了以下内容。希望你能从这篇文章中有所收获。
MySQL不支持的功能
这里,我们介绍在其他数据库中可用但在MySQL中不可用的函数。它描述了哪些功能被省略,以及在需要时该做什么。通常情况下,MySQL会忽略一些函数,因为它们会对性能产生负面影响。有些功能在开发人员的计划列表中。一旦找到一种方法,相应的功能就可以实现,而不会影响它们。
良好表现的目标将会实现。
子选择。子语句是嵌套在另一个SELECT语句中的SELECT语句,如以下查询所示:
从分数中选择*
事件标识输入(从事件标识中选择事件标识,事件类型='T ')
子选项打算在MySQL3.24中给出,然后就不会被忽略了。但是到那时,许多用子选择编写的查询也可以用连接编写。参见第3节。8.1“编写子选择作为连接”。
事务处理和提交/回滚。事务处理是由其他客户端作为一个整体不间断地执行的一组SQL语句。提交/回滚功能允许执行或不执行指定数量的语句。也就是说,如果事务中的任何语句失败,在该语句之前执行的所有语句都将被撤销。
YSQL自动同步单个SQL语句,以防止客户端相互干扰。(例如,两个客户端不能同时写入同一个表。)此外,使用LOCK TABLES和UNLOCK TABLES可以将几个语句组合成一个整体,这样就可以完成单个语句的并发控制无法满足的操作。MySQL与事务处理相关的问题是,它不能自动组织几条语句,如果其中一条语句失败,它也不能回滚这些语句。
为了找出事务处理为什么有用,举个例子。如果你在服装销售行业工作,每当你的销售人员进行销售时,你应该更新库存。以下示例说明了几个销售人员同时更新数据库时可能出现的问题(如果初始衬衫库存数量为4.7):
T1销售员1卖3件衬衫。
T2销售人员检索当前衬衫数量(4 7):
从库存中选择数量,其中项目='衬衫'
T3售货员2卖2件衬衫。
T4销售人员2检索当前衬衫数量(4 7)
从库存中选择数量,其中项目='衬衫'
T5销售人员1计算新库存数量为47-3=44,并将衬衫数量设置为44:
更新库存集数量=44,其中项目='衬衫'
T6销售人员2计算新的库存数量为47-2=45,并将衬衫数量设置为45:
更新库存集数量=45,其中项目='衬衫'
在这一系列活动结束时,你已经卖出了5件衬衫,但库存是45件,而不是4 2件。问题是,如果在一个语句中查看库存,而在另一个语句中更新其值,这是一个多语句事务。第二条语句中的活动取决于第一条语句中检索到的值。但是,如果独立的事务发生在重叠的时间范围内,每个事务的语句将相互交织,相互干扰。在基于事务的数据库中,每个销售人员的语句可以作为一个事务来执行,因此销售人员2的语句在销售人员1的语句完成之前不会被执行。在MySQL中,有两种方法可以实现这个目标:
方法1:整体执行一组语句。LOCK TABLES和UNLOCK TABLES可用于将语句组织在一起,并作为一个原子单元执行它们:锁定所需的表,发布查询,然后释放这些锁。这可以防止其他人在您锁定这些表时使用它们。有了表同步,库存情况如下:
T1销售员1卖3件衬衫。
T2销售人员1请求锁定并检索当前衬衫计数(47)
锁定表库存写入
从库存中选择数量,其中项目='衬衫'
T3售货员2卖2件衬衫。
看完以上,你对MySQL不支持的功能有没有更好的理解?如果您想了解更多知识或相关内容,请关注行业资讯频道,感谢您的支持。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/98512.html