找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
尊貴會員無限看帖不用回覆認識好友、聊天,分享生活趣事安全提問(回答) 和 永久尊貴會員 事宜
催眠無碼流出一拳超人上原亞衣259luxu高中office
氏持ち後七龍珠超笑波惡靈古堡愉月綴rct 裸npjs 019

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[簡]狼與辛香料 Merch

[簡]狼與辛香料 Merch

[繁]無職轉生 第二季1

見死不救到這種地步

[繁]轉生貴族憑鑑定技

石碇國道5號 女警處理
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 4940|回復: 8
打印上一主題下一主題

[討論]同樣是資料庫 delete 的話題[複製鏈接]

  專 家(12000/24000)

把不起妹妹就巴頭

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
749
積分
19903 點
潛水值
30348 米
跳轉到指定樓層
樓主
發表於 2016-3-19 04:44 AM|只看該作者|倒序瀏覽
各位來討論看看

相信大家一定都在專案裡做過需要做多筆刪除的機制
而實現多筆刪除的方式,歸納起來也就只有兩種

第一種是循環敘述法,也就是藉由網頁程式的迴圈來跑刪除的SQL敘述 (刪幾筆資料,網頁程式就處理SQL請求幾次)

第二種是鍵值集合法,也就是用 SQL 敘述的 IN 來達成效果。 (網頁程式端只需要執行一次處理SQL的請求)

...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0
先生晦跡臥山林,三顧欣逢賢主尋;
魚到南陽方得水,龍飛天外便為霖。
託孤既盡慇懃禮,報國還傾忠義心;
前後出師遺表在,令人一覽淚沾襟。

使用道具檢舉

Rank: 1

帖子
324
積分
191 點
潛水值
14280 米
頭香
發表於 2016-3-20 10:22 PM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
這我是看資料量跟速度要求來評估
1. 刪除筆數不多、速度不講究、刪除規則複雜的,優先考慮用程式端來控制刪除,未來接手的人會比較看得懂。

2. 刪除資料筆數太多、刪除規則簡單、效能需求的情況下,就會考慮直接用SQL來做,但是用IN的話,我記得超過一定筆數好像撐不住....

最好的方式是搞出一個好一點的codition,盡量不要用where in的方式,靠sql能直接整批刪除最好。
...
瀏覽完整內容,請先 註冊登入會員
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

  專 家(12000/24000)

把不起妹妹就巴頭

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
749
積分
19903 點
潛水值
30348 米
3
發表於 2016-3-21 02:47 AM|只看該作者
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
sheauren 發表於 2016-3-20 10:22 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

這我是看資料量跟速度要求來評估
1. 刪除筆數不多、速度不講究、刪除規則複雜的,優先考慮用程式端來控制刪 ...

...
瀏覽完整內容,請先 註冊登入會員
先生晦跡臥山林,三顧欣逢賢主尋;
魚到南陽方得水,龍飛天外便為霖。
託孤既盡慇懃禮,報國還傾忠義心;
前後出師遺表在,令人一覽淚沾襟。
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

Rank: 1

帖子
324
積分
191 點
潛水值
14280 米
4
發表於 2016-3-21 07:46 AM|只看該作者
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
hsw1976 發表於 2016-3-21 02:47 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

IN 確實是會有效能問題,一般為了效能考量,也都會設法拆成獨立的 SQL 敘述

突然想到還有一種方式:欄位 ...

...
瀏覽完整內容,請先 註冊登入會員

點評

hsw1976 其實在某些情況下,LIKE 是可以適度開發使用,沒必要完全 ban 掉  發表於 2016-5-7 11:55 PM
hsw1976 還有一種變形,也是利用SQL敘述的多樣性,DELETE FROM Select .....  發表於 2016-5-7 11:54 PM
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
663
積分
1128 點
潛水值
20810 米
5
發表於 2016-3-21 11:17 AM|只看該作者
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
我待過的2家公司都是跑delete_flag的路線, 因為有個紀錄還是保險些.
如果真的要刪, 就是用迴圈那個而已, 不過是在server端(PHP等)做, 網頁端(JS)只發送一次請求.

看你的敘述好像也能夠寫成IN的批次迴圈, 就是集合例如20筆一起用IN刪除.
話說你們有做cascade delete的嗎? 這個用IN來做會比較快?




使用道具檢舉

  專 家(12000/24000)

把不起妹妹就巴頭

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
749
積分
19903 點
潛水值
30348 米
6
發表於 2016-5-7 11:52 PM|只看該作者
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
theloserbm 發表於 2016-3-21 11:17 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

我待過的2家公司都是跑delete_flag的路線, 因為有個紀錄還是保險些.
如果真的要刪, 就是用迴圈那個而已, 不 ...

cascade delete? 串接式刪除法?這是什麼概念?能否介紹一下?
...
瀏覽完整內容,請先 註冊登入會員

點評

theloserbm 就是你把主要的資料刪除時, 自動把以這筆資料為primary key的其他table的資料自動刪除.  發表於 2016-5-9 11:09 AM
先生晦跡臥山林,三顧欣逢賢主尋;
魚到南陽方得水,龍飛天外便為霖。
託孤既盡慇懃禮,報國還傾忠義心;
前後出師遺表在,令人一覽淚沾襟。

使用道具檢舉

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
7565
積分
4321 點
潛水值
34960 米
7
發表於 2016-5-8 12:47 AM|只看該作者
本帖最後由 chevylin0802 於 2016-5-8 12:49 AM 編輯

就我所知道的國外行業的習慣
並不會把SQL的語法直接曝露在server上的腳本程式裏
這裏所指的腳本程式可能是JAVA, PHP, Python或者是其他
通常都會採取呼叫Store Procedure的執行方式
至於Store Procedure裏面怎麼寫
就成了資料庫設計師的Know How

基本上
在國外就連Modify一筆資料
...
瀏覽完整內容,請先 註冊登入會員
系統已重置禁訪用戶到普通用戶和密碼一次
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

  專 家(12000/24000)

把不起妹妹就巴頭

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
749
積分
19903 點
潛水值
30348 米
8
發表於 2016-7-31 01:16 AM|只看該作者
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
theloserbm 發表於 2016-3-21 11:17 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

我待過的2家公司都是跑delete_flag的路線, 因為有個紀錄還是保險些.
如果真的要刪, 就是用迴圈那個而已, 不 ...
話說你們有做cascade delete的嗎? 這個用IN來做會比較快?
...
瀏覽完整內容,請先 註冊登入會員
先生晦跡臥山林,三顧欣逢賢主尋;
魚到南陽方得水,龍飛天外便為霖。
託孤既盡慇懃禮,報國還傾忠義心;
前後出師遺表在,令人一覽淚沾襟。
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
123
積分
1490 點
潛水值
22145 米
9
發表於 2016-8-3 10:21 PM|只看該作者
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
where in 會用到 range select
效能應該不會很高
好一點的作法是讓每筆資料都有 uniqe key 或是特殊的 condition
且這些 key / condition 都有建立 index

不然還有一個方法
就是將多個 delete SQL 塞在同一個 transaction 裡面
N 筆資料全部刪除以後再一同更新一次 index file
速度會快一些

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部