Day10-解决MySQL_ERROR参考指南(锁)
2.1 锁和事务MySQL服务器有内部机制来避免用户损坏其他用户插入的数据。尽管通常情况下,这些内部机制默默而有效地运转着,以至于人们没有意识到这些安全机制也会引发你的应用程序或他人应用程序问题。因此,我先简单介绍MySQL服务器使用的并发...
2.1 锁和事务MySQL服务器有内部机制来避免用户损坏其他用户插入的数据。尽管通常情况下,这些内部机制默默而有效地运转着,以至于人们没有意识到这些安全机制也会引发你的应用程序或他人应用程序问题。因此,我先简单介绍MySQL服务器使用的并发...
2.3 事务MySQL在存储引擎级别提供事务支持。在官方提供的存储引擎中,最受欢迎的InnoDB引擎就提供了事务的支持。本书将会讨论如何解决InnoDB事务问题。在MySQL中,可以通过START TRANSACTION或BEGIN语句启动...
2.4 元数据锁为了确保数据一致性,在有其他事务使用表的情况下,对该表的DDL操作应该阻塞。从5.5.3版本开始,MySQL使用元数据锁来实现这一特性。当事务开始的时候,它会获取所有需要使用的表上的元数据锁,并在事务结束后释放锁。所有其他想...
2.5 并发如何影响性能我们刚刚讨论了当并发线程或事务产生冲突从而导致性能问题或者甚至查询中止的情况。你已经了解了SQL语句或者存储引擎设置的锁是如何影响并发线程的。这些锁是对用户可见的,尽管它们并非始终容易调试,但是很容易追踪。当应用程序...
1.8 特定于存储引擎的问题及解决方案实际上,本书讨论的任何问题在你使用的存储引擎下都可能会有细微的差别。这种情况将在本书中一直存在。本节展示一些不依赖于其他问题的存储引擎自身的特性。我们将使用针对MyISAM或InnoDB存储引擎的工具来...
1.9 许可问题MySQL有复杂的权限方案,这使得你可以精确地设置哪些用户和主机可以或不可以执行这个或那个操作。从5.5版本开始,MySQL也有了可插拔式的身份验证模式。尽管它有很多优势,但是这个方案很复杂。例如,让user1@hostA、...
1.4 获取查询信息正如前一节看到的一样,数据库会返回一些关于每个查询的重要信息,有些信息直接展现在MySQL的访问客户端中,而有些信息则需要通过如SHOW WARNINGS等命令才能得到。当从应用程序中调用SQL语句的时候,获取这些返回信...
1.5 追踪数据中的错误如果你严格地检查查询和更新的结果,就会发现很多问题,这些问题可能持续数周而未被察觉,然后慢慢变得越来越严重,直到最后无可避免地引发很多让人苦恼的问题。然而,问题确实在慢慢地接近你。有时,SELECT查询突然开始返回错...
1.6 慢查询SQL应用程序的一个常见问题就是性能退化。这一节将会介绍当你面对性能问题时的一些基本操作。不必担心细节,仅仅关注本质的思想就好。随着知识的深入,你会发现你自己变得更加训练有素,能够更加高效地使用它们。当我考虑本章应涵盖哪些问题...
1.7 当服务器无响应的时候有时候,MySQL客户端会收到严重的错误消息“在请求中丢失与服务器的连接”或者“服务器已停止”。尽管我希望你永远不会遇到这个错误,但是有所准备总是有好处的。由MySQL安装本身引起的这个问题主要有两个原因:服务器...