のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,646,209人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレMySQL 総合 Part12

mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitter
953 : NAME IS - 2008/01/24(木) 21:26:37 ID:??? (+28,+29,-1)
PKをつけていったい何をしたいんだ
954 : NAME IS - 2008/01/24(木) 22:45:49 ID:??? (+31,+29,-2)
>>953

引き分けに決着を付けたいんだろう。
955 : 952 - 2008/01/24(木) 23:15:06 ID:??? (-27,-30,-131)
Middlegenという、DBに接続してDDLから各種設定ファイルとJavaクラスを出力ツールを使用しておりまして。

こいつがViewやPKがないテーブルを元に設定ファイルを出力すると、設定ファイルでは全属性をPKと見なす設定になってしまい、
カラムにnullの値を持つデータが存在するとViewから値がうまく取得できない現象が起きてしまうのです。。。

もともとのアプリではOracleを使用していたため、ViewにPK制約を付けて上記の現象を回避していたのですが、
自分の開発PC単体でもそのアプリを使えるようにMySQLを使用しようかと思い、MySQLでも同様の回避策が可能かどうか知りたくて質問させていただきました。
956 : NAME IS - 2008/01/24(木) 23:32:29 ID:??? (+27,+29,-14)
ツールのためにDBの構造を変更するのは
本末転倒に思えるがどうか
957 : NAME IS - 2008/01/25(金) 03:15:59 ID:??? (+32,+29,-87)
今来た。

今後の国内サポートとしては、なんか存在感無かったABから、用賀のサンマイクロ部隊になるのかな?
結局、商用で大規模になってくると、Sun+Oracle RACって営業的に儲かる方向に移行させられる気もするが。
それでもDB2/iシリーズに嵌め込まれるIBMよりは逃げ道ありそうだが。
958 : NAME IS - 2008/01/25(金) 12:39:34 ID:??? (-27,-30,-61)
テーブルuser_tblから更新順に10行のデータを取得する際
SELECT * FROM user_tbl ORDER BY uptime LIMIT 0,10;
でいけるのですが、仮にこの10行の中にuser_idがrootのものがあった場合、user_idがrootのものを並び順の一番上にしたいのですがどんな書き方があるでしょうか?
959 : NAME IS - 2008/01/25(金) 13:37:18 ID:??? (-27,-30,-67)
SELECT * FROM
(SELECT * FROM user_tbl ORDER BY uptime LIMIT 0,10) U
WHERE user_id = 'root'
UNION ALL
SELECT * FROM
(SELECT * FROM user_tbl ORDER BY uptime LIMIT 0,10) U
WHERE user_id != 'root'
;

ちょっと遅いけど
961 : NAME IS - 2008/01/26(土) 15:51:21 ID:??? (+15,+27,+0)
そうですか
962 : NAME IS - 2008/01/26(土) 17:30:51 ID:Kl4pFwJ8 (-27,+22,-2)
もうアンインストールしましたので問題ありません。
963 : NAME IS - 2008/01/26(土) 19:28:35 ID:??? (+15,+27,+0)
そうですか
964 : NAME IS - 2008/01/26(土) 19:58:34 ID:??? (-21,-30,-31)
ある条件を満たすレコードがあるかどうか を調べるとき

SELECT * FROM hoge WHERE 条件 LIMIT 1;
としてレコードの有無を調べる

SELECT COUNT(*) as count FROM hoge WHERE 条件;
としてcountが0かどうかを調べる

のどっちがより速いのでしょうか
965 : NAME IS - 2008/01/26(土) 20:55:55 ID:??? (+27,+29,-41)
あるかどうか確認したあとに、今度はちゃんとしたselectを実行するだろうから、二度手間だよ。
それなら初めからちゃんとしたselectして、結果の件数を調べた方がマシ。
967 : NAME IS - 2008/01/26(土) 21:09:10 ID:mcIaFhlk (+29,+29,-5)
プログラムで何とかする

さばを変える
969 : NAME IS - 2008/01/26(土) 21:10:34 ID:??? (+31,+29,-29)
>>967
ありがとうございます
やはり一度プログラムで取り込んで加工するしかないですか
予算的にサーバは変更できないのでプログラム側でなんとかしてみます
970 : NAME IS - 2008/01/26(土) 21:11:43 ID:??? (+17,+29,-6)
>>968
やはり使えるバージョンにあげるしかなさそうですね
諦めて力技でなんとかしてみます
ありがとうございました
974 : NAME IS - 2008/01/27(日) 12:04:20 ID:??? (-22,-30,-32)
>>964
>>972

