成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL鎖表在那些情況中是不利的?

數(shù)據(jù)庫(kù) MySQL
我們你今天主要向大家描述的是什么是MySQL鎖表,以及MySQL鎖表的實(shí)際應(yīng)用,在什么情況下對(duì)于MySQL鎖表是不利的,以下就有詳細(xì)內(nèi)容。

以下的文章主要是對(duì)MySQL鎖表的概念的介紹,以及介紹MySQL表鎖在什么設(shè)想的情況下就不利了,如果你對(duì)MySQL表鎖的相關(guān)內(nèi)容感興趣的話,以下的文章就是主要內(nèi)容介紹,望你在瀏覽之后會(huì)有所收獲。

MySQL鎖表

為了能有快速的鎖,MySQL除了 InnoDB 和 BDB 這兩種存儲(chǔ)引擎外,所有的都是用表級(jí)鎖(而非頁(yè)、行、列級(jí)鎖)。

對(duì)于 InnoDB 和 BDB 表,MySQL鎖表只有在指定用 LOCK TABLES 鎖表時(shí)才使用表級(jí)鎖。在這兩種表中,建議最好不要使用 LOCK TABLES,因?yàn)?InnoDB 自動(dòng)采用行級(jí)鎖,BDB 用頁(yè)級(jí)鎖來(lái)保證事務(wù)的隔離。

如果數(shù)據(jù)表很大,那么在大多數(shù)應(yīng)用中表級(jí)鎖會(huì)比行級(jí)鎖好多了,不過(guò)這有一些陷阱。

表級(jí)鎖讓很多線程可以同時(shí)從數(shù)據(jù)表中讀取數(shù)據(jù),但是如果另一個(gè)線程想要寫數(shù)據(jù)的話,就必須要先取得排他訪問(wèn)。正在更新數(shù)據(jù)時(shí),必須要等到更新完成了,其他線程才能訪問(wèn)這個(gè)表。

更新操作通常認(rèn)為比讀取更重要,因此它的優(yōu)先級(jí)更高。不過(guò)最好要先確認(rèn),數(shù)據(jù)表是否有很高的 SELECT 操作,而更新操作并非很‘急需’。

表鎖鎖在一個(gè)線程在等待,因?yàn)榇疟P空間滿了,但是卻需要有空余的磁盤空間,這個(gè)線程才能繼續(xù)處理時(shí)就有問(wèn)題了。這種情況下,所有要訪問(wèn)這個(gè)出問(wèn)題的表的線程都會(huì)被置為等待狀態(tài),直到有剩余磁盤空間了。

MySQL表鎖在以下設(shè)想情況中就不利了:

一個(gè)客戶端提交了一個(gè)需要長(zhǎng)時(shí)間運(yùn)行的 SELECT 操作。

其他客戶端對(duì)同一個(gè)表提交了 UPDATE 操作,這個(gè)客戶端就要等到 SELECT 完成了才能開(kāi)始執(zhí)行。

其他客戶端也對(duì)同一個(gè)表提交了 SELECT 請(qǐng)求。由于 UPDATE 的優(yōu)先級(jí)高于 SELECT,所以 SELECT 就會(huì)先等到 UPDATE 完成了之后才開(kāi)始執(zhí)行,它也在等待第一個(gè) SELECT 操作。

下列所述可以減少表鎖帶來(lái)的資源爭(zhēng)奪:

讓 SELECT 速度盡量快,這可能需要?jiǎng)?chuàng)建一些摘要表。

啟動(dòng) mysqld 時(shí)使用參數(shù) --low-priority-updates。這就會(huì)讓更新操作的優(yōu)先級(jí)低于 SELECT。這種情況下,在上面的假設(shè)中,第二個(gè) SELECT 就會(huì)在 INSERT 之前執(zhí)行了,而且也無(wú)需等待第一個(gè)SELECT 了。

可以執(zhí)行 SET LOW_PRIORITY_UPDATES=1 命令,指定所有的更新操作都放到一個(gè)指定的鏈接中去完成。

用 LOW_PRIORITY 屬性來(lái)降低 INSERT,UPDATE,DELETE 的優(yōu)先級(jí)。

用 HIGH_PRIORITY 來(lái)提高 SELECT 語(yǔ)句的優(yōu)先級(jí)。

