元スレMySQL 5.0

みんなの評価 : ○
351 = :
今更潰すは、さすがに考えにくいんじゃないの。
ポスグレに持っていかれるくらいなら、撒き餌として残すだろ。。たぶん。
353 = :
MySQLの次期バージョンを出したり将来のビジョンを提示したりして
今後も発展するんだ、安心だ、と思わせといて飼い殺す。
354 = :
oracleもタダで使う方法もあるしな
356 :
MySQLのオラクルマスターを作ればMySQLに力を入れる
MySQLのオラクルマスターを作らないならMySQLに力を入れない
358 = :
よくないよ
どこか間違ってるよ
360 = :
■セッション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)
■セッション1
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values (1);
Query OK, 1 row affected (0.00 sec)
■セッション2
mysql> select * from test;
Empty set (0.00 sec)
みえないよ?
364 = :
質問ですが、
以下の感じでやろうとしてます
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になります。
mysqlでサブクエリにlimit発行できないので、なにかいい方法があればご教授願います。
365 = :
俺なら、状況に応じて以下のどれかで対応する。
・クエリキャッシュをアテにする
・バッチで予め計算しちゃう
・クエリを分割する
・テーブル分割をやめる
・全部抜いてから計算する
・そもそも高速化する必要があるか考える
366 = :
なあ、ちょっと真剣にマジで教えてほしい
あるデータベースのプライマリキーをキャラクタ属性で設定することのデメリットって何だと思う?
キーはINTにすんのが検索も早そうだし、多分そうなのかも知れんが納得できる理由がはっきりしない
まあCHARだとコレーションで正しくソートされない可能性があったりCOUNTが正しくされないのかも知れないけど
現場レベルでは盲目的に数値型にしてるような気もすんだよね
何か論理的な理由を聞かせてもらえないか?
367 = :
>>366
あんたの現場がすべてではないよ。
単にDB設計をさぼってるだけで、
安易に一意になるものということで連番振ってるだけでしょ。
371 = :
変に括弧とかかかないで
最適化はMySQLに任せてしまったほうがいい・・・はず
372 :
すみません。今日はじめてXAMPPからMySQLをインストールしたんですが
デフォルトでパスワードが無い状態なので、掛けようと思うのですが、
掛け方はいろいろ書いてあるのですが、みんなどこに書いているのかが分かりません。
コマンドプロンプトかと思って入力しても、エラーがおこるのですが
どこに入力したらよろしいのか教えてください
377 = :
読んでそのままでは?
380 = :
>>379
流石にそれはない
383 :
お礼遅れてすいません。ありがとうございます。
やはり自分のところではorder by よりmaxのサブクエリを使った方が早いみたいでした。
386 = :
database「hogedb」の中にテーブル「hoge」「age」「sage」を作ったのだが、
うち一つはselect時にselect * from hogedb.hogeのようにデータベースを指定しないとエラーになる。
なんで??
エラー内容;
RROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'hoge' at line 1
387 = :
Workbenchでテーブルを作成しました。ここからCREATE文のスクリプトを作成することは出来ますが
ついでにInsert文のスクリプトも作成することは可能でしょうか?
(テーブルのタブに「Inserts」というのがあり、ここで投入用のデータをエディタで書けるのだが、ここからどうすればスクリプトに落とせるのか不明)
知ってたら教えて下さい
388 = :
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9188.txt
違ったデータベース名、テーブル名は関係なかった。よくよく見るとスクリプトでテーブルを作るときに警告が
出てた。上にアップしたスクリプトは簡単なテーブルを3つ作るだけなのだが、何がおかしいのだろうか
単純にselect * from order;がエラーになる。(データベース名を指定するとおk)
389 = :
予約語だった。。。知らなかった
ちくしょー!!
390 :
ユーザーがグループに所属していて、グループもまた別のグループに所属しているような階層構造になっている場合、
どうやって所属情報をDBに入れるのが賢いの?
上位グループに所属するユーザーを抽出するクエリがつくりにくいんだけど
392 = :
>どうやって所属情報をDBに入れるのが賢いの?
MySQL捨ててPostgreSQLに入れるのが賢い。
393 = :
何の問題も無いだろ
395 = :
日本語でおk
396 = :
ツリーってDB入れるの無理だろ
397 = :
399 = :
>>396
そのためOracleとかでは階層問い合わせをするための独自の文法が定義
されているし、標準SQLでもSQL99以降で再帰クエリを記述する文法が
追加されている。
こういった拡張を使うとツリーに対する検索とか>>390のクエリなんか
はもっと簡単に書けるよ。
で、フリーのRDBMSではPostgreSQLがこのあたりの拡張によく対応して
いるから、一つの選択肢として紹介したわけで。
http://lets.postgresql.jp/documents/technical/with_recursive/
MySQLというか再帰が無いSQLで書く技もあるけど、結構な頭の体操。
http://www.mysql.gr.jp/mysqlml/mysql/msg/12071
400 = :
随分なスロークエリの悪寒。。しんどいね。。
みんなの評価 : ○
類似してるかもしれないスレッド
- MySQL 総合 Part20 (995) - [14%] - 2011/10/17 4:48
トップメニューへ / →のくす牧場書庫について