show session status like 'Handler\_read%';
の値をSQLの前後でチェックすれば
内部的に読み込んだレコード数がわかるよ。
975 : 964 - 2008/01/27(日) 17:46:31 ID:??? (+28,+29,-10)
>>974
ありがとう! おかげで気持ちがすっきりしそうです。
お礼といってはなんですが、うちに来て妹とファックしてもいいですよ
976 : 974 - 2008/01/27(日) 19:23:51 ID:??? (+36,+29,-20)
>>975
お言葉に甘えてファックしたいので、写真を送って下さい。
メール欄まで至急お願いします。
977 : NAME IS - 2008/01/27(日) 20:49:09 ID:Tf02t+/w (+14,+29,-4)
>>973
扱える最大値が振られ続けるよ。
978 : NAME IS - 2008/01/27(日) 21:12:39 ID:??? (+29,+29,-16)
>>976
あの・・・特定できちゃったんですけど・・・
削除依頼出した方がいいと思います。
979 : NAME IS - 2008/01/27(日) 21:26:27 ID:??? (-28,-29,-17)
>>978

kunio-watanabe か。

ググってもたくさんいるみたいだから特定はできないな。
削除対象にならないだろう。

980 : NAME IS - 2008/01/27(日) 21:36:45 ID:??? (+15,+22,-3)
釣り文化資料館w
981 : NAME IS - 2008/01/27(日) 22:50:03 ID:eb11nRJr (+0,+0,+0)
すみません、ちょっと長いけどお願いします。

select tid as num,title,body,datetime from message where tid <> 0 order by datetime desc;
+------+-------+-----------+---------------------+
| num | title | body | datetime |
+------+-------+-----------+---------------------+
| 3 | NULL | drfgrf | 2008-01-24 11:41:55 |
| 1 | NULL | gdfg | 2008-01-24 11:41:03 |
| 1 | NULL | rdfgfdxgg | 2008-01-24 11:33:16 |
+------+-------+-----------+---------------------+

select id as num ,title,body,datetime from message where tid=0 order by datetime desc;
+-----+--------------+----------+---------------------+
| num | title | body | datetime |
+-----+--------------+----------+---------------------+
| 3 | ゆゆゆゆゆゆ | xfgh | 2008-01-24 11:34:59 |
| 1 | Yahoo!JAPAN | aaaaa | 0000-00-00 00:00:00 |
+-----+--------------+----------+---------------------+

上記をUNIONでつなげると、下記のようになります。
+------+--------------+-----------+---------------------+
| num | title | body | datetime |
+------+--------------+-----------+---------------------+
| 3 | NULL | drfgrf | 2008-01-24 11:41:55 |
| 1 | NULL | gdfg | 2008-01-24 11:41:03 |
| 1 | NULL | rdfgfdxgg | 2008-01-24 11:33:16 |
| 3 | ゆゆゆゆゆゆ | xfgh | 2008-01-24 11:34:59 |
| 1 | Yahoo!JAPAN | aaaaa | 0000-00-00 00:00:00 |
+------+--------------+-----------+---------------------+

これを、numの値が重複しないように取り出したいのですが、どうのようにすればいいでしょうか。
上の例だと、
| 3 | NULL | drfgrf | 2008-01-24 11:41:55 |
| 1 | NULL | gdfg | 2008-01-24 11:41:03 |
の行を取り出したいです。
下のほうの行はもうnumが1のものと3のものがあるのでいりません。
982 : NAME IS - 2008/01/28(月) 00:25:29 ID:??? (+0,-29,-20)
>>981
GROUP BY numすればいいんじゃね?
何が取得できるかはお楽しみになるけど
983 : NAME IS - 2008/01/28(月) 21:46:39 ID:??? (-17,-30,-130)
2005ExpressEditionで勉強し始めたばっかりなんですけど、
testdbという名前で作ったのをmanagement studioから消してもう一度
作ろうとすると

ファイル 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\
testdb.mdf'は既に存在するので作成できません

というメッセージが返ってきて作成することが出来ません。このファイルの
消し方、教えてください。