從MySQL 3.23.7 開(kāi)始,可以在啟動(dòng) mysqld 時(shí)指定系統(tǒng)變量 max_write_lock_count 為一個(gè)比較低的值,它能強(qiáng)制臨時(shí)地提高表的插入數(shù)達(dá)到一個(gè)特定值后的所有 SELECT 操作的優(yōu)先級(jí)。它允許在 WRITE 鎖達(dá)到一定數(shù)量后有 READ 鎖。

當(dāng) INSERT 和 SELECT 一起使用出現(xiàn)問(wèn)題時(shí),可以轉(zhuǎn)而采用 MyISAM 表,它支持并發(fā)的SELECT 和 INSERT 操作。

當(dāng)在同一個(gè)表上同時(shí)有插入和刪除操作時(shí),INSERT DELAYED 可能會(huì)很有用。

當(dāng) SELECT 和 DELETE 一起使用出現(xiàn)問(wèn)題時(shí),DELETE 的 LIMIT 參數(shù)可能會(huì)很有用。

執(zhí)行 SELECT 時(shí)使用 SQL_BUFFER_RESULT 有助于減短MySQL鎖表的持續(xù)時(shí)間.

可以修改源代碼 `mysys/thr_lock.c',只用一個(gè)所隊(duì)列。這種情況下,寫鎖和讀鎖的優(yōu)先級(jí)就一樣了,這對(duì)一些應(yīng)用可能有幫助。

【編輯推薦】

  1. MySQL 備份和其恢復(fù)機(jī)制原理簡(jiǎn)述
  2. Mysql+php5+apache的安裝手記在linux下
  3. MySQL字符串值的實(shí)際應(yīng)用
  4. 用MySQL 數(shù)字類型如何正確的轉(zhuǎn)換函數(shù)
  5. MySQL SHOW INDEX語(yǔ)法的實(shí)際應(yīng)用

 

責(zé)任編輯:佚名 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2021-06-27 17:16:06

云安全云計(jì)算網(wǎng)絡(luò)安全

2010-05-31 12:31:42

MySQL建立索引

2010-07-30 09:49:05

2010-03-11 14:46:49

無(wú)線交換機(jī)

2025-02-10 09:58:48

2024-03-04 00:01:00

鎖表鎖行MySQL

2010-10-14 16:18:21

MySQL表鎖情況

2022-02-08 17:39:04

MySQL服務(wù)器存儲(chǔ)

2010-05-18 18:39:27

Mysql臨時(shí)表

2020-02-02 13:59:59

MySQL數(shù)據(jù)庫(kù)線程

2021-07-07 10:45:20

MySQL表級(jí)鎖MyISAM

2010-11-22 14:27:05

MySQL鎖表

2020-02-06 10:02:45

MySQL數(shù)據(jù)庫(kù)全局鎖

2024-12-16 17:02:58

MySQLInnoDB數(shù)據(jù)庫(kù)

2021-08-11 21:46:47

MySQL索引join

2024-04-03 09:50:33

MySQLMDL事務(wù)

2024-11-29 07:38:12

MySQL數(shù)據(jù)庫(kù)

2024-03-04 07:37:40

MySQL記錄鎖

2023-01-27 20:59:19

行鎖表鎖查詢

2018-07-31 10:10:06

MySQLInnoDB死鎖
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人夜晚看av | 亚洲综合中文字幕在线观看 | 国产偷录叫床高潮录音 | 亚洲精品国产成人 | 欧美日一区二区 | 一级大黄 | 色综合天天综合网国产成人网 | 欧美视频免费在线观看 | 日韩免费毛片 | 青青久草 | 91精品国产综合久久久久久漫画 | 日本三级精品 | 操射视频| 久久久久国产精品 | 国产在线一级片 | 日韩福利在线 | 国产精品一区在线观看 | 精久久| 亚洲最大福利网 | 欧美性另类 | 欧美a在线 | 日韩中文字幕在线观看 | 在线日韩福利 | 国产一区二区在线观看视频 | 免费成人高清在线视频 | 日韩成人免费 | 国产区精品| 欧美精品综合在线 | 国产成人免费视频网站高清观看视频 | 精品国产一区二区三区久久久蜜月 | 亚洲国产精品成人久久久 | 国产一区二区精华 | 欧美一区二区三区精品 | 成人三级在线观看 | 国产高清在线视频 | 精久久久 | 亚洲成av人片在线观看 | 日韩欧美在线观看 | 国产精品成人在线 | 亚洲欧美综合网 | 精品二区|