我問過一個建議的指標,在這裏選擇查詢 mysql: multiple indexes adviceMySQL的:索引中刪除查詢
現在我想專注於一個稍微不同的問題:我還可以在刪除大量的行同一時間(如果你問,我的數據庫支持地圖創建工具,所以你有很多的插入和刪除,並重新插入等等,就像用戶添加和刪除地圖元素一樣多)。 在刪除中是否也使用索引?我想我可以將table1複製到一個新的table2上,但不包括所有未刪除的元素(所以我使用select),刪除舊的table1,然後將table2複製到table1中,這樣table1最終只有它所需的行。當然,如果刪除操作使用索引的方式與select相同,那麼這是無用的。我強調,非常大的表可能會達到數百萬行。 什麼是最好的方法?
編輯:這是節目創建表
|地圖| CREATE TABLE map
(
px
十進制(7,3)NOT NULL,
py
十進制(7,3)NOT NULL,
pz
十進制(7,3)NOT NULL,
rx
十進制(7,3)NOT NULL,
ry
十進制(7,3)NOT NULL,
rz
十進制(7,3)NOT NULL,
sx
十進制(7,3)NOT NULL,
sy
十進制(7,3)NOT NULL,
sz
十進制(7,3)NOT NULL,
a
TINYINT(1)NOT NULL,
b
TINYINT(1)NOT NULL,
c
TINYINT(1)NOT NULL,
d
TINYINT(1)NOT NULL ,
e
TINYINT(1)NOT NULL,
f
TINYINT(1)NOT NULL,
g
TINYINT(1)NOT NULL,
h
TINYINT(1)NOT NULL,
i
TINYINT(1)NOT NULL,
j
TINYINT(1)NOT NULL,
k
TINYINT(1)NOT NULL,
l
TINYINT(1)NOT NULL,
m
文本,
KEY a
(a
),
KEY b
(b
),
KEY c
(c
),
KEY d
(d
)
)ENGINE = InnoDB DEFAULT CHARSET = latin1 |
堆棧溢出不是一個可以獲得關於如何編寫代碼的建議的地方。想想你想做什麼,計劃你想要你的代碼如何工作,最有效的方法是什麼,並進行編碼。使用紙和筆,要有創意。不要選擇簡單的方法。再次,這不是別人會告訴你如何編寫代碼的地方。如果你有一個問題,你認爲將來可能會幫助其他人,那麼編輯並轉發。否則,我會建議你刪除這個問題。 –
我不同意我的要求是關於編碼,實際上我可以處理我的代碼,我的數據庫是給我一些頭痛的問題,我的問題是關於非常高層次的概念和最佳實踐。 –
忽略索引問題(暫時),讓我們看看'DELETE'的外觀。 –