MySQL 総合 Part13 ..
[2ch|▼Menu]
116:112
08/02/18 15:52:54
>>114
有難う御座います。
パスが通っていないのが原因みたいです・・・orz

/usr/local/bin/mysqldump -uroot -phoge hoge --opt > /mnt/nas/web-backup/`date +%Y%m%d`/hoge.sql
に改めたところ、ちゃんとデータが入ったファイルが生成されました。

今まで気にしたことが無かったのですが、いつもは echo $PATH でパスの通りを確認した時
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:(以下略
と、『/usr/local/bin』の記述があるのでパスが通っているものだと思っていたのですが、
crontabの時はrootとは別の.bash_profileが機能しているのでしょうか?

ついで質問で申し訳ないのですが、ご教授いただけますでしょうか?
宜しくお願い致します。

117:NAME IS NULL
08/02/18 19:59:30
>>116
mysql じゃなくて unix の話になっちゃうけど、、、
cron で起動した場合は root ユーザがログインして実行する訳じゃないから
.bash_profile は読み込まれない
必要な環境変数は crontab ファイルの中に記述するか
起動されるスクリプトの中に書いておく

118:112
08/02/18 20:44:41
>>117
すみません、『ここはMySQL板です』って言われるの覚悟だったのですが
話の流れでお聞きできればとおもったので。
/etc/crontabの中にもPATH=設定があるんですね・・・勉強になります。
ご教授有り難う御座いました。


119:NAME IS NULL
08/02/18 20:47:17 DnOVHGDT
大規模サイト作ってる最中なんだけど普通DBは一個だけでいいよね?

120:NAME IS NULL
08/02/19 08:34:43
>>119 どのぐらいが大規模かテーブル数ぐらい書かないとなんともいえないぞ
1つのDBでやる必要性と複数DBがもてるのかどうか
ただ、モールのように複数店等やる場合セッションの引き継ぎ等で
同一DBでやる場合もあるから一様にいえないよね

121:NAME IS NULL
08/02/19 11:57:30
そんな質問してるぐらいだから1個でいいにきまってんじゃん

122:NAME IS NULL
08/02/19 12:51:39
>>120
今はとりあえずプロトタイプとして10涸ほどテーブル持ってる感じ
カラム数は多くても7,8涸で、まあ今後2つとも増やしていく予定

最初は複数DBで運営しようかと考えていたのだけど、ユーザー認証用のtbが既にあるサービスで使うように作ったDBの中に突っ込んじゃった訳ね


摘出してユーザー関連のDB作ってもいいのだけど、こういう作り方ありなのかな〜と思ったので質問させてもらった

機能の拡張性考えたらやっぱりDB分割した方がいい?

123:119
08/02/19 13:02:21
ごめ、やっぱいままでのなし
inner joinで結合したりしてるから無理だ
やっぱ一つのDBで済ますしかないのかな・・・・

124:NAME IS NULL
08/02/19 13:06:35
MySQLってDB開発以外で役に立つのか?

125:NAME IS NULL
08/02/19 17:38:32
は…?

126:NAME IS NULL
08/02/19 21:30:21
というか、他の何に使おうとしてんの? w

127:NAME IS NULL
08/02/19 23:05:34
MyISAM や InnoDB のデフラグってしてる? 定期的にすべきもの?

128:NAME IS NULL
08/02/20 00:50:39
>>127
ものすごい時間かかるよね

129:NAME IS NULL
08/02/20 00:51:18
MySQLでlogという変数がありますが、これをONにするにはどうすればよいのでしょう?

mysql> show variables like 'log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log | OFF |
+---------------+-------+
1 row in set (0.00 sec)

MySQLのバージョンは、5.0を使っております。


130:NAME IS NULL
08/02/20 07:39:29
>>129
my.cnf に次のように書いて mysqld を再起動。

[mysqld]
log = filename


131:NAME IS NULL
08/02/20 11:07:44 u/qQnTAY
ストアドファンクション使用するときに
テーブルロックがかかってしまう問題は
5.1では解決された(る)のでしょうか?

132:NAME IS NULL
08/02/20 11:24:41
>>127
デフラグってどうやってやるんだっけ?
一度ダンプして入れなおすしかないって
聞いたことあんだけどアレ嘘?

133:NAME IS NULL
08/02/20 14:37:10 t1FXjQC1
素朴な疑問ですが、トランザクション・コミットを使用するには
InnoDBにしなければいけない、MyISAMだと使用出来ないと
マニュアルに書いています。

しかし、速度の面からすべてのテーブルをMyISAMにしているのですが、
InnoDBにする利点ってトランザクション・コミット以外にあるのでしょうか?

134:NAME IS NULL
08/02/20 19:17:37
書き込んでる途中に読める

135:NAME IS NULL
08/02/20 20:20:46 Sgz5aacp
MySQLの文字セットをEUCにするのにどうすれば良いのでしょうか?
本やらネットで調べて

/etc/my.cnf に

[mysqld]
default-character-set=ujis
[client]
default-character-set=ujis
[mysql]
default-character-set=ujis
[mysqldump]
default-character-set=ujis

と書き加えてみたのですが、何か上手くいってない雰囲気なのですが。

136:NAME IS NULL
08/02/20 20:47:07
>>135

うちは

cat /etc/my.cnf
[mysql]
default-character-set=ujis

[mysqld]
default-character-set=ujis

で上手くいってますが。

137:NAME IS NULL
08/02/20 21:17:18 o//3cEXb
同じデータ構造を持つテーブル群のデータベースを
一個のデータベースにまとめたいのですが、
mysqldumpでダンプしてからリカバリーしようとすると、
新しいものに上書きされてしまって、一つにまとめることができません。

なにか良い方法はないでしょうか?
宜しくお願いします。
mysqldumpがテーブル毎にダンプできればいいのですが・・・

138:NAME IS NULL
08/02/20 22:12:56
>>137
MERGEテーブルなんてどうだい?
URLリンク(dev.mysql.com)

139:NAME IS NULL
08/02/21 00:31:24
>>132
OPTIMIZE TABLE という命令がある。

140:NAME IS NULL
08/02/21 00:33:12
>>137
テーブル毎にダンプできるよ。
というか、mysqldump の出力はテキストなんだから好きに加工すればいい

141:NAME IS NULL
08/02/21 08:58:10
/etc/my.cnfで以下のようなdataのディレクトリを設定したのに、
なぜか、/var/db/mysql/{database名}以下にデータが出来てしまい
困っております。
[mysqld]
datadir = /home/xxxx/db

データのディレクトリを変えられるところって他にありましたでしょうか?
ちなみに、環境はFreeBSD6.3R+MySQL5.2です。

どうかお助け下さい

142:NAME IS NULL
08/02/21 13:24:45
>141
その /home/xxxx/・・・
ってのは、ユーザーのホームdirっぽいんが、ユーザー:mysqlが、読み書き出来るパーミッションがあるのかね?

143:NAME IS NULL
08/02/21 13:30:57 AwIQMyrc
むしろ mysqld をそのユーザの権限で動かす!

144:NAME IS NULL
08/02/22 15:51:51
>102
遅くなりましたが、ありがとうございました。

145:NAME IS NULL
08/02/22 21:59:19 W58pTgXp
質問させてください。

c1 c2

001 abc
001 hyu
002 ded
002 iopsa
001 yui

こんな感じにテーブルがあるとします。

これを一度の処理でこんな感じに取り出したいです。

001 abc
001 hyu
001 yui
002 ded
002 iopsa

distinct を使ったりしてみたのですがどうにも上手くいかず…
ご教授お願いします。

146:NAME IS NULL
08/02/22 23:41:31
>>145
意味わからん
select c1, c2 from TBL order by c1,c2;
じゃねーの?

147:NAME IS NULL
08/02/22 23:55:03
mysqlをwindowsXP で勉強しているのですが、
INSERT INTO recipe (aaa,bbb) VALUES('日本語',1);
がエラー1366で実行できません。
設定はutf8です。
INSERT INTO recipe (aaa,bbb) VALUES('abc',1);
であれば、実行できます。

もしかして、utf8に設定していると、コマンドから直接入力が無理なのですか?


148:NAME IS NULL
08/02/23 00:12:14
>>147
cp9332とかが良いってばっちゃが言ってた

149:NAME IS NULL
08/02/23 00:46:54
>>148

cp932

150:NAME IS NULL
08/02/23 10:35:49 plV93xd4
SQLの実行時間を図るのにタイムウォッチを使っているのですが、
MySQLで便利なSQLの実行時間がわかる方法ってないでしょうか?


151:NAME IS NULL
08/02/23 15:48:17 M9EfVzmK
mysql4.1

select
a + b
from


こんな感じの場合、a,bどちらかがnullだと結果全部nullになるんですが、
nullは0とて計算したい場合、どのようにすればよいんでしょうか?
m(_ _)m

152:NAME IS NULL
08/02/23 16:02:37 qXPAWXxv
innoDBを使うとSELECT COUNT(*)の処理がMyISAMと比べて桁違いに遅いと思いますが、
COUNT処理を高速化するために、何か方法はないでしょうか?

前にどっかのサイトで、innoDBでのCOUNT処理を速くするテクニックが書かれていたと思うのですが、
どこだか見つけることができませんでした。

宜しくお願いします。

153:NAME IS NULL
08/02/23 16:39:57
MySQL5.1から行レベルレプリケーションというものが採用されたということなのですが、
行レベルレプリケーションとは具体的にはどういうものでしょうか?


154:NAME IS NULL
08/02/23 16:45:15
>>152
innodbのcount(*)検索が遅いのは、クラスタインデックスという仕組みのためらしいです。
これを怪傑する方法としては、force keyを使って、
主キーインデックス以外のカラム(もちろんindexはらないとだめ)を
指定するのが常套手段だったと思います。

これの方法だと、1レコードのサイズが大きいほど劇的に性能あがりますね。


155:>>154
08/02/23 16:47:39
訂正。
force keyじゃなく、force indexだった。
select count(*) from test_table force index(col);


156:NAME IS NULL
08/02/23 16:52:23
>>151
そういうときは、caseだ。ばか。

157:NAME IS NULL
08/02/23 17:18:48
>>151
select ifnull(a,0)+ifnull(b,0) ...

158:NAME IS NULL
08/02/23 17:32:11
>>153
今まではクエリを転送してスレーブ側で実行していたが、変更されたレコードデータその物を転送するようになった。

159:NAME IS NULL
08/02/23 23:01:13 rFdPd3m0
すみません。ビューを作成時のSQL文にバグがあったので、作成時のSQL文を確認したいのですが、
どのようなコマンドを打てばいいのでしょうか。

160:160
08/02/23 23:20:53
事故解決しました。
HDDが飛んでしまったようです。

161:NAME IS NULL
08/02/24 11:39:20
>>115
Handler_read_rnd_nextはテーブルのフルスキャンで何行読んだかを
示しているので、log_slow_queriesに加えてlog_queries_not_using_indexesを
ONにするとどのクエリがやらかしてるのか分かると思う。

>>159
show create view XXX



162:NAME IS NULL
08/02/24 12:01:12
あるCMSをインスコしたときテーブルをいっぱい作成されました。

そのテーブルとテーブル内のフィールドのCollationの値を
すべて変更したいんですが、どうやるのが一番かっこいいんでしょうか?

おねがいします。phpMyAdminは使えます。

163:NAME IS NULL
08/02/24 14:30:31
>>162
DROP DATABASE "DB名";
これが一番最強でクール。

164:NAME IS NULL
08/02/24 14:46:35
>>163
すでにデータが少し入ってるので消したくないんです。

165:NAME IS NULL
08/02/24 15:13:59
MySQLクライアントで10万件のレコードをselectしたとき、最後に
100000 rows in set (1.26 sec)
と表示されます。
1.26secかかったことになっているのですが、実際には25秒かかっています。(

実際の実行時間を表示するにはどうすればよいのでしょうか?


166:NAME IS NULL
08/02/24 16:05:37
25秒ってのは表示とかよけいな処理を含んでるんじゃないの?

167:NAME IS NULL
08/02/24 16:09:06
mysqlってテーブル単位でアクセス権設定できますか?
hogeデータベースのfugaテーブルのみにアクセス可能なユーザを
設定したいのです。

168:NAME IS NULL
08/02/24 16:13:12
10万件のレコードを1秒かそこらで取得できるわけないでしょw
釣りですか?

169:NAME IS NULL
08/02/24 16:47:56 PjrHaGxS
ディスクのIOにかかる部分はシステムコール内で
消費されているからなぁ.その分は1.26秒には
入っていないでしょ.

170:NAME IS NULL
08/02/24 18:22:21
あんまり正確じゃないけど

select count(*) from
(
計りたいSQL
);

というのをよくやる

171:名無しさん
08/02/25 00:10:58 9FzPKS4K
MYSQL導入するのに丸一日かかった
頑張って勉強するお

172:NAME IS NULL
08/02/25 00:24:21
>>171
administratorとQueryBrowserいれとけよ、便利だから

173:NAME IS NULL
08/02/25 00:30:39
>>165
1.26secというのはクエリをサーバーに投げてから結果が返ってくるまでの時間。
25秒は表示にかかった時間も計っているのでは?

174:NAME IS NULL
08/02/25 00:31:59
>>162
alter table xxxx convert to charset utf8
とか?

175:NAME IS NULL
08/02/25 00:34:07
>>170
表示をころすわけね

176:NAME IS NULL
08/02/25 01:53:59 z+rzzFbc
URLリンク(dev.mysql.com)
↑で
「ストアド ルーチン内 (ステートメントをストリングとして動的に構築し、実行する場 ) で動的 SQL を使うことはできない。」
という記述を見つけたんだけど、ストアド内でSQL文字列を構築して実行っていうのができないってことですか?

177:NAME IS NULL
08/02/25 02:13:10 z+rzzFbc
set @vals = "'a','b','c'";
select * from tbl where fld in (@vals);

@valsが動的に変わる場合、↑のようなことをやる良い方法はないでしょうか?

178:phpMyAdminの使いかた
08/02/25 03:07:09 Zgifsms/
phpMyAdminについて質問があります。

現在、次の環境でphpMyAdminをインストールしようとしいるのですが最後の"pma"
ユーザに対するパスワードの設定がうまくいきません。
その為、動作確認の為に次のURLにアクセスをしたところトップページ
は表示されるのですが、幾らパスワードを入力しても弾かれてしまいます。(エラー発生)

URLリンク(localhost)
【エラーメッセージ】
  エラー #1045 - Access denied for user 'pma'@'localhost'
  (using password: YES)
【環境】
  ・Linux(CentOS5)・MySQL5・PHP5
  ・(phpMyAdmin-2.11.4-all-languages-utf-8-only
   (これをインストールする予定)
【phpMyAdminの設定ファイル】
  # vi config.inc.php
  17 $cfg['blowfish_secret'] = 'tekitounamoziwoireta';
  
  /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
  37 $cfg['Servers'][$i]['controluser'] = 'pma';
  38 $cfg['Servers'][$i]['controlpass'] = 'pass';

どうすればphpMyAdminを使える様になるのでしょうか?



179:phpMyAdminの使いかた
08/02/25 03:20:06 Zgifsms/
補足です。

【参考サイト】
  URLリンク(www.okku.jp)(Linux)CentOS+4.1%A4%C7phpMyAdmin%A4%F2%BB%C8%A4%A6
【エラーが発生するコマンド】
  set password for pma@localhost=password('pass');
【エラーメッセージ】
  ERROR 1133 (42000): Can't find any matching row in the user table

どなたか詳しい方お願い致します。

180:>>165
08/02/25 10:42:16
みなさん、ありがとうございます。
みなさんは、性能実測行うときにどのような方法でやられているのでしょうか?
私は、時計使ってやっているのですが、、


181:NAME IS NULL
08/02/25 11:28:26
>>179
MySQLにpma@localhostが登録されてないんじゃね?

182:NAME IS NULL
08/02/25 17:10:30 pyl/7W05
6万行のテーブルにプライマリーキーで検索を掛けると、
300回に1回程度、実行速度が5秒くらいになることがあります。
アクセスが多い(平均35クエリー/秒)ので、それが原因かもしれませんが、
他にひっかかりそうなボトルネックになるような箇所は考えられませんね。

183:179
08/02/26 01:21:13 vmOg1J9D
>>181
MySQLの登録ユーザに"pma"を追加するという事でしょうか?
(つまり、rootユーザの様にコマンドラインからユーザを追加するSQLを
流すという事)


184:179
08/02/26 02:19:02 vmOg1J9D
>>181
ありがとうございます。
解決しました^^;


185:NAME IS NULL
08/02/26 09:47:14 yVz26w0r
InnoDBをMEMORYに変換しようとすると、TEXT/BLOG型はサポートしていないと
怒られるのですが、10000文字程度を格納しているフィールドがありVARCHARに出来ないのですが、何かよい方法はありますか?
ヨロシクお願いします。

186:NAME IS NULL
08/02/26 14:39:58
>>182
メモリが足りなくてスワップしてるとか

187:NAME IS NULL
08/02/26 22:58:36 1h0phFuN
page.txt revision.txt text.txtの3つのファイルを
mysqlにインポートしたいのですがERROR 1064 (42000)がでます

mysqlimport -u root -L corpus /dir/data/*.txt

mysqlimportコマンドのどこがいけないでしょうか

188:NAME IS NULL
08/02/26 23:34:15
>>187
エラーの詳細をkwsk
txtファイルの内容は間違いないの?
改行コードが2バイトになってるとか

189:NAME IS NULL
08/02/27 00:26:54
>>182
>300回に1回程度、実行速度が5秒くらいになることがあります。
このとき、MySQLクライアントでshow processlist;したら何かわかりませんか?


190:NAME IS NULL
08/02/27 01:44:17
start slaveしたら以下のエラーが出て、masterサーバとつなげません。

080227 10:20:35 [ERROR] Slave I/O thread: error connecting to
master 'replications@hoge:3306': Error: 'Lost connection to
MySQL server during query' errno: 2013
retry-time: 60 retries: 86400

たぶんerrno: 2013がその理由だと思うのですが、
このエラー番号の意味ってどこを見ればわかるんでしょうか?



191:NAME IS NULL
08/02/27 09:12:12 Ry3s+xrT
日時が入っているfield_nameに対して、日付のみに着目して
今日だけのデータを取りだしたい時に、下のようにやると、
INDEXが機能せず、フルスキャンになってしまいます。


TO_DAYS(NOW()) = TO_DAYS(field_name)


何か実装方法としていい方法はないでしょうか?お願いします。

192:NAME IS NULL
08/02/27 09:53:05
関数入れるとインデックスは使われません。
日時の場合は、当日以上翌日未満にすればよいです。

193:NAME IS NULL
08/02/27 12:19:22
今更ながらですが、トランザクションが必要がない場合に
INNODBとMYISAMって使い分けをした方がいいでしょうか?

データーベースの中にトランザクションを必要とするものがありまして、
全部INNODBにしているのですが、トランザクションを必要としないものを
MYISAMにするかどうか検討しています。

HPを色々見ても、大して変わらないという人や、むしろINNODBの方が速いという人までいて、
決めかねています。皆さんのご意見をお伺いできたらと思っています。
私は、5.1を使っています。ヨロシクお願いします!

194:NAME IS NULL
08/02/27 13:09:00
使い方次第

195:NAME IS NULL
08/02/27 14:47:14 3YI/hApE
MySQLはサンマイクロに買収されたのか。

196:NAME IS NULL
08/02/27 15:11:45
>>193
長短所を理解すれば答えはおのずと出るはずです。

>>195
それ、2,3月も前の話でしょ。 もうコバルトの話とかいらんでw

197:NAME IS NULL
08/02/27 20:50:25 IDLP0qwH
SELECT id FROM a INNER JOIN b USING(id) WHERE id='1'

として結果が0(ヒットしない)場合、WHEREの条件を無しにして
全体のレコードを取得したいと思います。
上記をどのように変更すればいいのでしょうか?

198:NAME IS NULL
08/02/27 21:03:08
SELECT id FROM a INNER JOIN b USING(id) WHERE id=id

199:NAME IS NULL
08/02/27 21:51:08 IDLP0qwH
>>198
すみません、あくまで「id=検索値」の結果が無かった場合に
全体のレコードを取得したいので、最初から全体を取得するのではないです。。

200:NAME IS NULL
08/02/27 22:08:07
無かった場合に実行すればよい

201:NAME IS NULL
08/02/28 00:09:47
>>193
そのシステムが命に関わるような場合、迷わずInnoDB
そのシステムが途中でデータ消えてもいいのでとにかく早くしたい場合MyISAM
(MyISAMでも一時間に一回バックアップとればそんなに問題にはならないでしょう。)


202:NAME IS NULL
08/02/28 00:26:11
InnoDBって遅いってイメージがあったけど、
実際違うなら、トランザクション使えるし、InnoDBの方がよくねぇ?

203:NAME IS NULL
08/02/28 00:34:52
>>201
このMyISAMならデータが消えるって、何を前提にしてんだ?

204:NAME IS NULL
08/02/28 02:13:50
>>203
>>201じゃないが、実際に両方とも運用していると、
MyISAMは一ヶ月に1回位、データがクラッシュする。
「XXXX marked as crashed」とかっていうエラーを吐き出す。
その場合は、REPAIRすると95%は直るが、5%はREPAIREも失敗する。

信頼性を犠牲にして速度を速めているのがMyISAMという認識でいる。

205:NAME IS NULL
08/02/28 09:41:04
MyISAMは確かに壊れやすいと思う。
読み出しと重ならなくても、更新が多い場合は避けるようにした。
追記だけとか、読むだけのテーブルなら良いと思うけど。

あんまり使ってないけど、MyISAMでもFixedなら壊れたことはないかな。

206:NAME IS NULL
08/02/28 10:30:38
っていうかDBで壊れやすいって致命的な欠陥じゃね?
車に例えれば、時々ブレーキが利かなくなることがあるってことだろ?

Oracleと比べるのは酷だが、どんなに機能が充実してOracleに近づいたといっても、
クリティカルなところ(お金に関わる部分や基幹業務、公共インフラ)では採用できないDBだな。

207:NAME IS NULL
08/02/28 13:16:55
当たり前です

208:NAME IS NULL
08/02/28 14:20:53 vUxSrTHj
かなり大きなvarcharを抱えているテーブルで文字検索をしたいのですが
全文検索用のインデックスを作って検索を高速化してくれるようなMySQLのアドオンってないでしょうか?
やっぱり正攻法でそういうことは全文検索用のソフトウェアにさせるべきなのでしょうか?

209:NAME IS NULL
08/02/28 14:57:51
>>206
それはちょっとちゃうな。
君はコンビニに買い物に行くとき、防弾チョッキ着て、護衛を付け、
遭難用携帯食料3日間分を念のため持って出かけるわけかい?

210:NAME IS NULL
08/02/28 19:00:53
>>206,209
どっちも両極端な意見すぎ!
特徴を理解した上で適材適所で使え。

211:NAME IS NULL
08/02/28 23:43:23
>>206
誰もMySQLの信頼性の話してない。
壊れやすいといっているのはMyISAMの話。
MyISAMの信頼性の話をしている。

MyISAMの信頼性が低いのは事実だが、
全体バックアップ+バイナリログで普通に復旧できるので壊れてもすぐに復旧できる。





212:NAME IS NULL
08/02/28 23:46:25
話は変わるが、MyISAMってみんななんてよんでるの?
おれの周りでは、"ミィザム"とか"マイサム"とか
"エムワイアイエスエーエム"とかいろいろなんだが、
統一しないか?


213:NAME IS NULL
08/02/29 00:00:14
勲は俺のもの での統一でいいと思うけど

214:NAME IS NULL
08/02/29 00:41:08
>>208
Tritonn

215:NAME IS NULL
08/02/29 00:42:11
いや、MyISAMだって、OSのクラッシュとかがなければ壊れないでしょ。フツー。

216:NAME IS NULL
08/02/29 01:33:15
IO弱いと壊れやすいんじゃね?

217:NAME IS NULL
08/02/29 03:23:40
mysql4.1から5.0のサーバーに移行しようとしてmysqldumpで全てのDBのバックアップを取ったんですが
なぜか新しい環境でユーザーは適用されているもののパスワードが反映されないです。

パスワード無しで接続できてしまい、逆に前の環境のパスワードを指定すると弾かれます。

mysql.userテーブル見てみたんですが、一応それぞれのユーザーに別々のパスワードは付与されているみたい。

なんでパスワードが適用されないんでしょう
教えてえろい人

218:NAME IS NULL
08/02/29 11:38:26
changelogみると、MyISAMが壊れるの直したってよく出てくるよね。

219:NAME IS NULL
08/02/29 13:28:53 q3z3v3NL
>>214 THX
こういうものがあったとは.
namazu とかで別途全文検索機能は実現するかぁ,
とか思っていたけどこりゃ便利そうだ.
というか,MySQL の FULLTEXT っていつの間にか
UTF-8にも対応していたのか.といっても分かち書きが
必要なので結局は Tritonn のお世話にならなきゃってことですね.

220:NAME IS NULL
08/02/29 18:05:13
MySQLで問い合わせ時間を得たいのですがどうすればいいでしょうか?

mysql> select sum(1+2) as sum from dual;

+----------+
| sum   |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)

この場合、sumと問い合わせ時間(0.00 sec)を返してほしいです。

221:NAME IS NULL
08/02/29 18:24:59
>>220
度々似たような質問を見かけるんだが、
前スレにもあったように、問い合わせの時間が表示されるのは、mysql(クライアントプログラム)の独自機能であって、
mysqld(サーバー)の機能ではない。

よって時間を得たければ、例えばPerlなら、use Time::HiRes ; とすりなり、
PHPなら microtime(true) するしかないじゃないの。(てか俺はそうしてる。)

222:NAME IS NULL
08/02/29 19:16:51
mysql v4.0.20で文字コードにujis使用のサーバから
Win機でODBC接続してVB6でデータ取得について質問

MyODBC-3.51.06試したけどダメだった...
で myodbc-3.51.06-conv_ujis.zip 拾って使ってます。

HPからのリンク切れてるけどこれ使ってもいいの?

223:NAME IS NULL
08/02/29 21:18:05
あるサーバから別のサーバへMySQLのデータベースを
移動したいのですが、
.frm .MYD .MYI をそのまま移動させて
使用することってできるのでしょうか?
以前SQL文でエクスポートしてたんですが、
文字化けとかでかなり手こずった記憶がありまして、
できれば簡単な方法が良いなと思っています。

224:NAME IS NULL
08/02/29 21:26:22 dsP0ZzyD
mysql 5.0.27 でレプリケーションを組んだのですが、slaveサーバーでsyntax
エラーを起こします。
mysqlのバージョンは一緒だし、文字コードも show variable で見るとmasterと
slaveは同じものだし、、、
どうもバイナリー項目の辺りでおかしいのかな?と思いますが、なぜだかわかりません。
どなたか、解決方法ご存知の方、おりませんか?


225:NAME IS NULL
08/02/29 23:13:19 i7o2Y2Yb
IDEXをいくつか貼ってあるテーブルにINSERTをする場合に、
1万件の場合と、1000万件の場合で処理速度が大幅に変わりますか?

ログ系のテーブルなので、これからどんどん溜まっていったときに、
どんどん処理が遅くなるんじゃないかと不安に思っているのですが・・・

InoDBは確かBTREEだったと思いますが、BTREEの作成コストがその大きさに依存するかどうか知りたいです。
宜しくお願いします。

226:NAME IS NULL
08/03/01 01:32:50
>>223
同じバージョンならできる。

227:NAME IS NULL
08/03/01 01:33:24
>>224
バイナリログの中のエラーになったクエリを見ればいいんじゃないかな。

228:NAME IS NULL
08/03/01 10:51:32
レプリケーションについて教えてください。

レプリケーションの方式として、
1master-複数slave
という方式と
mutil-master
という方式があるみたいなのですが、
どういう場合にどちらを選ぶべきなのでしょうか?


229:NAME IS NULL
08/03/01 11:49:48 BE:835119239-2BP(0)
>>224
変わる。
もちろんインデックスのサイズとメモリ量による。
ログ系のテーブルなら、そんな複雑なインデックス貼らないだろうし(created_onとserver_idとstatusくらいか)
1000万件くらい大丈夫だと思うが。だめならパーティショニング。
それよりストレージエンジンをどうするか考えたほうがいいと思う。InnoDBかMyISAMかARCHIVEか。

>>228
シングルマスタはマスタがフェイルポイントになる。
マスタが死ぬと更新がまったく出来なくなる。
スレーブ1台をマスタに昇格させて復旧させる。

デュアルマスタはフェイルポイントがない。
auto_increment問題は、auto_increment_incrementとauto_increment_offsetを設定すれば大丈夫。
unique keyの重複したINSERTと、同一行の更新をどうするかが問題となる。
追加・更新のクエリを片方に寄せるというのも手。

3台以上のマルチマスタは手間の割にあまり利点ないので略。

230:NAME IS NULL
08/03/01 17:49:39 4HUS0plA
デュアルマスタってのはお互いがお互いのマスタであり
スレーブであるっていう設定のこと?
んで,3台以上ってのはそれをリング状にしたってこと?

231:NAME IS NULL
08/03/01 19:12:32
自鯖のMySQL入れようと思うんだけど5を入れとくべき?

232:NAME IS NULL
08/03/01 19:13:47
うん

233:NAME IS NULL
08/03/01 19:40:11
4系でもいいと思うけどな

234:NAME IS NULL
08/03/01 20:15:00 BE:1391863695-2BP(0)
>>230
そう。
あと、それぞれのマスタにスレーブをぶら下げたりもできる。

235:NAME IS NULL
08/03/01 23:52:18 4HUS0plA
>>234
デュアルマスタまではやったことあるけど,
リング状ってのはまだやったことないな.
同じデータベースに対していどちらのマスタでも
更新ってのは怖くてやったことがない.

236:NAME IS NULL
08/03/02 01:26:02
>>228
俺もあまりよくしらないが、考えてみた。

まず、1マスタNスレーブの場合。
参照するたのslaveサーバが複数あるのだから当然、参照の負荷分散になる。
更新するためのmasterサーバも参照のアクセスと競合しないので、
負荷分散になるんだと思う。
>>229の指摘でマスタが壊れたら更新ができなくなるといっているが
それはmutil-masterも同じことだ。
確かに更新はできるが、データの不一致が起こるので、
むしろ障害発生時に更新をとめるような仕組み必要ではないか。

次、multi-masterの場合。
1マスタNスレーブと比べると、参照のためのサーバが一台増えるわけだから、
参照だけを考えると、1マスタnスレーブよりすぐれているんだと思う。
更新は、あるサーバの更新が他のサーバ全てにレプリケーションされるわけだから、
更新については全く負荷分散にはならないんだと思う。

>どういう場合にどちらを選ぶべきなのでしょうか?
結論としては、更新が比較的多い場合、1マスタnスレーブを考えるべき。
参照メインで更新が殆どない場合、mutil-masterということになるんだろう。



237:NAME IS NULL
08/03/02 02:24:27
覚醒せよ

238:NAME IS NULL
08/03/02 02:44:46 LX2+C4Nj
助けて下さい。
mysqlで、間違えてデータベースを作ってしまいました。
その間違いを訂正しようとして、mysqlに登録したroot権限で
入っても、何をしたら良いかわからなくて。。
全部無かったことにしたくて、アンインストールしたりしましたが、
またインストールしたら間違えた設定のまま消えません。
完全に消去するには、どうすれば良いのでしょうか?
ちなみにosはfedora8です。

239:NAME IS NULL
08/03/02 09:48:34
>>212
まいあいさむ

240:NAME IS NULL
08/03/02 09:50:37
>>217
4→5で認証方法変更されてるんだが


241:229
08/03/02 12:17:28 BE:773258055-2BP(0)
>>236
> >>229の指摘でマスタが壊れたら更新ができなくなるといっているが
> それはmutil-masterも同じことだ。

いいえ。

> 確かに更新はできるが、データの不一致が起こるので、

『データの不一致』はどのサーバ間をさしている?

> 次、multi-masterの場合。
> 1マスタNスレーブと比べると、参照のためのサーバが一台増えるわけだから、
> 参照だけを考えると、1マスタnスレーブよりすぐれているんだと思う。

シングルマスタでマスタを参照してもいいので、1台増える訳ではない。
# というか、レプリケーションの時間差が許されない場面では普通はマスタを参照する。

> 更新は、あるサーバの更新が他のサーバ全てにレプリケーションされるわけだから、
> 更新については全く負荷分散にはならないんだと思う。

ここだけは合っている。
しかし、5.1の行レプリケーションを考慮した場合は間違いになる。

全般的にめちゃくちゃだ。
レプリケーションの仕組みをもうちょっと学んだほうがいい。

242:>>236
08/03/02 15:14:39
>>241

>> 確かに更新はできるが、データの不一致が起こるので、
>『データの不一致』はどのサーバ間をさしている?
故障したサーバとそれ以外のサーバ。
たとえば、3台でリング上のレプリケーション組んでるとするだろ。
それぞれ、A、B、Cとする。データの流れは、A→B→C→A...とする。
Bが壊れた場合、AからCのデータの流れが途絶えるわけだから、
Cの更新はAに反映されるが、Aの更新はCに反映されない。

>シングルマスタでマスタを参照してもいいので、1台増える訳ではない。
># というか、レプリケーションの時間差が許されない場面では普通はマスタを参照する。
mutil-masterの話なのに、この話がでるのが意味不明。説明してほしい。

>しかし、5.1の行レプリケーションを考慮した場合は間違いになる。
そのとおりだね。間違いでした。


243:NAME IS NULL
08/03/02 15:23:45
レプリケーションって難しいねw
というか俺の頭が悪いのかorz

で、>>241に聞きたいのですが、
>どういう場合にどちらを選ぶべきなのでしょうか?
に対する答えは、>>236さんの答えでは不十分ってこと?
そこらへんを解説きぼんぬ。


244:NAME IS NULL
08/03/02 20:41:09 Fblr/lkn
selectの結果で実行するsql文を変更したいのですが
ストアドプロシージャ・ファンクションを使わずに
するにはどうしたらいいですか?
例sql文を教えてください。

245:NAME IS NULL
08/03/02 21:28:44
windows+linux のクラサバなんだけどjavaで動かしている時って
mysqlの文字コードはsjisにしてる?それともutf8?
vistaだとutf8が4バイトらしいんだが・・

246:NAME IS NULL
08/03/02 22:05:28
フハハ、utf-8は最大6バイトまであるわっ

247:NAME IS NULL
08/03/02 23:33:09
MySQLに限ってはutf-8だと3byteが上限
They can be encoded with 8, 16, or 24 bits, as in utf8

248:229
08/03/03 12:49:38
>>242
>>『データの不一致』はどのサーバ間をさしている?
> 故障したサーバとそれ以外のサーバ。
> たとえば、3台でリング上のレプリケーション組んでるとするだろ。
> (略)

そうだね。だから3台以上のマルチマスタはあまり意味ないよ。
と、すでに229に書いた。
考えるならシングルマスタとデュアルマスタだけにした方がいいだろう。
『データの不一致』はデュアルマスタの場合にはどうなる?
3台以上のマルチマスタしか考えていない?

>>シングルマスタでマスタを参照してもいいので、1台増える訳ではない。
>># というか、レプリケーションの時間差が許されない場面では普通はマスタを参照する。
> mutil-masterの話なのに、この話がでるのが意味不明。説明してほしい。

あなたは『1マスタNスレーブと比べると、参照のためのサーバが一台増えるわけだから、参照だけを考えると、1マスタnスレーブよりすぐれているんだと思う』と書いているけど、増えないでしょ。1マスタNスレーブでマスタを参照してもかまわないわけだし。
1マスタ1スレーブの場合もデュアルマスタの場合も、参照は2台からできる。

>>243
> レプリケーションって難しいねw

いや、そんなに難しくないよ。5.0までのは、
マスタ: クエリを実行 -> 実行終了 -> 更新系のクエリなら(ちょこっと変えて)バイナリログに書く
スレーブ: マスタからバイナリログを取ってくる -> 実行
ってやってるだけだし。bin/mysqlbinlogで見ると分かるが。

> >どういう場合にどちらを選ぶべきなのでしょうか?
> に対する答えは、>>236さんの答えでは不十分ってこと?

不十分つーか、236のは過程もひどいし結論は意味不明すぎる。
シングルマスタとデュアルマスタの得失を229に書いといたから、自分の環境にあわせて選べばいい。
でも、228の人のレベルからするとシングルマスタの方がいいと思うが...デュアルマスタはフェイルポイント無くなるけど、代償も多いからハマりそう。

249:NAME IS NULL
08/03/03 17:55:10 ABajaOyx
>>227
見たのだけれど、update行のバイナリー項目で変にスペースが入ったり\0が並んでたりで、、、
バイナリーログにも出力文字コードがあったりするのでしょうか?
なぜ syntaxエラーなのか、、、



250:NAME IS NULL
08/03/03 23:27:48
208 名前:Trader@Live![] 投稿日:2008/03/03(月) 23:24:21.29 ID:oVO24yUj
個人でも商売でもバイナリデータを直接操れよ
データベースやエクセルとかいうやつは初心者だよ

-----
と言われたんですが

251:NAME IS NULL
08/03/04 00:01:37
左様か

252:NAME IS NULL
08/03/04 01:37:03 2te2Hach
>1マスタNスレーブでマスタを参照してもかまわないわけだし
この場合、更新クエリはマスタで、参照クエリはスレーブに投げるものだと思ったけど、
勘違いかな。。。



253:229
08/03/04 01:46:40 BE:1237212285-2BP(0)
>>252
>>1マスタNスレーブでマスタを参照してもかまわないわけだし
> この場合、更新クエリはマスタで、参照クエリはスレーブに投げるものだと思ったけど、
> 勘違いかな。。。

そういう風に使うことも多いが、別に決まっている訳じゃない。
更新よりも参照のほうがはるかに多いなら、マスタも参照して全体の負荷下げるほうがいいし。
大きいトランザクションを投げることがあるなら、レプリケーションに遅れが出るけど、
その遅れが許されない場合はマスタを参照すべきだし。

254:NAME IS NULL
08/03/04 06:13:01
>>238
遅レスだが、OSも再インストールすればOK

255:NAME IS NULL
08/03/04 08:09:26
>>238

発想がすごいな。データベース触らないほうがいいかも知れないよ。

256:NAME IS NULL
08/03/04 09:31:06
>>238
まちがえたデータベースを削除すればいいだけではないの?

257:NAME IS NULL
08/03/04 11:09:12
データベース消してさらにアンインストールもしても
ディスク上には残ってるから完全に消したことにはならない
OSインストールしなおしてもデータベースが作られた
場所によってはそれでもまだ消えずに残っているかもしれない
HDD消去ツールを使って完全に消去してから
OSのインストールとMySQLのインストールをすることを薦める

258:NAME IS NULL
08/03/04 13:49:23
ちょっと相談

PHP

259:NAME IS NULL
08/03/04 19:51:00 Wg0XzILf
どこにも書けないからここで叫ばせてくれ!!

みんなー!!! releaseは予約語だぞー!!!
カラム名に使ったらダメだぞーーーー!!!!!
でもバッククォートでくくれば使えるぞーーーー!!!!

URLリンク(dev.mysql.com)
は、あくまで4.X系列のマニュアルだぞーーー!!!

URLリンク(www.rfs.jp)
が参考になるぞーーーー!!!!

260:NAME IS NULL
08/03/05 01:17:03
>>259
何、このきちがい。


261:NAME IS NULL
08/03/05 11:22:43
たぶんreleaseを使ってはまったんでしょ。
どうせならこっちを参考にすればいいのに。
URLリンク(dev.mysql.com)

262:NAME IS NULL
08/03/05 11:46:59 j7//b68F
my-small.cnf
my-medium.cnf
my-large.cnf
my-huge.cnf
それぞれどの程度のマシンスペックを想定してるんでしょうか?
最近は2Gオーバーのマシンも珍しくなくなっているので、
策定時の大きさの感覚とはギャップが出てきてるんじゃないかとも思うのですが・・・

263:NAME IS NULL
08/03/05 12:04:09 PwmTWvdf
>>261
ごえぇぇぇぇぇっ! 5.1版って和訳されてたのぉぉぉぉ!?!?!?!?!?!?!?
うぎゃぁぁぁぁあっぁあぁ!!!!!
ヘーターこーいぃぃぃたーーーーーーー!!!!!

俺の半日を返せええええぇぇぇぇぇぇぇぇえぇぇぇぇぇっっっ!!!

264:NAME IS NULL
08/03/05 17:41:55
>>262
DB専用サーバか、apacheやアプリケーションサーバと共有するか、DBの負荷程度、etc・・
状況によってどれをテンプレにするか決める。
メモリのギリまで各サービスに最適なメモリを命一杯割り当てる。
決してスワップさせないように。

265:NAME IS NULL
08/03/05 21:46:04 XFVJ2OUC
すいません。複数フィールドに対するユニーク制約の仕方がよくわからないんですが、
以下のようなテーブルがあったとき、

  ID | DAT1 | DAT2 |
  1 |  1   |  2   |
  2 |  1   |  3   |

  3 |  2   |  1   | ← ×
  4 |  3   |  1   | ← ×

すでにあるdat1とdat2の逆は登録させたくないのですが、どのようにすれば良いでしょうか?

266:NAME IS NULL
08/03/05 22:10:05 BE:927909465-2BP(0)
> 策定時の大きさの感覚とはギャップが出てきてるんじゃないかとも思うのですが・・・

my-huge.cnfでもかなり少なめの設定。
KLabの記事でも読むといい。

267:NAME IS NULL
08/03/05 23:13:30
下記のようなデータがあったとき、
nameフィールドの中に入っている項目が多い順にソートして、なお且つ重複を取り除いて抽出するにはどういったSQLを書けばいいでしょうか?
この例では
りんご
みかん
ぶどう
という順に、入っているデータが多い順に一つにまとめて取り出したいです。

ID name
------------
01 りんご
02 みかん
03 ぶどう
04 りんご
05 りんご
06 みかん
07 りんご
08 みかん

宜しくおねがいしますm(_ _)m

268:NAME IS NULL
08/03/06 08:44:36 BE:556745292-2BP(0)
SELECT id, name, count(*) FROM rtfm GROUP BY name ORDER BY count(*) DESC;
マニュアル読めよ。

269:NAME IS NULL
08/03/06 08:57:15
すいません、ありがとうございます

270:NAME IS NULL
08/03/06 09:17:39
マニュアルつーかSQLの基本だわな

271:267
08/03/06 09:20:27
>>268
お礼に、よろしかったらこのリンゴいかがですか。いっぱい取れたもので。

272:NAME IS NULL
08/03/06 09:23:00 UrAOuO7y
いただきます

273:NAME IS NULL
08/03/06 11:58:06
>>265
おそらく設計が間違ってる気がするけど、とりあえずtriggerでも使えば?
(5.0以降だよね?)

274:NAME IS NULL
08/03/06 13:26:01
>>265
正規化して dat1,dat2 を別テーブルにもつ
別テーブルに、IDと datで uniqueインデックスを貼る


275:NAME IS NULL
08/03/06 20:46:55 Ai2/bdLU
すみません、質問させて下さい。
phpでmysqlを使っているのですが、並び替え(order)ではなく任意の行を
最初に取得することはできますか?

|0001|hoge1|
|0002|hoge2|
|0003|hoge3|

orderだと、hoge1,hoge2,hoge3と取得することはできますが、
hoge2(任意),hoge1,hoge3という順番で参照する方法を探しています。

最悪、ループを二回にわけようかとは思いますが。
よろしくお願いします。

276:NAME IS NULL
08/03/06 20:58:36
>>275
order by (id='0002') desc, id
じゃダメ?

277:275
08/03/06 21:14:21
>>276
!!!!!!
そんなのあったんですか。。orz
とてつもなくありがとうございました。

278:NAME IS NULL
08/03/06 21:25:21
>>275
オレならソート用のマスタテーブルを joinして sortカラムとかで order する

279:NAME IS NULL
08/03/07 23:35:42
macアドレスは偽装することが可能だし、
それを認証代わりにすることはリスキーでしょ。
暗号鍵を併用したほうがいい。

280:NAME IS NULL
08/03/08 02:20:04
>>278
激重仕様だなw

281:NAME IS NULL
08/03/08 14:40:21 C6vdEUqT
接続元が動的IPの場合のアクセス制限ってどうやればいいですか?

282:NAME IS NULL
08/03/08 16:46:49
技術的に無理じゃなかろうか。

283:NAME IS NULL
08/03/08 19:21:32
>>281
マスクごと制限しろ

284:NAME IS NULL
08/03/08 23:07:54
INってどういう意味なんですか?
「mysql IN」でぐぐってもINの部分が全く考慮されない検索結果しか出ない(´Д`)

285:NAME IS NULL
08/03/08 23:11:39
>>284
orの代わりに使うもの

select hogehoge in (10,20,30) とあれば
hogehogeが10,20,30のいずれかのものが得られる

286:NAME IS NULL
08/03/09 00:20:40
即レスありがとうございます。
なるほど。

SELECT hogehoge FROM aaaaa WHERE hogehoge = 10 OR hogehoge = 20 OR hogehoge = 30;

と同じ結果が返ってくるのですね。


287:NAME IS NULL
08/03/09 03:21:58
ストアドプロシージャを使って、表を返すスクリプトを作ったのですが、
PHPからCALLすると can't return a result set in the given context と出ます。

コマンドプロンプトでCALLすると、表が表示されるのですが
どうすれば良いでしょうか。 よろしくお願いします。


288:NAME IS NULL
08/03/09 09:36:22
>>287
スレ違い、と言いたいところだが優しくしてあげよう

mysqli関数群を使わないとダメです

289:NAME IS NULL
08/03/11 02:36:31
>>284
ぐぐる前にマニュアル嫁

290:NAME IS NULL
08/03/11 13:54:45
すんません、PHP開発環境のためXAMPPをつかってMySQLインストールしたんですが、
停止できなくなっちゃいました。なんででしょう?
誰かわかったら教えてください。(T_T

エラー:MySQLを停止中にエラーが発生しました。 [0]
とでてます。

前に一度phpMyAdminにアクセスできなくなってパスワードをリセットしようと
したんですが、なんかうまくいかなくて結局再インストールしました。
とりあえず、アクセスできなくなった原因(Cookie)を消去してました。
それが原因かわかりませんがそれ以降再インストールしてもMySQLがXAMPPの
コンパネから終了できなくなりました。

OS:Win
MySQL 5.0.51a
XAMPP 1.6.6a
phpMyAdmin 2.11.4

xampp\mysql\data\.errの書き込み

080311 10:50:33 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '5.0.51' socket: '' port: 3306 Source distribution
080311 11:59:51 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '5.0.51' socket: '' port: 3306 Source distribution
080311 12:04:05 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '5.0.51' socket: '' port: 3306 Source distribution
InnoDB: The first specified data file .\ibdata1 did not exist:
InnoDB: a new database to be created!
080311 13:23:56 InnoDB: Setting file .\ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
080311 13:23:56 InnoDB: Log file .\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
080311 13:23:56 InnoDB: Log file .\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
080311 13:23:57 InnoDB: Started; log sequence number 0 0
080311 13:23:57 [ERROR] Do you already have another mysqld server running on port: 3306 ?
080311 13:23:57 [ERROR] Aborting

080311 13:23:57 InnoDB: Starting shutdown...
080311 13:23:59 InnoDB: Shutdown completed; log sequence number 0 43655
080311 13:23:59 [Note] MySql: Shutdown complete

よろしくお願いします

291:NAME IS NULL
08/03/11 16:27:44
Do you already have another mysqld server running on port: 3306 ?

292:NAME IS NULL
08/03/11 18:48:39
>>291
You are a fool boy!

293:NAME IS NULL
08/03/12 11:37:07
>>290
起動してないから停止できないんじゃないの?

294:NAME IS NULL
08/03/12 18:43:33
こういう奇妙な現象の多くは
操作ミスか設定ミスか。

295:NAME IS NULL
08/03/12 21:28:16 /qYtQmQP
where句にIFをつかい

where IF(a is null,b=1,c=1)
みたいな感じにしてるんですけど、これを入れ子にするにはどうすればよいのでしょうか?

where IF(a is null,IF(b is null,〜,〜),c=1)
イメージはみたいな感じです。

MYSQL4.1.20




次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5390日前に更新/244 KB
担当:undef