MySQL 5.0 (559レス)
1-

358
(1): 2009/04/28(火)08:58 ID:??? AAS
よくないよ
どこか間違ってるよ
359
(1): 2009/04/28(火)09:00 ID:aHnBfSXl(2/2) AAS
>>358
最初に両方からSelectをやっとくと、その後片方がINSERTしたのがもう片方からすぐに
見えるんだけど、なにか間違ってるんでしょうか?
360: 2009/04/28(火)15:24 ID:??? AAS
■セッション1
mysql> set transaction isolation level serializable;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;
Empty set (0.00 sec)

■セッション2
mysql> set transaction isolation level serializable;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;
Empty set (0.00 sec)
省9
361: 2009/04/28(火)22:31 ID:??? AAS
>>359
テーブルが InnoDB じゃなくて MyISAM になってるとか。
362
(2): 2009/05/01(金)01:09 ID:vXvzRfg3(1) AAS
すいません質問させてください。

外部リンク:q.hatena.ne.jp
このページと同じ質問なのですが、やはり3番のsqlがベストなのでしょうか??
「特定のカラムの値がそのテーブルの特定の条件のもとで最大値を有しているレコードをselectする」というのが割と簡単にできるのではないかと思っていたのですが、
ここの回答のように副問い合わせするのが一番無難な感じなのでしょうか?
order by xx desc limit 0, 1
も試してみましたが、全レコードをsortするためか、副問い合わせを使ったものよりレスポンスが遅めでした。(レコードが10万件くらいある。。)
アドバイス頂けると幸いですm(_ _)m
363: 2009/05/01(金)03:24 ID:??? AAS
>>362
Table構成がそのはてなの質問と同じとして、id及びgoods_idに
複合インデックスが貼ってあり、それがユニークか、Hit率がテーブル全体のレコード数より
十分少なければ、order by descが早いんでないかな。
もっと言うと、INDEX(id,goods_id,date)で複合インデックスがあればなおよし。

でなくて、idとgoods_idの値が、レコード全体の多くにHitしてしまう場合は、
そこにあるようにサブクエった方が早そうな感じ(もちろんdateにインデックスが貼ってあるとして)。
364
(1): 2009/05/01(金)17:12 ID:??? AAS
質問ですが、

以下の感じでやろうとしてます

select 学生id ,出席日数,出席率 from 学生名簿
left join 
(select sum(出席) as 出席日数 , sum(round(出席数/365,2)) as 出席率 ,学生id from 出席簿
 where 学生id in ( select 学生id from 学生名簿 order by 学生名 limit 0,50) group by 学生id) as 出席データ on 出席データ.学生id=学生名簿.学生id
order by 学生名 limit 0,50

学生名簿(カラム):学生id(primarykey),学生名
出席簿(カラム):学生id,日付,出席(enum(1,0))

limitができれば高速になるんですが、ないとusingfilesortになります。
省1
365: [sage バッドノウハウ集] 2009/05/01(金)19:05 ID:??? AAS
俺なら、状況に応じて以下のどれかで対応する。

・クエリキャッシュをアテにする
・バッチで予め計算しちゃう
・クエリを分割する
・テーブル分割をやめる
・全部抜いてから計算する
・そもそも高速化する必要があるか考える
366
(1): 2009/05/02(土)00:09 ID:??? AAS
なあ、ちょっと真剣にマジで教えてほしい
あるデータベースのプライマリキーをキャラクタ属性で設定することのデメリットって何だと思う?
キーはINTにすんのが検索も早そうだし、多分そうなのかも知れんが納得できる理由がはっきりしない
まあCHARだとコレーションで正しくソートされない可能性があったりCOUNTが正しくされないのかも知れないけど
現場レベルでは盲目的に数値型にしてるような気もすんだよね
何か論理的な理由を聞かせてもらえないか?
367: 2009/05/02(土)00:12 ID:??? AAS
>>366

あんたの現場がすべてではないよ。

単にDB設計をさぼってるだけで、
安易に一意になるものということで連番振ってるだけでしょ。
368: 2009/05/02(土)00:27 ID:??? AAS
プライマリーキーはchar型かそれとも数値型か
2chスレ:db
369: 2009/05/02(土)00:36 ID:??? AAS
>>364
>( select 学生id from 学生名簿 order by 学生名 limit 0,50)
一見するとこれいらないと思うんだが。
370
(2): 2009/05/02(土)23:21 ID:iDaEn/bV(1) AAS
3つのテーブルをjoinするときに、

A left join B on A.id=B.id left join C on B.id=C.id

というふうにするのと、

(A left join B on A.id=B.id ) left join C on B.id=C.id

というふうに括弧で囲むのとって、どちらのやりかたが適切とかありますか?
371: 2009/05/03(日)09:13 ID:??? AAS
変に括弧とかかかないで
最適化はMySQLに任せてしまったほうがいい・・・はず
372: 2009/05/03(日)22:18 ID:EMVU4nk/(1) AAS
すみません。今日はじめてXAMPPからMySQLをインストールしたんですが
デフォルトでパスワードが無い状態なので、掛けようと思うのですが、
掛け方はいろいろ書いてあるのですが、みんなどこに書いているのかが分かりません。
コマンドプロンプトかと思って入力しても、エラーがおこるのですが
どこに入力したらよろしいのか教えてください
373: 2009/05/04(月)00:04 ID:??? AAS
>>370
絶対に括弧で囲まないとだめ。
joinするときの結合キーがそのテーブルのprimary keyなら結果は同じなんだけど、
そうでない場合、括弧で囲む場合と、そうでない場合で結果がかわる。

なぜかというと、括弧なしの場合、AとBをjoinした結果フェッチする行数が存在しない場合でも、
BとCのleft joinを行うからだ。
374
(1): 2009/05/04(月)06:11 ID:pQt/LC0v(1) AAS
質問です。

バイナリログがうまく書き込めないんです。
以下のようなログが出てます
----------------------------------------------
/home/mysql/data$ mysqlbinlog mysql-bin.000008
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
mysqlbinlog: File 'mysql-bin.000008' not found (Errcode: 13)
# End of log file
ROLLBACK /* added by mysqlbinlog */;
省3
375: 2009/05/04(月)09:26 ID:??? AAS
>>374
mysql-bin.000008 かそれが置いてあるディレクトリにパーミッションがない。
376: 2009/05/05(火)19:52 ID:+Yc0J8ac(1/2) AAS
バイナリログに、いつもファイルの最後にこんなのがでるんだけど。
ROLLBACK /* added by mysqlbinlog */;

これ、何かわかる人いますか?
377
(1): 2009/05/05(火)21:41 ID:??? AAS
読んでそのままでは?
1-
あと 182 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.376s*