質問編集履歴

2

コードブロックを追加

2020/06/23 23:16

投稿

mikan123
mikan123

スコア1

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- 外部キーの設定にあたって、CONSTRAINTを介すとインデックスが自動で貼られ、介さないと貼られないという現象を見つけました。
7
+ 外部キーの設定にあたって、`CONSTRAINT`を介すとインデックスが自動で貼られ、介さないと貼られないという現象を見つけました。
8
8
 
9
9
 
10
10
 
@@ -16,11 +16,11 @@
16
16
 
17
17
  【1】
18
18
 
19
- なぜCONSTRAINTを介さないとインデックスが貼られないのでしょうか?
19
+ なぜ`CONSTRAINT`を介さないとインデックスが貼られないのでしょうか?
20
-
21
-
22
-
20
+
21
+
22
+
23
- [MySQLでは外部キーを設定すると自動でインデックスが貼られる機能があるはず](http://kwski.net/mysql/602/)ですが、以下のCREATE文の
23
+ [MySQLでは外部キーを設定すると自動でインデックスが貼られる機能があるはず](http://kwski.net/mysql/602/)ですが、以下の`CREATE`文の
24
24
 
25
25
  `FOREIGN KEY (first_ID) REFERENCES wp_firsts(ID),`
26
26
 
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- MariaDBだから自動で貼られないのでしょうか?しかしCONSTRAINTを介した
31
+ MariaDBだから自動で貼られないのでしょうか?しかし`CONSTRAINT`を介した
32
32
 
33
33
  `CONSTRAINT fk_wp_seconds_01 FOREIGN KEY (first_ID) REFERENCES wp_firsts(ID)`
34
34
 
@@ -38,7 +38,7 @@
38
38
 
39
39
  【2】
40
40
 
41
- 使い道のないインデックスは貼りたくないのですが、外部キーには名前をつけたいです。しかしCONSTRAINTを介さないと名前をつけることはできないと思うのですが、介せばインデックスが自動で貼られてしまいます。このジレンマを解消し、外部キーに名前をつけつつ、インデックスを貼らない方法はあるでしょうか?
41
+ 使い道のないインデックスは貼りたくないのですが、外部キーには名前をつけたいです。しかし`CONSTRAINT`を介さないと名前をつけることはできないと思うのですが、介せばインデックスが自動で貼られてしまいます。このジレンマを解消し、外部キーに名前をつけつつ、インデックスを貼らない方法はあるでしょうか?
42
42
 
43
43
 
44
44
 
@@ -58,11 +58,11 @@
58
58
 
59
59
  ###発生している問題
60
60
 
61
- 該当のソースコードを実行しますと、wp_secondsテーブルに作成されるインデックスは下図の3つとなります。
61
+ 該当のソースコードを実行しますと、`wp_seconds`テーブルに作成されるインデックスは下図の3つとなります。
62
-
63
-
64
-
62
+
63
+
64
+
65
- CONSTRAINTを介して作成された外部キー(fk_wp_seconds_01)はインデックスが貼られ、介さない方の外部キーでは貼られないのです。
65
+ `CONSTRAINT`を介して作成された外部キー(`fk_wp_seconds_01`)はインデックスが貼られ、介さない方の外部キーでは貼られないのです。
66
66
 
67
67
  ![イメージ説明](ba8f08bceac423827df33e1a191bc2f5.jpeg)
68
68
 
@@ -70,7 +70,7 @@
70
70
 
71
71
  ### 該当のソースコード
72
72
 
73
- wp_firstsテーブルと、そのIDカラムを外部キーに持つwp_secondsテーブルのCREATE文になります。
73
+ `wp_firsts`テーブルと、その`ID`カラムを外部キーに持つ`wp_seconds`テーブルの`CREATE`文になります。
74
74
 
75
75
  ```PHP
76
76
 
@@ -164,7 +164,7 @@
164
164
 
165
165
  ### 試したこと
166
166
 
167
- wp_secondsテーブルに対しSHOW CREATE TABLEを実行すると以下の出力を得ましたが、さらに訳の分からないことになりました。
167
+ `wp_seconds`テーブルに対し`SHOW CREATE TABLE`を実行すると以下の出力を得ましたが、さらに訳の分からないことになりました。
168
168
 
169
169
 
170
170
 
@@ -194,11 +194,11 @@
194
194
 
195
195
  ```
196
196
 
197
- この結果によれば、外部キーの設定はいずれもCONSTRAINTを介してされているのです。
197
+ この結果によれば、外部キーの設定はいずれも`CONSTRAINT`を介してされているのです。
198
-
199
-
200
-
198
+
199
+
200
+
201
- ならばなぜ、fk_wp_seconds_01だけインデックスが貼られ、wp_seconds_ibfk_1は貼られないのか…訳がわからなくなてきました。
201
+ ならばなぜ、`fk_wp_seconds_01`だけインデックスが貼られ、`wp_seconds_ibfk_1`は貼られないのか…訳がわからなくなてきました。
202
202
 
203
203
  ### 補足情報(FW/ツールのバージョンなど)
204
204
 

1

知りたいことを修正

2020/06/23 23:16

投稿

mikan123
mikan123

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提
2
2
 
3
- WordPressでCREATE TABLEしています。
3
+ WordPressで`CREATE TABLE`しています。
4
4
 
5
5
 
6
6
 
@@ -16,7 +16,23 @@
16
16
 
17
17
  【1】
18
18
 
19
- なぜCONSTRAINTを介さないとインデックスが貼られないのでしょうか?[MySQLでは外部キーを設定すると自動でインデックスが貼られる機能があるはず](http://kwski.net/mysql/602/)ですが、以下のCREATE文はいかにしてその機能を逃れ、インデックスが貼られずに済んでいるのでしょうか?(MariaDBだから自動で貼られないのでしょうか?しかしCONSTRAINTを介せば自動で貼られるし、謎です。)
19
+ なぜCONSTRAINTを介さないとインデックスが貼られないのでしょうか?
20
+
21
+
22
+
23
+ [MySQLでは外部キーを設定すると自動でインデックスが貼られる機能があるはず](http://kwski.net/mysql/602/)ですが、以下のCREATE文の
24
+
25
+ `FOREIGN KEY (first_ID) REFERENCES wp_firsts(ID),`
26
+
27
+ という行での外部キー設定ではいかにしてその機能を逃れ、インデックスが貼られずに済んでいるのでしょうか?
28
+
29
+
30
+
31
+ MariaDBだから自動で貼られないのでしょうか?しかしCONSTRAINTを介した
32
+
33
+ `CONSTRAINT fk_wp_seconds_01 FOREIGN KEY (first_ID) REFERENCES wp_firsts(ID)`
34
+
35
+ という行では自動で貼られていますし、謎です。
20
36
 
21
37
 
22
38