欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
MySQL INSERT的4種形態(tài)

墨墨導讀:MySQL中常用的四種插入數據的語(yǔ)句:insert ,insert select,replace into,insert into on duplicate key update,以下詳述這四種插入數據的語(yǔ)句,希望可以幫助到大家。

INSERT語(yǔ)句是最常見(jiàn)的SQL語(yǔ)句之一,MySQL中INSERT有其他形態(tài)的插入數據方式。下面了解一下MySQL中常用的四種插入數據的語(yǔ)句:

INSERT INTO

1. insert into表示插入數據,數據庫會(huì )檢查主鍵(PrimaryKey),如果出現重復會(huì )報錯;除了這個(gè)之外還有一些配合的參數。

語(yǔ)法如下:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_name [, partition_name] ...)] [(col_name [, col_name] ...)] {VALUES | VALUE} (value_list) [, (value_list)] ... [ON DUPLICATE KEY UPDATE assignment_list]

  • DELAYED:
    是立刻返回一個(gè)標識,告訴上層程序,數據已經(jīng)插入了,當表沒(méi)有被其它線(xiàn)程使用時(shí),此行被插入,真實(shí)插入時(shí)間就不可控了。所以這樣的寫(xiě)法對數據的安全性是沒(méi)有保障的。
    延遲插入和替換在MySQL 5.6中是不推薦的。在MySQL 5.7,MySQL 8.0中,不支持延遲。服務(wù)器識別但忽略DELAYED關(guān)鍵字,將插入處理為非延遲插入,并生成er_warn_legacy_syntax_convert警告(“不再支持延遲插入”)。語(yǔ)句被轉換為INSERT”)。DELAYED關(guān)鍵字計劃在未來(lái)的版本中刪除。

  • LOW_PRIORITY:
    插入的執行將被延遲,直到?jīng)]有其他客戶(hù)端從表中讀取數據。這包括在現有客戶(hù)端正在讀取時(shí)以及INSERT LOW_PRIORITY語(yǔ)句正在等待時(shí)開(kāi)始讀取的其他客戶(hù)端。因此,對于發(fā)出INSERT LOW_PRIORITY語(yǔ)句的客戶(hù)機,可能要等待很長(cháng)時(shí)間。
    LOW_PRIORITY只影響只使用表級鎖的存儲引擎(如MyISAM、內存和合并)。
    LOW_PRIORITY通常不應該用于MyISAM表,因為這樣做會(huì )禁用并發(fā)插入

  • HIGH_PRIORITY:
    如果指定了HIGH_PRIORITY,同時(shí)服務(wù)器采用–low-priority-updates選項啟動(dòng),則HIGH_PRIORITY將覆蓋–low-priority-updates選項。這么做還會(huì )導                         致同時(shí)進(jìn)行的插入被取消。
    【 low_priority_updates:如果設置為1,所有插入、更新、刪除和鎖表寫(xiě)語(yǔ)句都將等待,直到受影響的表上沒(méi)有未決的選擇或鎖表讀取。使用{INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY…僅降低一個(gè)查詢(xún)的優(yōu)先級。這個(gè)變量只影響只使用表級鎖的存儲引擎(如MyISAM、MEMORY和MERGE)MySQL的merge引擎類(lèi)型允許把許多結構相同的表合并為一個(gè)表,Merge表有點(diǎn)類(lèi)似于視圖?!?/span>

  • IGNORE:
    insert ignore表示,如果中已經(jīng)存在相同的記錄,則忽略當前新數據,主鍵和唯一鍵為基準;

mysql> insert ignore tinsert(id,name) values(3,'D');Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> show warnings;+---------+------+---------------------------------------+| Level | Code | Message |+---------+------+---------------------------------------+| Warning | 1062 | Duplicate entry '3' for key 'PRIMARY' |+---------+------+---------------------------------------+

INSERT INTO SELECT

把一張表的字段數據導入到另一張表中,執行語(yǔ)句會(huì )把整個(gè)數據會(huì )打包成一個(gè)事務(wù)執行。

注意:當從同一個(gè)表中選擇和插入時(shí),MySQL創(chuàng )建一個(gè)內部臨時(shí)表來(lái)保存SELECT中的行,然后將這些行插入到目標表中。但是,不能使用INSERT INTO t…選擇……當t是臨時(shí)表時(shí),從t開(kāi)始,因為臨時(shí)表不能在同一語(yǔ)句中被引用兩次。

REPLACE INTO

replace into 跟 insert 功能類(lèi)似,不同點(diǎn)在于:replace into 首先嘗試插入數據到表中,
1. 如果發(fā)現表中已經(jīng)有此行數據(根據主鍵或者唯一索引判斷)則先刪除此行數據,然后插入新的數據。
2. 否則,直接插入新數據。
3. REPLACE,您必須同時(shí)擁有表的INSERT,UPDATE,DELETE權限。

語(yǔ)法:

REPLACE [LOW_PRIORITY | DELAYED] [INTO] tbl_name [PARTITION (partition_name [, partition_name] ...)] [(col_name [, col_name] ...)] {VALUES | VALUE} (value_list) [, (value_list)] ...

注意:插入數據的表必須有主鍵或者是唯一索引!否則的話(huà),replace into 會(huì )直接插入數據,這將導致表中出現重復的數據。

1. 下面看看binlog 解析:主鍵和唯一鍵同事存在的時(shí)候語(yǔ)句不一樣。
主鍵:是進(jìn)行update操作。
主鍵+唯一鍵:delete+insert操作。

2. 但對于同一個(gè)數據所有行都一樣的時(shí)候replace into就不會(huì )進(jìn)行更新操作。

INSERT INTO ON DUMPLICATE KEY UPDATE

ON DUPLICATE KEY UPDATE語(yǔ)句,并且要插入的行將導致惟一索引或主鍵中出現重復值,則會(huì )對舊行進(jìn)行更新。但主鍵和唯一鍵同事存在的時(shí)候,選擇主鍵。
實(shí)際驗證流程如下:

總結

從基本Insert延伸到另外3種方式,理解了其用法,非常重要的。通過(guò)了解,可以在實(shí)際環(huán)境中有效的利用起來(lái),要是盲目的投入使用,就會(huì )存在性能問(wèn)題。

1. 在實(shí)際sysbench壓測中,硬件配置比較好的情況,混合&插入模式下 MySQL的單臺TPS能到 1w~6w的性能。insert也是有極限的,超過(guò)這個(gè)范圍的時(shí)候,會(huì )存在延遲等性能瓶頸。
2. REPLACE INTO性能中 delete insert索引頁(yè)分裂可能非常嚴重。需要注意
3. INSERT ON DUPLICATE KEY UPDATE如果一個(gè)表定義有多個(gè)唯一鍵或 主鍵同時(shí)存在時(shí),是不安全的,這會(huì )引發(fā)操作錯誤,導致數據處理錯誤。
4. INSERT SELECT是 表之間遷移數據的很好的方式,但需要用帶索引的字段進(jìn)行條件和排序限制。除此之外數據量多的時(shí)候,可以理解成一個(gè)大事務(wù)。

墨天輪原文鏈接:https://www.modb.pro/db/28662(復制到瀏覽器中打開(kāi)或者點(diǎn)擊“閱讀原文”)

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
MySQL常用HINT分享
mysql 常用hint
MySQL大數據量快速插入方法和語(yǔ)句優(yōu)化
分庫分表全局ID方案(一)
MySQL基礎:DML語(yǔ)句
數據庫引擎 MyIASM /InnoDB
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久