ちなみに alter database remove file testdb では
'file' 付近に不適切な構文があります。というエラーになっちゃってます。
984 : NAME IS - 2008/01/28(月) 22:23:38 ID:??? (+27,+29,-8)
mySQLは、ナルシストDBだろ。
どういうことか、分かるよね。
985 : 983 - 2008/01/28(月) 23:01:07 ID:??? (+7,+14,-15)
猛烈に誤爆 スマソ
986 : NAME IS - 2008/01/29(火) 02:20:15 ID:??? (-14,-29,-70)

MySQL4.0で構築したシステムがあるのですが、この度5.1に移行することになりました。
そこで、SQLを書き換えて副問い合わせを使おうと思っているのですが、
性能的にメリットってありますでしょうか?

副問い合わせのメリットって、何でしょうか?

987 : NAME IS - 2008/01/29(火) 02:39:07 ID:??? (+25,+29,-53)
副問い合わせは一度の実行で役目を果たすんで、内部でグリグリ操作するよりはマシなんじゃね。
メリットを聞かれてもバカなので分からんが、副問い合わせ使った方が楽じゃん。
989 : NAME IS - 2008/01/29(火) 06:21:26 ID:??? (+29,+29,-52)
>>986
単純に、向こうでネイティブに全部済ませて答えが返ってくるわけだから
「コードで処理して2回SQL投げる」よりは、どう考えても速いわね。
990 : NAME IS - 2008/01/29(火) 08:13:46 ID:??? (+25,+28,-1)
>>989
これこれ、単純すぎ。
993 : NAME IS - 2008/01/29(火) 23:11:50 ID:??? (+38,+29,-111)
大抵の場合、負荷は
アプリケーションサーバ < データベースサーバ
だから、アプリケーション側でやっちゃった方がスケーラビリティはあがる。
それにデータが膨大になってきたときに、データベースサーバの分割もしやすいしなー
Web企業的考え方。

データベースサーバは超ハイスペックなものを使っていて余裕有りまくり。
無駄なデータのやりとりするくらいならストアドプロシージャ/サブクエリでやってしまおう。
SI的考え方。
994 : 981 - 2008/01/29(火) 23:52:35 ID:??? (+0,+28,+0)
>>982
今更だけどありがとう。
995 : 0 - 2008/01/30(水) 00:10:33 ID:??? (+38,+29,-179)
>>993
>だから、アプリケーション側でやっちゃった方がスケーラビリティはあがる。
スケーラビリティというのは辞書で調べたら拡張性と書いてありました。
つまり、副問い合わせを使わない方がプログラムがシンプルになって、
機能追加がしやすいというということでしょうか?


>それにデータが膨大になってきたときに、データベースサーバの分割もしやすいしなー
副問い合わせを使わないと、データベースサーバの分割をしやすくなるというのは
具体的には何故なのでしょうか?

初心的な質問ですいません。。

996 : NAME IS - 2008/01/30(水) 00:15:15 ID:??? (+27,+29,-25)
彼が言いたいのは、トランザクション量に応じて処理量も伸びるかという事じゃないかな
997 : NAME IS - 2008/01/30(水) 01:06:28 ID:??? (-27,-30,-230)
もし不適切だったら誘導願います。

MacOS X 10.5.1
Server version: 5.0.51 Source distribution

データベースの文字コードはutf8にしています。
MacPortでインストールしました。

Terminal.appからmysql5 を起動してselectを実行した場合、結果の日本語
は正しく表示されます(Terminal.appとデータベース、mysql5の文字コード
は合っている)。

しかし、where句などに日本語を入力しようとすると ???? になりうまく行き
ません。
日本語を含むクエリをファイルにしておいて、mysql5に食わせるぶんには問題
ありませんが、日本語が必要なたびにこれでは煩わしすぎます。

どうすればうまく日本語入力できるでしょうか。
ちなみに、bash上では日本語入力もうまく行きます。

宜しくお願いします。
998 : NAME IS - 2008/01/30(水) 02:51:17 ID:??? (+17,+29,-1)
999 : NAME IS - 2008/01/30(水) 02:55:08 ID:??? (+18,+30,+0)
1000 : NAME IS - 2008/01/30(水) 03:45:38 ID:??? (-15,-8,+0)
1000ならオレがMySQLになる
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について