元スレMySQL 総合 Part19
mysql覧 / PC版 /みんなの評価 :
951 = :
>>950
ありがとうございます!
プログラム側で対処する事にします!
953 = :
500MBでしょ?5時間もすればおわるでしょ
954 = :
>>952
見てないけど、sql文のはじめの方でインデックスを作成してる場合は、インデックスを作成せずに create table をやると多少というかかなり速くなる
で、タプルが全部 insert された後にインデックスを追加する
(たぶん、sqlファイルの最初のcreate table 文でキーの指定をしてるので、それを全部取り除く)
あと、ファイルサイズと関係なく、MySQLはタプル(行、レコード)の数が10万を超えると、検索の方も遅くなって使い物にならなくなるので、タプルが10万を超える場合は、かなり慎重に設計や最適化をする必要がある
(ちゃんとやれば、10万以上でもそれなりに速く動く)
>>952 のダンプデータは本当に MySQL のダンプなのでしょうか?
955 = :
mysql-connector-netをダウンロードしに行ってきたんですが、
メアドでfoo.bar@site.comみたく前半でドットが入ると蹴られるのね。
956 = :
>>955
そりゃRFC違反だからな。弾きもするだろ。
957 = :
>>953
まさに5時間ぐらいでした
こんなものなのかー
インデックス削れば速くできますよね、ありがとう気づかなかった
958 = :
2分48秒でロードできたよ
MySQL 5.5.11、Core i5-2400S、Intel X25-M G2 120GB
innodb_buffer_pool_size = 2G
959 = :
>>954
タプルってtableのこと?
そういう読み方流行ってんの?
960 = :
>>958
Innodb なら log buffer sizeも関係ありそう?
まぁ、質問主がどんなSQLなんかわからんけど、1行ずつ入れると遅いし
insert .... values(),(),()
は常識だよな?
961 = :
10万程度ならインデックスなくてもそれなりに早いよな。
963 = :
>>962
Wikipediaのデータで遊びたいなら全文検索あったほうがよくないか?
それならMyISAMになるが。日本語だとちょいと工夫がいるけど。
groongaとかで遊んで見たら?
965 = :
>>959
釣りだと思うけどw
タプル=セット=組=レコード一件
968 = :
>>967
SELECT ID,NAME FROM unko GROUP BY NAME;
MySQL以外じゃろくに動かないから注意な
971 = :
あ、安価間違いましたorz
>>968さんありがとうございました。
972 = :
>>962
他の設定次第だけど insert が多い場合は
set global innodb_flush_log_at_trx_commit=0
も速くなるよ。
これするとクラッシュしたときデータが当てに
ならなくなるので大量の insert などが終わったら
set global innodb_flush_log_at_trx_commit=1
で元に戻しておいたほうがいい。
# 手元の開発環境とかならお好きに
本番環境でも大量にある参照用スレーブとかは
この設定にしておくとレプ遅延が起こりにくかったりする。
973 = :
>>965,966,969
「ブ」じゃなくて「プ」なのか。タプルって用語を知らなかった。
974 = :
>>956
RFC5321 4.1.2. を読んで言ってるんだろうね?
975 = :
>>974
そりゃもちろん。メール絡みのRFCは全て読んだよ。
まあここはMySQLのスレだから これ以上は屋上いこうか。
976 = :
>>975
顔から火が出るほど恥ずかしくなって屋上から飛び降りるってか?
読んだだけでまるで理解していないというのはかなりたちが悪いんだよね。
何事も半可通が一番迷惑なんだよ。
977 = :
>>976
半可通って久し振りに聞いた。
978 = :
id, col, value
1, n, apple
1, c, red
2, n, banana
2, c, yellow
3, n, grape
3, c, green
3, w, 100
のような、各ID番号、列記号、値の入ったテーブルがある時、
id, n, c, w
1, apple, red, NULL
2, banana, yellow, NULL
3, grape, green, 100
のような出力を得たければ、どうするのが定石でしょうか。
979 = :
ドットを使うくらいじゃRFC違反にはならないからね
980 = :
>>978
たぶんこんな感じ。
select a.id, a.value, b.value, c.value
from table a left join table b left join table c
where a.id=b.id and a.id=c.id
981 = :
>>980
やっぱり列の数に応じて必要なだけjoinするしかないんですかね…。
982 = :
間違えた。こうか?
select a.id, a.value, b.value, c.value
from table a
left join (select * from table where col='n') b
left join (select * from table where col='c') c
where a.id=b.id and a.id=c.id;
みんなの評価 :
類似してるかもしれないスレッド
- MySQL 総合 Part12 (1001) - [94%] - 2008/1/30 17:34 ○
- MySQL 総合 Part13 (996) - [94%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part15 (1001) - [94%] - 2009/4/20 12:15 ☆
- MySQL 総合 Part17 (1001) - [94%] - 2010/6/10 20:47 ○
- MySQL 総合 Part18 (986) - [94%] - 2011/1/17 15:46
- MySQL 総合 Part26 (860) - [89%] - 2023/2/2 9:30
- MySQL 総合 Part20 (995) - [89%] - 2011/10/17 4:48
- MySQL 総合 Part21 (1001) - [89%] - 2011/12/25 22:16
- MySQL 総合 Part22 (1001) - [89%] - 2012/7/10 16:45
- MySQL 総合 Part23 (992) - [89%] - 2013/8/11 17:00
- MySQL 総合 Part24 (1010) - [89%] - 2015/2/14 4:46
- MySQL 総合 Part25 (947) - [89%] - 2017/6/18 6:30
- MySQL vs PostgreSQL Part2 (941) - [31%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について