私は今 mysql: multiple indexes advicemysqlの:削除クエリでのインデックスは
私は少し別の問題に焦点を当てたいと思いインデックスに提案を求め、ここでクエリを選択しました:私もで行の多くを削除する必要があります同じ時間(あなたが頼む場合には、私のdbは地図作成ツールをサポートしているので、たくさんの挿入と削除があり、ユーザーがマップ要素を追加したり削除したりする度に再挿入します。 インデックスは削除にも使用されますか?私は、テーブル1を新しいテーブル2にコピーして、削除されていないすべての要素を除外することができると想像しました(selectを使用しています)、古いtable1を削除してtable2をtable1にコピーすると、table1は必要な行だけで終わります。もちろん、削除操作がインデックスを使用する場合、selectがこれを行うのと同じ方法では無駄です。私は非常に大きなテーブルが何百万行に達するかもしれないと強調します。 最良のアプローチは何ですか?
編集:これはショー作成テーブルです
|地図| map
(
px
NULL進(7,3)NOT NULL、
py
進(7,3)NOT、
pz
進(7,3)NOT NULL、
rx
進(7,3)NOTにはCREATE TABLE 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)NULL NOT、
b
TINYINT(1)NULL NOT、
c
TINYINT(1)NOT NULL、
d
TINYINT(1)NULL NOT 、
e
TINYINT(1)NOT NULL、
f
TINYINT(1)NOT NULL、
g
TINYINT(1)NOT NULL、
h
TINYINT(1)NULL NOT、
i
TINYINT(1)NULL NOT、
j
TINYINT(1)NULL NOT、
k
TINYINT(1)NULL NOT、
l
TINYINT(1)NULL NOT、
m
テキスト、
KEY a
(a
)、
KEY b
(b
)、
KEY c
(c
)、
KEY d
(d
)
)ENGINE = InnoDB DEFAULT CHARSET = latin1 |
スタックオーバーフローは、コードの記述方法に関する提案を得る場所ではありません。あなたがしたいことを考え、コードをどのように動作させるか、最も効率的な方法が何であり、コーディングするかを計画します。紙とペンを使って、創造的である。簡単な方法を選択しないでください。繰り返しますが、これは他の人がコードを書く方法を教えてくれる場所ではありません。将来他の人に役立つと思われる質問がある場合は、編集して再投稿してください。それ以外の場合は、この質問を削除するようアドバイスします。 –
私の要求はコーディングに関するものであり、実際には私のコードを扱うことができません。私のdbは私に頭痛を与えています。私の質問は非常に高いレベルの概念とベストプラクティスです。 –
インデックス作成の問題(現時点では)を無視して、 'DELETE'の外観を見てみましょう。 –