MySQL 総合 Part26
at DB
891:NAME IS NULL
23/08/17 16:41:09.93 WcbB+pzF.net
>>886 はあるテーブルをインデックススキャンしたときと、あるテーブルを別のテーブルと結合したときの処理が同じだと言い張っているが、どこが同じなのかまったくわからない。
892:NAME IS NULL
23/08/17 17:41:18.79 .net
調べたいならまずEXPLAIN ANALYZEで比較すること
それでも原因がわからなければ
1. テーブルとインデックスの定義
2. クエリ
3. EXPLAIN ANALYZEの結果
の3点セットを貼って質問すること
893:NAME IS NULL
23/08/18 10:25:29.72 .net
EXPLAIN ANALYZE って初めて知った。 ただのexplainじゃあ無いんだな
便利な世の中になったもんだ
894:NAME IS NULL
23/08/18 16:31:33.57 .net
カラム数が4つのテーブルに対して
INSERT INTO unko VALUES (1,2,3);
ってやると当然エラーになるけど、これ回避できますか?
せめてwarningで納めてくれるような
後ろは勝手にNULLにしてくれる設定とか、そんな感じの
895:NAME IS NULL
23/08/18 17:33:15.39 .net
どういう目的でそれ実現したいの?
VALUESで書くカラムを指定するか
テーブルのカラム数を合わせるかしないと
エラーにしてくれるほうがありがたいと思うんだけど
896:NAME IS NULL
23/08/18 20:03:15.68 1cIgR2JP.net
>>894
カラムを書かない理由がわからない。
897:NAME IS NULL
23/08/18 20:05:08.64 1cIgR2JP.net
>>894
それはユーザーが書き間違ってがいる可能性があるから、構文エラーとしているんだよ。
なんかカラムがずれてないか、なんか数が合ってないぞと教えてくれている。
898:NAME IS NULL
23/08/19 03:53:26.52 .net
>>895
少ないカラムでもエラーにならないようにしたい
デフォルトはエラーでいいけどさ、設定で変更したりしてエラーにならないようにしたい
899:NAME IS NULL
23/08/19 16:57:09.75 .net
CREATE TABLE unko (
col1 int NOT NULL,
col2 int NOT NULL,
col3 int NULL,
col4 int NULL DEFAULT 100,
col5 int NOT NULL DEFAULT 200
);
↑のテーブルに INSERT INTO unko (col1, col2) VALUES (1, 2); とすれば
(1, 2, null, 100, 200)のレコードがINSERTされるのはOK?
900:NAME IS NULL
23/08/19 18:19:30.95 /V7d5gLR.net
次から次へ新しいネタを思いつくよな
901:NAME IS NULL
23/08/20 13:16:18.01 .net
>>899
(col1, col2) を省略したいんですわよ
902:NAME IS NULL
23/08/20 14:02:58.90 .net
まさかとは思うが毎回毎回手打ちしてるのか?
903:NAME IS NULL
23/08/23 12:58:41.93 .net
テーブル移行(DUMPバックアップ)とレプリケーションは
MySQLが簡単でええなw
904:NAME IS NULL
23/08/26 18:31:04.97 .net
リミットとオフセットで取得したレコードから部分的に取る処理したときって、全レコード取得するときより圧倒的にはやくなりますか(*_*)
たとえばテーブルAに1000件レコードがあって、idって主キーが1から1000まで与えられてます
主キーで昇順にして、1ページ10件を100ページ分取得したいです
この場合ページごとに10件表示になりますが、1000件表示のときのだいたい何分の一の時間がかかったのか可能な範囲で調べたいという状況が発生しました(..)
なんかいい感じのやりかたというか方針があれば教えてください!なんでもしますから!
905:NAME IS NULL
23/08/26 19:01:48.92 .net
>>904
>>892
906:NAME IS NULL
23/08/26 19:22:22.73 .net
>>905
わかりました!さっそくためします🗿
907:NAME IS NULL
23/08/26 20:25:19.70 ihJR3/H9.net
>>904
画面表示とMySQLの処理速度の関係を書いてください。
908:NAME IS NULL
23/08/26 20:37:08.76 .net
>>907
データの取得に時間かかっちゃうとその取得したデータの画面表示がもたもたしちゃいそと思ったのです
なるはやで画面表示したいのでデータ取得が速いほどたすかります
それが画面表示とSQLの処理速度の関係です(*´Д`)
1000件どーんと画面にだすのと、1ページ(10件)だけだすのとで速さがどうかわるかしりたいので調査中です(ヽ´ω`)
エクスプレイんてのをやったことないでやってみます
1000件じゃなくてもっと件数増やしてみたりしますか
909:NAME IS NULL
23/08/26 22:45:36.13 .net
EXPLAIN ANALYZEで実際にかかった時間がミリ秒で出てくるけど
そこに含まれるのはMySQL内で結果セットを準備するまでの時間だけ
クライアントへの転送時間とかは含まれてない
910:NAME IS NULL
23/08/26 22:49:44.97 ihJR3/H9.net
>>908
1,000レコードが1,000文字だったら、体感速度の違いもないかもな。
911:NAME IS NULL
23/08/26 23:50:05.87 .net
OFFSETはデータを読み込んでソートした後に指定レコード数をスキップして読み捨てるので
ページングで使う場合はページ数が大きくなればなるほど遅くなる
1000件100ページくらいなら気にする必要はないかもしれないが一応
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
251日前に更新/230 KB
担当:undef