MySQL 5.0

このエントリーをはてなブックマークに追加
1シナイ山
このスレッドの執筆時には、まだバージョンもアルファ段階で正式リリースされる
まで程遠いが、これから新しい機能を試してみたいとかボラクルに取って代わり
低コストで次世代データベース開発のために利用したいエンジニアは今こいう時だから
こそver.5.0に着目したいところだ。

5系がまだアルファ段階だからといって敬遠するの良いが、テストマシン上で独自に開発を
して、テストマシン等で実運用するのも一つの道であろう。

開発の成果は、MySQLやOpenBSDに随時報告することが重要だ。
2NAME IS NULL:04/04/13 10:29 ID:by4C3cBC
2グッシ!
3NAME IS NULL:04/04/13 16:12 ID:vsQHurnf
MySQL 5.0
テスト運用ではなく
個人情報(クレジット情報含む)のデータベースとしてバリバリ本稼動させてます
4NAME IS NULL:04/04/13 16:57 ID:by4C3cBC
よっ、漢!
5NAME IS NULL:04/04/13 19:47 ID:???
@ITの今日の記事見てきたけど
4.1からユニコード使えたっけ?
4.1か5の区分も棒グラフでわかりづらいのだが・・・。
当方4.1ではJavaでMS932のデータは格納できず
Shift_JISのみ格納できると結論付けているが・・・。
認識違いだったらスマソ。
6NAME IS NULL:04/04/13 21:20 ID:+9bcE52b
>>3
どっかの会社から受けたオンラインショッピングでも作ってんの?
7NAME IS NULL:04/04/14 16:17 ID:???
>>5
部分的な不具合はアルファだから残ってるけど、
機能として盛り込むという点ではMySQL4.1から
http://dev.mysql.com/doc/mysql/en/Nutshell_4.1_features.html
85:04/04/14 17:29 ID:???
>>7
レスありがとん。実は勘違いしてました。
4.1じゃなくて4.0はおろか3.2356で動かしてた。
音符が入るのに何でかっこ株入らんのかいな?
ってひとりで混乱してた・・・。失礼しました。
9NAME IS NULL:04/04/15 10:32 ID:Cwu6yyaA
5.0使つてみたが、特にこれといつたバグは見つからんかったな。日本語を扱ふときはEUC-JPで良いんだろ。レコード単位でのロックは、だふしたら良ゐのかな。
105:04/04/16 17:28 ID:???
>>9
失礼しました。DBのキャラクタセットsjisでした(泣
プログラムでEUC-JPに変換したときと
DBの設定でEUC-JPにしたときの違いなどが認識不足でした。
そのあたりも含めて
総合スレに逝ってログ見て勉強しなおしてきます・・・。
11NAME IS NULL:04/04/18 14:09 ID:sQJEfw06
問題は一つのテーブルにつき何行まで対応しているかだな。
12NAME IS NULL:04/04/23 03:21 ID:???
>1
ところでなんでOpenBSDに報告なんですか?
13NAME IS NULL:04/05/06 05:40 ID:ULwWMwcJ
5.0が正式にリリースされるのは何時頃よ。
14NAME IS NULL:04/05/06 06:37 ID:5ufiEJ69
>>13
来週MySQL ABの社長が日本に来るから聞いてみたら。
15NAME IS NULL:04/05/08 01:17 ID:???
それより何より、レプリケーションですよ。
マルチマスタが出来ないと、実際の運用が厳しい。
はやく組み込まれないかなぁ
16NAME IS NULL:04/05/19 02:24 ID:1/NWDgMc
MySQL ABは何故、この先一般大衆に広まるまで相当な時間を有するであろ4.1とか5.1を敢えて開発という名目で出したのか分からん。
17NAME IS NULL:04/06/08 22:40 ID:Azn6jyNs
5.0以降は、オラクル並みの機能を備えたDBMSになるのかなぁ。
18NAME IS NULL:04/06/09 22:56 ID:???
どうかな?
でもSAP DBにある機能は付くんじゃないの?

19NAME IS NULL:04/08/28 17:55 ID:z9RoUx+F
質問させてください。
version: 5.0.1-alpha-standard-log
を使用しています。

stored procedureの機能を確かめたくて使ってみたんですが、procedureがcall出来ません。
例)
delimiter //
CREATE PROCEDURE test()
BEGIN
SELECT "hoge" as hage;
END
//

delimiter ;
--
として、
call test();
としたら、
ERROR 1304 (42000): PROCEDURE hoge.test does not exist
となります。
show procedure status;
で確認すると
hoge DBに test procedureは存在します。

どういう事なんでしょうか?

#ちなみにdrop procedureも同様のエラーで動作しません。
20NAME IS NULL:04/09/19 15:31:24 ID:???
delimiter //
Drop procedure IF EXISTS test //
CREATE PROCEDURE test()
BEGIN
SELECT "hoge" as hage;
END;
//

call test()//
21NAME IS NULL:2005/04/02(土) 15:58:58 ID:???
そろそろβ?
22NAME IS NULL:2005/04/07(木) 00:30:41 ID:???
もうベータ
23NAME IS NULL:2005/09/02(金) 23:27:21 ID:???
もうそろそろ出そうなふいんきなわけだが、新機能についてまとめてあるページない?
24NAME IS NULL:2005/09/03(土) 00:38:39 ID:???
25NAME IS NULL:2005/09/03(土) 01:12:06 ID:???
ふーん。
普通のDBMSになるんだなw
その分スピードが犠牲になるんだろうなぁ。
26NAME IS NULL:2005/09/03(土) 12:39:32 ID:???
新機能を使わなきゃスピードが犠牲になったりはしないんじゃね?
そういう感じの拡張になってたはずだけど。
27NAME IS NULL:2005/09/13(火) 22:47:40 ID:???
>>25
テーブル形式で各々が使うファイルとロジックが完全に分離されている。
だから、唯一定評のある MyISAM の速度はほぼ昔のままだよ。
といっても SQL の解析ロジックは 4.1 以降拡張されてるけどね。

とりあえずソースファイル嫁。
28NAME IS NULL:2005/11/05(土) 23:07:24 ID:urZZ/Ba6
エクセルVBAでMYSQLと接続する方法を教えてください。
ODBCドライバ使えばできるらしいのですが、
私が持ってるVBAの本にはまるでかかれてません。
29NAME IS NULL:2005/11/05(土) 23:49:23 ID:???
30NAME IS NULL:2005/11/06(日) 14:43:22 ID:???
>>28 この板から消えろ 馬鹿すぎ

28 名前: NAME IS NULL Mail: 投稿日: 05/11/05(土) 23:07:24 ID: urZZ/Ba6

エクセルVBAでMYSQLと接続する方法を教えてください。
ODBCドライバ使えばできるらしいのですが、
私が持ってるVBAの本にはまるでかかれてません。

50 名前: NAME IS NULL Mail: 投稿日: 05/11/05(土) 23:07:55 ID: urZZ/Ba6

エクセルVBAでMYSQLと接続する方法を教えてください。
ODBCドライバ使えばできるらしいのですが、
私が持ってるVBAの本にはまるでかかれてません。


763 名前: NAME IS NULL Mail: 投稿日: 05/11/05(土) 22:51:01 ID: urZZ/Ba6

エクセルVBAでMYSQLと接続する方法を教えてください。
ODBCドライバ使えばできるらしいのですが、
私が持ってるVBAの本にはまるでかかれてません。
31NAME IS NULL:2005/11/11(金) 04:07:24 ID:???
そういえば、いつだかのWindows Updateから、MS-AccessからMySQLのODBC
使えなくなったのって、今は直ってるのかな。
ちょっとまえは、Window UpdateであがってしまったMDACのバージョンを元に戻せ、
という話しか見つからなかったが。

会社で使おうと思ったとき、会社のPCのセキュリティポリシーから、MDACのバージョン
古いのを使うわけにはいかず、MySQLを使うのをあきらめたものもある。
32NAME IS NULL:2005/12/03(土) 00:20:59 ID:???
つ M$のいやがらせ
33NAME IS NULL:2005/12/08(木) 20:43:31 ID:q4xs/OQo
マク版エクセル、ダメ元でMySQL繋いだらイケた。
MS製なのにiODBC使ってるのが泣かせる。
34NAME IS NULL:2005/12/24(土) 23:02:01 ID:???
mysql-5.1.4-alpha-win32テスト運用中で
MyODBC-3.51経由でアクセスしてるんだけど
マニュアル読んで、

c:\my.cnf
[mysqld]
skip-character-set-client-handshake
default-character-set=cp932

とかやっても"ソ表"みたいに2バイト目が\な文字が化ける。
良く分らん。
35NAME IS NULL:2005/12/25(日) 06:18:30 ID:CfwKIhPw
grantでユーザを作りました。
use mysql;
select USER();してもrootしか表示されず、
作ったユーザが表示されませんでした。
mysql5は故障してますか?
36NAME IS NULL:2005/12/26(月) 01:26:00 ID:???
>>35
select * from user;
37NAME IS NULL:2006/01/05(木) 23:18:54 ID:DdseHqzl
select count が遅いのですが、仕様ですか?
38NAME IS NULL:2006/01/05(木) 23:34:25 ID:???
>>37
where句に何か書いてる?
あと、innoDB? MyISAM?
39NAME IS NULL:2006/01/06(金) 00:20:01 ID:???
>>38 innoDB にしてます。 where句は、書いても書かなくても変わりませんでした。
40NAME IS NULL:2006/01/06(金) 22:39:18 ID:???
ttp://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html
の真ん中へんにあるように、InnoDBはrowの数を保持してないのですよ。
(MyISAMは保持してるので速い)

>To get a fast count, you have to use a counter table you create yourself
>and let your application update it according to the inserts and deletes it does.

とか書かれちょります。
 あとは「更新頻度が低いならクエリキャッシュを使え」とか、
正確でなくていいならSHOW TABLE STATUSを使うのもいいんじゃねとか、そんな感じ。

 MyISAMのほうが速いのを利用して、レプリケーション先をMyISAMにして
そっちでcount(*)する技もないではない。

 お好きな方法をどうぞ。

4137:2006/01/06(金) 23:41:12 ID:???
>>40
お調べいただいて、ありがとうございます。

LOAD DATA した後に確認したかったんですが、
それほど重要なデータでもないので、しばらくは
SHOW TABLE STATUSで確認することにします。
42NAME IS NULL:2006/01/11(水) 08:31:16 ID:???
※重要
  我々のファウソダーは15糞ルールというのを守り続けています。
  それは15糞以内に、ダウンロード、インストール、使用ができることです。
  これ以上かかるようならトイレに流してください。
43NAME IS NULL:2006/01/12(木) 21:40:53 ID:7YlGT1cD
差・共通集合演算は未対応ですか
44NAME IS NULL:2006/03/25(土) 21:53:39 ID:Kbd6Xz91
ISAM可愛いよぼくのISAM
45NAME IS NULL:2006/03/25(土) 22:50:36 ID:???
今更ISAMなんて使うんじゃねーよ。
MyISAMの何が不満なんだよ!

46NAME IS NULL:2006/03/25(土) 23:31:10 ID:???
>>45
あんた野暮だね
47NAME IS NULL:2006/03/26(日) 12:38:02 ID:???
いや、マジで困ったんで。。。>今更ISAMな奴
48NAME IS NULL:2006/03/27(月) 06:35:22 ID:???
InnoDB可愛いよぼくのInnoDB
49NAME IS NULL:2006/03/27(月) 22:50:10 ID:???
>>48

InnoDBはOracleに乗っ取られますた。
50NAME IS NULL:2006/03/27(月) 23:17:35 ID:???
>>45
野暮ついでだがそこは
InnoDBの何が不満なんだよ!
のtypoかと思はれ
51NAME IS NULL:2006/05/13(土) 17:55:43 ID:NPZBoiQ0
おっす!オラ悟空
MySQL 4 から MySQL 5 へのデータベースの移行は
一度フルダンプして持って行くことになるのかな?
52NAME IS NULL:2006/05/13(土) 22:49:18 ID:???
4.1ならそのままで大丈夫だと思う。

4.0なら、文字コードの扱いによってはそのままで大丈夫なはず。

ここが参考になると思います。
ttp://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_40

53NAME IS NULL:2006/05/16(火) 21:18:10 ID:???
JavaサーブレットからMySQLに接続するプログラムを作成しているのですが、
上手く接続出来なくて困っています。

以下ソース
Class.forName("org.gjt.mm.mysql.Driver");
Connection conn=DriverManager.getConnection( "jdbc:mysql://localhost/user_db", "", "" );

上記のようなソースで、connがnullになってしまいます。

環境は
OS・・・centOS 4.3
jdk・・・1.5.0_06
Apache・・・2.0.54
Tomcat・・・5.5.16
JDBC・・・mysql-connector-java-3.1.12-bin.jar
です

御教授の程、宜しくお願いします。
54a:2006/05/20(土) 20:48:09 ID:QcPxt9BR
ユーザー名とパスワードはNULL?

あと、接続処理部分だけをコピペしてテスト用のクラスを作って実行して、
そのエラーメッセージは確認した?
55NAME IS NULL:2006/05/20(土) 22:25:22 ID:???
C言語で作成したプログラムでデータ挿入、取得しています。
Shift-Jis文字列のデータを挿入し、mysql_fetch_rowで取得しましたが、
Shift-Jis文字ではないものが返ってきているようです。
Shift-Jis文字で取得する方法はないでしょうか?
5655:2006/05/20(土) 23:49:39 ID:???
解決しました。
プログラムのくだらないバグでした。
とくになんの設定もなく取得できました。
5753:2006/05/21(日) 13:55:45 ID:???
>>54
レスありがとうございます
ttp://www.mysql.gr.jp/mysqlml/mysql/msg/8552

上記の掲示板の内容を見ながら、同じように
ユーザ名とパスワードを入れて、
localhostの部分をcentosのPC名(ホスト名かな)に変更したら接続出来ました
58NAME IS NULL:2006/06/22(木) 04:15:08 ID:1d2hPd6+
だめだ、MySQLサーバがまたダウンorz

どっか年3万以内でMySQLがある程度快適なレンタルサーバ知らない?
59NAME IS NULL:2006/06/22(木) 20:16:28 ID:???
356 名前: NAME IS NULL Mail: 投稿日: 2006/06/22(木) 04:15:41 ID: 1d2hPd6+
だめだ、MySQLサーバがまたダウンorz

どっか年3万以内でMySQLがある程度快適なレンタルサーバ知らない?

357 名前: NAME IS NULL Mail: sage 投稿日: 2006/06/22(木) 04:19:30 ID: ???
>>356
ロリ。サーバー1台じゃないが。

358 名前: 356 Mail: 投稿日: 2006/06/22(木) 11:48:29 ID: AgHOUkWe
レスTHX。
実はいま使ってるのがロリ。。。orz

MySQLはさくらとかの方がいいのかな?

359 名前: NAME IS NULL Mail: sage 投稿日: 2006/06/22(木) 13:07:06 ID: ???
>>356
ロリポップはレスポンスが悪いので、移転中です。
移転先はさくら。
年6,000円。
60aux:2006/06/23(金) 10:43:13 ID:o9+fL5i2
FedoraCore5のMySQLのバージョンは調べた結果5.0.18でした
これからFC5を使いたいと思っています
yum update
すると
MySQLのバージョンはいくらに更新Sれるでしょうか?
61NAME IS NULL:2006/06/24(土) 10:43:28 ID:l1e0xhoR
おいおい、まだ匿名ユーザ消してないのかよ。
この状況を理解してる?
さっさと匿名ユーザを消したソースを配布白。
15分ルールとか言ってるぐらいならくだらんことさせるなよ。
62NAME IS NULL:2006/08/08(火) 04:58:39 ID:Fb/yQmu1
誰か、俺の質問を受けてくれないかな?

root のパスワードを設定したんだ。しかし、その後なぜか拒否される。

それで、mysqlを確認してみようと思いmysqlユーザで接続した。

[root@localhost etc]# mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
[root@localhost etc]# mysql -u mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.0.25-standard

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;
+----------+
| Database |
+----------+
| test |
+----------+
1 row in set (0.00 sec)

mysql>

あれ、mysqlデータベースがないじゃないか!

さて、どうしたらいいんだおるか?
63NAME IS NULL:2006/08/08(火) 09:46:10 ID:???
>>62
# mysql -u root -p
64NAME IS NULL:2006/08/09(水) 22:41:11 ID:MhvThrSV
MySQLにあるデータベースのテーブルをAccessでを表示させようとするのですが
ODBCでデータソースを作ってテスト接続もOKなのにテーブルを表示しようと
するとエラーになります。
MySQLはVersion5でAccessは2002なのですが何か設定でもあるのでしょうか?
教えてほしいです。お願いします。


65NAME IS NULL:2006/08/09(水) 22:43:53 ID:???
通りすがりのエスパーですが、何のエラーなのか透視できませんでした
66NAME IS NULL:2006/08/09(水) 22:49:50 ID:???
エラーを書くのを忘れていました…。
エラーなのですが

ODBC--呼び出しが失敗しました。
[MySQL][ODBC 3.51 Driver]User cancelled.(#0)

と表示されます。
どうすればいいのでしょうか?
67NAME IS NULL:2006/08/10(木) 14:42:07 ID:???
その前に、マルチはやめろ

http://pc8.2ch.net/test/read.cgi/db/1148936556/950
68NAME IS NULL:2006/09/17(日) 02:16:29 ID:mk6QgbEu
age
69悩み人:2006/10/19(木) 00:47:56 ID:T6+foHou
PHPからMYSQLに接続したいのですがどうしてもつながりません。
mysql_connect関数を使い接続しようとしたのですが、
Call to undefined function mysql_connect()
というエラーが出て、接続できません。誰かわかる方教えてください。
70NAME IS NULL:2006/10/19(木) 10:51:08 ID:???
71NAME IS NULL:2006/10/19(木) 10:52:36 ID:???
俺には>>69が馬鹿だという事しかわからない
72NAME IS NULL:2006/10/19(木) 22:11:52 ID:???
それで充分
73NAME IS NULL:2006/10/20(金) 08:08:13 ID:???
>>69
エラー嫁
74NAME IS NULL:2006/10/31(火) 11:11:17 ID:???
断る!
75NAME IS NULL:2006/10/31(火) 14:35:15 ID:???
エラーは嫁にしたくない
76NAME IS NULL:2006/10/31(火) 15:21:41 ID:/92qbdm8
質問おねがいいたします。
昇順ソートでnullのレコードを最後にしたいのですが

Select * from tablename order by field desc nulls first/last
mysqlでは語尾のコマンドが指定できませんか?

case文を書いてやらねばならないんでしょうか?
77sage:2006/10/31(火) 15:23:38 ID:/92qbdm8
すみません。descはascの間違いです
78NAME IS NULL:2006/10/31(火) 16:20:52 ID:???
使い終わったら mysql_free_result を呼ぶ ってのは
習慣づけた方がいい? どうでもいい?
79NAME IS NULL:2006/10/31(火) 22:23:41 ID:???
>>78
すぐ終わるプログラムならどうでもいい。
ずっといすわるプログラムで mysql_free_result を呼ばなければメモリリーク。
80NAME IS NULL:2006/11/01(水) 13:01:28 ID:???
httpで受けわたされた title, player, yearをそれぞれデータベースに挿入したいのですが、
下記のやり方ではうまく行きません。

$query = "insert into cds (titel, interpret, jahr)";
$query .= "values ({$_GET['title']}, {$_GET['player']}, {$_GET['year']});";

恐らく二行目が悪いとは思うのですが……
ご教授お願いします。
81NAME IS NULL:2006/11/01(水) 15:24:57 ID:???
php使いって裾野が広いんだなぁとw
82NAME IS NULL:2006/11/01(水) 18:03:59 ID:???
cygwinのC言語でmysqlを使いたいのですが質問です。

cygwinのC言語で、winsowsにインストールしたmysql
を使いたいんですが、これは難しいでしょうか?

ネットで調べているんですが、cygwin環境でmaysqlをビルドして、
Cのライブラリをリンクすればできるようなことが
書いてありましたが、cygwin環境でmysqlをビルドできたという
ページが見つかりませんでした。

mysqlのメーリングリストのログもcygwinで検索したんですが、
できてなかったみたいです。
mysql徹底入門でビルドの仕方みて、自分もやってみようと思いますが、
初心者なのでもっと無理と思います。

cygwinのperlからだと難しく無いんですが。PostgreSQLはcygwin版がありますし。
なにか方法ありましたらご教授お願いします。
83NAME IS NULL:2006/11/01(水) 19:00:56 ID:???
ところで、MySQL総合スレNo10をたてる人はいないのか?
それとも、ここを総合スレNo10で消化するのか?
84NAME IS NULL:2006/11/01(水) 19:22:41 ID:???
>>82
cygwin使っているやつに聞いたほうがいいじゃないか。

Cygwin使っている人いますか? その17
http://pc8.2ch.net/test/read.cgi/unix/1154022733/
85NAME IS NULL:2006/11/01(水) 19:57:26 ID:???
>>84
ありがとうございます。
行ってみます。
86NAME IS NULL:2006/11/01(水) 20:20:39 ID:???
87NAME IS NULL:2006/11/01(水) 21:53:18 ID:???
>>80
1行目こそタイポだらけw
88NAME IS NULL:2006/11/01(水) 21:58:09 ID:???
>>80
どううまくいかないのかの根拠を具体的に提示すること
89NAME IS NULL:2006/11/01(水) 22:14:14 ID:???
>>86
ありがとうございます!!!
すごい感謝です。
1ヶ月ぐらいcygwinのc言語からmysql使えたらいいなー。
と思ってました。
cygwinのコンパイルのエラー回避できる方法あるんですね。

違う紹介していただいたページには、mysqlはWIN32バイナリを使うようにして、
コンパイルはライブラリを作って使うためにだけ、にした方が良いともありますね。
っていうことは、cygwinにそのライブラリをリンクしてC言語を使うと、
windowsにインストールしたmysqlが使えるということなんでしょうか。
なんとなく不思議な感じですが、これができるとほんとうれしいです。

とにかく手がかり教えていただいたので試してみます。
90NAME IS NULL:2006/11/02(木) 17:27:34 ID:???
89です。

ソースをコンパイルしてライブラリができますが、
それをリンクして、cygwinのgccでmysql徹底入門のサンプルプログラムを
コンパイルしたらできました。
windowsにインストールしたmysqlに接続してみると
データも正常に追加できました。

cygwin板に引っ越しましたが、ご報告させていただきました。
ありがとうございました。
91NAME IS NULL:2006/11/03(金) 13:39:40 ID:yhlGh22Y
サーブレットからMySQLサーバにアクセスするために、MySQL用のJDBCドライバをインストールしようとして、
http://www.mysql.com/downloads/connector/j/?から
mysql-connector-java-5.0.4-bin JARファイルをダウンロード
してきましたが、本には%CATALINA_HOME%/common/lib にコピーする
ように書いてあるのですが、該当ディレクトリが存在しません。(古い本のせいでしょうか。)どこにコピーしたらよいのかわからず途方にくれています。どなたか教えてください。よろしくお願いします。
92NAME IS NULL:2006/11/03(金) 16:02:31 ID:???
泣けるぜベイベー
93NAME IS NULL:2006/11/03(金) 18:19:19 ID:???
>>91
Extensionsのディレクトリに置けばよい。
それでもわからなければ、下のあたりのスレで聞けば?

くだすれJava(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1126470659/
94NAME IS NULL:2006/11/03(金) 22:21:31 ID:neaGXfY6
>>93
レスありがとうございます。行ってみます。
95NAME IS NULL:2006/11/04(土) 10:03:36 ID:ww13bNDf
単発の書き込みならロックは不要?
96NAME IS NULL:2006/11/04(土) 10:13:33 ID:???
なわけ無いじゃん。
97NAME IS NULL:2006/11/04(土) 10:25:26 ID:ww13bNDf
>>96
下のサイトに書いてある意味は違うのかな?


「更新を1回のクエリでしか実行しないのであれば、
書き込みロックは不要。」
http://www.ecoop.net/memo/cat_mysql.html
98NAME IS NULL:2006/11/04(土) 19:07:11 ID:???
ロックが不要も何も、MyISAMは書き込みする際にテーブルロックしちゃうぞ
99NAME IS NULL:2006/11/04(土) 19:57:36 ID:???
エンジンとして、InnoDBじゃなくてBDBを使うメリットってあるん?
パフォーマンスがBDBの方がいいとか?
100NAME IS NULL:2006/11/04(土) 20:29:19 ID:P36/CUPW
>>98
ロックするつうか、クエリーってのは
アトミックなものじゃないのか?
101NAME IS NULL:2006/11/05(日) 00:22:28 ID:???
>>99
InnoDBは行レベルロック、BDBはページロック
InnoDBのほうが、その他の機能で人気が高い。
BDBは、導入が早いが不人気で不安定 だったと思う。
102NAME IS NULL:2006/11/05(日) 01:25:30 ID:???
InnoDBかMyISAMの2択でええんだな。
103NAME IS NULL:2006/11/05(日) 01:34:19 ID:???
その2択でええ。

で、ファイナルアンサーはどちら?
104NAME IS NULL:2006/11/05(日) 01:38:24 ID:???
OLTP→InnoDB
DSS→MyISAM
でええんちゃう?
105NAME IS NULL:2006/11/05(日) 01:50:31 ID:???
>>104
それでええ。
106NAME IS NULL:2006/11/05(日) 01:56:50 ID:???
テーブルのタイプで言えば、

マスタ型→MyISAM
トランザクション型→InnoDB
ヒストリカル型→MyISAM

ってところかな。
107NAME IS NULL:2006/11/05(日) 07:19:49 ID:AbI7e55r
MySQLってデータはどういう形で持ってるの?
108NAME IS NULL:2006/11/05(日) 09:54:51 ID:???
所詮ファイル
109NAME IS NULL:2006/11/05(日) 16:01:25 ID:???
亀だが、>>95のように疑問を思うヤシが
まさか世間に出てるものを書いてないだろうな・・・
110NAME IS NULL:2006/11/05(日) 16:07:32 ID:S8gdmn65
>>95だが、言いたいことがあるならはっきり言って下さい、>>109さん。
111109ではない:2006/11/05(日) 16:38:22 ID:???
泣けるぜベイベー
112NAME IS NULL:2006/11/05(日) 16:49:12 ID:???
>>95氏はこの5年間に、約150社に対してクライアントサーバーシステムを
納品した実績を持っています。 内その90%は現在も基幹システムとして
順調に稼働しております。
113NAME IS NULL:2006/11/05(日) 17:29:42 ID:???
>110≠>95
いや、書いてなければいいんだ。
ま、mysqlなシステムだったらどっちでもええけど
114NAME IS NULL:2006/11/05(日) 17:41:08 ID:???
>>112
残り10%はまともに動いていないんだなw
115NAME IS NULL:2006/11/05(日) 17:49:43 ID:S8gdmn65
>>113
こんなところで憂さ晴らしか、
小さいぞ。
116NAME IS NULL:2006/11/05(日) 18:31:22 ID:???
総合スレがレベル低くなりすぎて廃スレになったのに、
こっちまで廃スレにするつもりかよ・・・・・

厨房避けの初心者スレ作らないとダメか?
117NAME IS NULL:2006/11/05(日) 21:00:31 ID:???
いや自治に走るのはいいんだが、
myでまともなネタあるか?
118NAME IS NULL:2006/11/05(日) 23:01:35 ID:???
最近更新遅いよね。
重大なバグがあるのか?5.1は??

無理して急がれても迷惑だけどね。
119NAME IS NULL:2006/11/07(火) 02:37:30 ID:???
ネタが無いというのでとりあえず振っておく
http://enterprise.watch.impress.co.jp/cda/software/2006/11/02/8973.html

実際にモノを見たわけじゃないけど、livedoor型のクラスタを実現する為のキットかな?


MySQL ENTERPRISEと競合しそうな気もするが。
120NAME IS NULL:2006/11/08(水) 00:38:02 ID:???
>>119
MySQL Enterprise は名前を変えただけで、いままでのMySQLサーバと同じだから
競合はしないのではないかと思う。
121NAME IS NULL:2006/11/08(水) 11:55:31 ID:???
>>120
まぁこれを導入するだけのとこは、
担当するSIがoracleを勧めるんじゃないかなぁ・・・

俺自身はここ1年oracle触ってないけど
122NAME IS NULL:2006/11/08(水) 13:22:53 ID:???
1つのテーブル(A)からデータを取得する際、
そこに入っているある値(userだとします)の数字と、
異なるテーブル(B)に入っている数字の値が同じ場合、
Bからidという値とAの値すべてを取りだしたいのですが可能でしょうか?
簡単に書くと
SELECT `auto`,`num` FROM `A`
SELECT `id` FROM `B` WHERE `user`=(numの値)

これを一度に結合して出来ないでしょうか?
123NAME IS NULL:2006/11/08(水) 14:48:13 ID:???
>>122
どっちかつーとプログラム板じゃねぇ?

select a.auto,b.id from a inner join b on a.num = b.id
124NAME IS NULL:2006/11/08(水) 16:40:16 ID:???
>>123
122じゃないけどサンクス
これってcountすることもできるの?
select a.auto,b.count(id) from a inner join b on a.num = b.id
だとできなかったけど
125NAME IS NULL:2006/11/08(水) 17:30:06 ID:???
>>124
group by で集計単位付加

とりあえず自分でSQL書けないヤシは
Accessでテーブル作ってクエリで結合したSQLを参考に。
126NAME IS NULL:2006/11/08(水) 20:32:13 ID:???
ACCESSにそんな機能あるのか

確かに、MS系のツールだったら、クリックしていくだけでSQL出て来そうだよなぁ 遅くて汚くても
127NAME IS NULL:2006/11/08(水) 22:15:21 ID:???
ビルえもんが作ってくれます
128NAME IS NULL:2006/11/09(木) 07:30:18 ID:???
遅くて汚いというより
込入った難しいものは出来ない感じ
129NAME IS NULL:2006/11/09(木) 08:12:55 ID:???
やり方はあるのかも知れないけど
「いいよ。もう俺がSQL書くよ」
そんな感じ。
130NAME IS NULL:2006/11/09(木) 15:32:22 ID:???
Access使ってる時点で
利用の範囲はたかが知れてる に1票
131NAME IS NULL:2006/11/09(木) 16:32:17 ID:???
データベースってC:\mysql\dataでしか作れないの?
E:\Web\につくりたいんだが
132NAME IS NULL:2006/11/09(木) 18:17:03 ID:???
つくれつくれ
133NAME IS NULL:2006/11/09(木) 18:35:45 ID:???
作り方わからなすwwww
参考書でも買ってみるかな
134NAME IS NULL:2006/11/09(木) 19:59:35 ID:???
>>133
そうそう
悩めば悩んだ分だけ身につくもんだ
ちなみに参考書も手当たり次第に買うのは非効率
・入門書(インストや設定ファイルの設定法などが載ったヤツ)
・データベース構築法(PHPとの組み合わせがデフォ)
・リファレンス(SQL標準のより種類は少ないがMySQL専門の方がよい)
性格の全く違うこの3分類からそれぞれ自分に合ったヤツを探すべし
135NAME IS NULL:2006/11/09(木) 20:18:44 ID:???
Access使ってる時点で
MySQLを使わずに付属DB(ジェット何たらだったかな)で
ええでないか に100,000,000票
136NAME IS NULL:2006/11/09(木) 20:23:23 ID:???
>>131
もしかして、M$のOSは
アメリカではC:¥mysql¥dataがC:$mysql$dataという表記になるのか?

どちらにしても、気色悪い感じだなw
137NAME IS NULL:2006/11/09(木) 20:39:49 ID:???
>>134
ある程度PHPをいじれるようになってきたんで、
MySQLとの連携を考えていて・・・
自分にとっては2番目のが良さそう





とりあえず参考書代稼ぐためにバイト探します
138NAME IS NULL:2006/11/09(木) 21:21:06 ID:???
>>136
なんで$だよ
/だ
139NAME IS NULL:2006/11/09(木) 21:22:17 ID:???
>>138
アメリカとドルマーク掛けたんじゃね?
140NAME IS NULL:2006/11/09(木) 21:58:43 ID:???
通貨記号で区切るのがM$
141NAME IS NULL:2006/11/09(木) 22:03:41 ID:???
>>136
そう言われてみると。。。
日本以外のキーボードって「\」ってあるの?エスケープ文字とかどうするの?
エスケープも「/」?
じゃぁ日本でも「\」の他に実は「/」でエスケープできるの?
142NAME IS NULL:2006/11/09(木) 22:06:05 ID:???
バックスラッシュ(\)
143NAME IS NULL:2006/11/09(木) 22:14:03 ID:???
>>138

/なんて使ったらダメだろ。
そもそも、2バイト文字と1バイト文字の見分けがつかないような環境が胸糞悪い。
144NAME IS NULL:2006/11/10(金) 08:07:13 ID:???
>>143
すまんスラッシュの向き間違えた
145NAME IS NULL:2006/11/10(金) 08:38:55 ID:???
/(^o^)\なんてこった
146NAME IS NULL:2006/11/10(金) 12:31:36 ID:???
\(^o^)/オワタ
147NAME IS NULL:2006/11/10(金) 13:17:10 ID:???
おれは「参考に」

と書いたんだが、思い込みの激しいやつばっかりか・・・
148NAME IS NULL:2006/11/11(土) 11:05:21 ID:???
誰か、総合スレの続きを頼む

[MySQL 総合 Part10]

快速 RDBMS、MySQL の総合スレです。
前スレ[MySQL 総合 Part9] http://pc8.2ch.net/test/read.cgi/db/1155794342/
[関連スレと過去ログ]
http://find.2ch.net/index.php?STR=MySQL
http://makimo.to/cgi-bin/search/search.cgi?D=db&q=MySQL&sf=0&link2ch=on

[MySQL Developer Zone] http://dev.mysql.com/
[MySQL 日本語リファレンスマニュアル] http://dev.mysql.com/doc/mysql/ja/
[MySQL Internals Manual] http://dev.mysql.com/doc/internals/en/

[MyNA] http://www.mysql.gr.jp/
[MLja] http://lists.mysql.com/mysql-ja

・関連ツール及びユーティリティ
・関連書籍
>>2
149NAME IS NULL:2006/11/11(土) 14:42:42 ID:???
建てんのか?

立てるなら厨房避けスレの方がよさげ
150NAME IS NULL:2006/11/11(土) 17:46:01 ID:???
こちらを初心者用としてテンプラに入れるとか。
151NAME IS NULL:2006/11/15(水) 10:12:39 ID:eneRUEqw
おまえら教えてください。
SQLクエリによるアクセスではなくテーブルに直接アクセスすると
速いときいたことあるんですがやり方がさっぱりわかりません。
152NAME IS NULL:2006/11/15(水) 16:56:55 ID:???
BerkleyDBなら、それ自体がSQLではないアクセス方法だし。
153NAME IS NULL:2006/11/15(水) 23:33:46 ID:dOhQElQe
トランザクションって

Aさんが

 トランザクションスタート

 セレクト
 
 とってきたデータを見ていじったりして
 
 アップデート
 
 コミット
}

してる間に

Bさんが

 セレクト


で読むことはできないってことでいいんですよね?
154NAME IS NULL:2006/11/16(木) 00:14:38 ID:???
そりゃロックだ。
155NAME IS NULL:2006/11/16(木) 00:16:56 ID:???
でわ
AさんのセレクトでFOR UPDATEいれたら
Bさんからは読めないようにできるんですか?
AもBも同じテーブルの同じレコードをセレクトしてるということなんですけど
156NAME IS NULL:2006/11/16(木) 00:25:34 ID:???
実際にやってみりゃいいじゃん。
157NAME IS NULL:2006/11/16(木) 00:51:53 ID:???
>>151
HANDLERのことか?
158NAME IS NULL:2006/11/16(木) 00:55:18 ID:???
gikoがhoge1かhoge2かhoge3にあるかを
今はこうやってるんですが、もっといい書き方ありますか?

(hoge1 like giko) or (hoge2 like giko) or (hoge3 like giko)
159NAME IS NULL:2006/11/16(木) 01:22:55 ID:???
>>156
できなかったんですけど
どうやったら>>153みたいな
Aさんがいじってる間は
Bさんはいじれない状態にできるんでしょうか?
160NAME IS NULL:2006/11/16(木) 03:14:57 ID:H+GBzCl6
>>157
それだ!
助かりました!ありがとうございます!!
161NAME IS NULL:2006/11/16(木) 10:22:49 ID:???
>>159
つ ロック
つ セマフォ
162NAME IS NULL:2006/11/17(金) 12:32:11 ID:???
>>159
Bさんのセレクト時も、select * from てーぶる for update ってすれば、
Aさんが終わるまで読めない。
163NAME IS NULL:2006/11/17(金) 12:44:28 ID:???
>>162
>>161
よくわかりますて
ありがとうござまいした
164NAME IS NULL:2006/11/17(金) 17:36:49 ID:???
mysql-gui-tools-5.0にしたら
MySQL Administratorのバックアップが使えなくなってしまった…

オプションいろいろ変えても

An Error occurred while executing the backup.
Error while analyzing an SQL statement.

って出てしまう。。

しかも古いバージョンがもう落とせない。。。
165NAME IS NULL:2006/11/17(金) 21:45:59 ID:???
サーバに出てるエラーログを見るのじゃ
166NAME IS NULL:2006/11/17(金) 22:28:26 ID:???
>>165
エラーログは何も出てないです…
最新のMySQL Administrator 1.2.5 rc でバックアップツールちゃんと動いてる人いますか?
167NAME IS NULL:2006/11/18(土) 14:40:49 ID:???
MySQLのrootのパスワードを忘れてしまいました。
パスワードのリセット方法などの解決手段はなにかありますでしょうか?
あればぜひアドバイスをお願いします。
168NAME IS NULL:2006/11/18(土) 14:59:30 ID:???
>>167
--skip-grant-tableオプション
やりかた云々はマニュアル参照のこと
(パスワードを忘れた時の方法として項がある)
169167:2006/11/18(土) 15:01:57 ID:???
>>168
レスありがとうございます。
早速調べてみます。
170NAME IS NULL:2006/11/19(日) 16:10:06 ID:LNEvoLUo
すみません、質問させて下さい。
MySQL 5.0.24で運用しております。

テーブルから一定時間以上前のデータを削除したいと思っているのですが
時間比較の書き方がわかりません。

テーブル構造は下記になります。
CREATE TABLE `c_condition` (
`c_condition_no` int(10) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,# No
`c_condition_name` varchar(32) UNIQUE NOT NULL default '',# 状態名
`c_condition_up_date` datetime NOT NULL default '0000-00-00 00:00:00',# アクセス日時
`c_condition_reg_date` datetime NOT NULL default '0000-00-00 00:00:00',# 登録日時
`c_condition_del_flg` tinyint(1) unsigned NOT NULL default '0'# 削除フラグ
) ENGINE=InnoDB DEFAULT CHARSET=ujis;



delete from table where `c_condition_up_date` > NOW()

と単純に現在日時以前のデータを削除する書き方はわかりましたが、
現在日時より2日前のデータを削除するのは、どのように書いたらよろしいでしょうか?
宜しければお力添えを頂ければ助かります。
171NAME IS NULL:2006/11/19(日) 21:27:30 ID:???
>>170
http://dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.html
演算子でやっても良いけど(むしろそっちの方が一般的)
172NAME IS NULL:2006/11/21(火) 15:04:24 ID:???
MySQL総合スレ じゃないと盛り上がらないね。
173NAME IS NULL:2006/11/22(水) 22:45:15 ID:???
>>64-66

遅レスだけど
ここで話題に?

>>31-32
174NAME IS NULL:2006/11/24(金) 00:43:16 ID:???
5.0.27のソースをmakeしてmake testしたのですが、
ctype_ucs_binlog [ fail ]
となってしまいます。
ググってみたのですが、それらしい情報も見つかり
ませんでした。何か対策をご存じですか?
175NAME IS NULL:2006/11/24(金) 11:27:44 ID:???
.configのオプションは?
176NAME IS NULL:2006/11/24(金) 13:25:36 ID:???
>>175
返事ありがとうございます!
--prefix=/usr/local/mysql
--with-charset=ujis
--with-extra-charsets=all
です。
もしかすると最後のallをcomplexにすれば
何か変わるんでしょうか?
177NAME IS NULL:2006/11/24(金) 14:56:30 ID:???
うちではそのエラーは出ませんでした
178NAME IS NULL:2006/11/24(金) 17:03:10 ID:???
>>177
確認、お手数おかけします。
白箱のDebianにインストールしようとしているのですが
環境によるものでしょうか…。
帰宅後にパラメータ変えてチャレンジしてみます。
179NAME IS NULL:2006/11/24(金) 22:45:18 ID:cOwp2BAT
>>176
ujisなら問題無し
180NAME IS NULL:2006/11/24(金) 23:54:53 ID:???
インデックスだけをあらかじめメモリに読み込んでおくことって出来ないの?
181NAME IS NULL:2006/11/25(土) 00:20:23 ID:???
>>179
ご協力いただきありがとうございます。
ちょっとこれ以上追求するのも時間がかかりそう
なのでポスグレのほうでチャレンジすることにしました。
解決しないのはキモチワルイのですが諦めも肝心ですね。。
182NAME IS NULL:2006/11/25(土) 22:53:32 ID:mpEt2PRj
「ほぼ」定型の XML 文書をRDBにマップして格納しようとしています。
具体的には集めてきた RSS/ATOM フィードを RDB に格納して処理しようとしています。
ただし、サイトごとに独自の XML 名前空間に属する要素で拡張されて
いる記述があるので、その部分は XML 文書のまま特に解釈せず
格納しようとしています。

このように XML 文書の断片を特に解釈せずに格納するときは、
varchar や blob で格納するのが常套手段なのでしょうか?
それとも MySQL には XML 文書の断片を扱うために特に用意された
手段があるモノなのでしょうか?たとえば XPath による
断片の抽出に対応してくれるとか。
183148:2006/11/26(日) 07:06:56 ID:???
結局、自分でたてました。。。

MySQL 総合 Part10
http://pc8.2ch.net/test/read.cgi/db/1164490501/
184NAME IS NULL:2006/11/27(月) 15:10:52 ID:???
phpmyadminについて質問なんですけど
よろしいでしょうか?

フィールド型をENUMに設定した
フィールドを追加しようとすると必ずエラーが出てしまいます。

エラーが出るのはENUMだけなんですが、
このフィールド型を設定するには
事前に設定等がひつようなんでしょうか?
185NAME IS NULL:2006/11/28(火) 11:54:17 ID:???
>>184
エラーが出てるならそれを書かないとだれもわからんだろ。
186NAME IS NULL:2006/11/28(火) 14:21:29 ID:???
5.0.27のWin版をインストールしたのでが、WinmysqlAdmin.exeが見当たらないのですが、どこにありますか?
187NAME IS NULL:2006/11/28(火) 15:17:23 ID:???
>>186
おまわりさんに聞くと良いんじゃないかな
188NAME IS NULL:2006/11/28(火) 17:13:59 ID:l8ld2DLA
みなさんはDBの定義とかするのにWinmysqlAdminとCUIとphpMyAdminのどれが好きですか?
189NAME IS NULL:2006/11/28(火) 17:54:09 ID:???
>>188
phpMyAdmin が好き。
APC 入れればサクサク。
190NAME IS NULL:2006/11/28(火) 18:24:44 ID:???
>>186
最近のverにはもうない
4.0あたりまでじゃなかったかな
確かに知らん間になくなったな
191NAME IS NULL:2006/11/28(火) 19:56:12 ID:???
>>188
コンソール
192NAME IS NULL:2006/11/28(火) 22:02:56 ID:DZb/Y+nR
>>189
APCって何ですか?
193NAME IS NULL:2006/11/28(火) 22:06:32 ID:???
Apache2
194NAME IS NULL:2006/11/29(水) 07:40:54 ID:???
PHPのアクセレータのひとつ。
pear に入ってたっけ?
195NAME IS NULL:2006/12/12(火) 10:47:19 ID:???
120万件のデータが入ったテーブルをalter table作業している最中に、selectかけたらメモリ食いつぶすんだけど。
テーブルのファイルサイズは780Mくらいなのに。2.5Gのメモリを使っても検索されずにout of memory...
そもそもalter中にselectするなって事なんですかね?
196NAME IS NULL:2006/12/12(火) 18:47:49 ID:???
なんでテーブル変更してる最中にデータ取り出すんだよw
197NAME IS NULL:2006/12/12(火) 19:21:03 ID:???
>>192
American Power Conversion
198NAME IS NULL:2006/12/12(火) 21:34:31 ID:???
>>192
Armored Personal Carrier
199NAME IS NULL:2006/12/13(水) 06:17:53 ID:???
200NAME IS NULL:2006/12/20(水) 20:39:09 ID:???
質問させて下さい。
WinXP Pro Sp2
MySQL 5.0.24で動かしています。

CREATE TABLE `vote_total` (# パーソナルデータ
`vote_total_fileNo` int(10) unsigned NOT NULL PRIMARY KEY,# ファイルNo
`vote_total_judge_yes` int(10) unsigned NOT NULL default '0',# 評価(良い)
`vote_total_judge_no` int(10) unsigned NOT NULL default '0',# 評価(悪い)
`vote_total_reg_date` datetime NOT NULL default '0000-00-00 00:00:00',# 登録日時
`vote_total_del_flg` tinyint(1) unsigned NOT NULL default '0'# 削除フラグ
) ENGINE=InnoDB DEFAULT CHARSET=ujis;

上記の様なテーブルで情報を入れる際に、
1:`vote_total_fileNo` = 1レコードが在れば`vote_total_judge_yes` + 1をアップデートし、他のカラムはアップデートしない。
2:`vote_total_fileNo` = 1レコードが無ければ、`vote_total_fileNo` = 1と`vote_total_judge_yes` + 1をインサートする。

この処理を1回の接続(一つのsql文)で行いたいと思いまして、mysqlドキュメントを読みつつ、
replaceを使えばいいかなと思ったのですが、replaceを使うと、`vote_total_judge_yes`以外のカラムが初期値に上書きされてしまいます。

そこで色々読みあさっているとWHEN 〜 THEN 〜 ELSEならできるかなと思ったのですが、
少しSQL文が複雑になってしまうので、できればreplace構文のような形式で他のカラムが初期化上書きされないような方法は無いでしょうか?

宜しくお願いします。
201NAME IS NULL:2006/12/20(水) 20:40:46 ID:???
すみません
# パーソナルデータ
ってのは関係ないので気にしないで下さい。
202NAME IS NULL:2006/12/21(木) 10:01:13 ID:???
ふむふむ、パーソナルデータね
203NAME IS NULL:2006/12/21(木) 14:11:21 ID:Wc5smalR
だれかご教授お願いします。

ACCESSでMysqlをODBC経由で接続したいのですが、
MYSQLにローカル接続する時は上手く行きましたが、
ネットワーク経由で接続する時に上手くいきません。
[CONNECTER/ODBC]の設定で、恐らくSERVERの項目を
変える必要が有ると思うのですが、DBサーバーの
コンピュータ名を入力しても駄目でした。

宜しくお願い致します。


204NAME IS NULL:2006/12/21(木) 17:21:34 ID:???
インスコして、mysqladmin ping実行しても10061エラーばっかり/(^o^)\
サービス見ても 自動 開始 で実行されてる/(^o^)\
どなたか御指摘お願いします

MySQL 5.1
205204:2006/12/21(木) 17:37:44 ID:???
追記
mysqladmin ping -u root -p
Enterpass:root

mysqld is alive

と、上記のようにはできました。
また、mysqlshowでもエラーが返ってきます
/(^o^)\ナンテコッタイ
206NAME IS NULL:2006/12/21(木) 21:47:53 ID:1hv/v4KN
>>204
Verを書けよ
207sage:2006/12/22(金) 12:31:40 ID:???
質問です。
MySQL5.0系をwin環境で使用しています。
DBの用途はMTブログのみです。

MySQLをインスコしてデフォルトのキャラクターセットで使用していましたが、phpmyadminで文字化けする為文字を2バイト文字の使用できるutfやeucに変更しようと頑張ってます。
もし変更出来たとして、変更前に書き込まれてるデータの文字は変換出来るのでしょうか?

変換されないとすれば、新たにデータベースをutfなどで作り、元のデータをインポートすれば表示されるものなのでしょうか?

何分MySQL初心者なものでして、ご教授願えれば幸いです(´・ω・`)
208NAME IS NULL:2006/12/23(土) 21:51:45 ID:???
自動的に変換されない
全部自分で直す
209NAME IS NULL:2007/01/02(火) 13:43:54 ID:???
>>204
つまり、rootでログインしてたら実行できるけど、ログインしていない状況では
エラーになる、ということで悩んでるの?それなら、MySQLは正常に動いてると思う。

逆に、その状態が異常だと何処で教わった?
210NAME IS NULL:2007/01/02(火) 13:45:38 ID:???
>>203
まず、ネットワーク経由でのアクセスを許可してるよね?
211NAME IS NULL:2007/01/03(水) 00:35:03 ID:???
>>208
たいした量じゃなかったんでMTのデータテキストで書き出し
新しいDBにしてから読み込みで解決です。

時間かかったwww

おかげで年越しです。
212NAME IS NULL:2007/01/03(水) 00:36:33 ID:???
>>208
上の柿>>207です。
名乗るの忘れてました(^_^.)
213NAME IS NULL:2007/01/16(火) 01:54:07 ID:???
VC7でMySQL 5.0.33がコンパイルできませぬ。
バイナリ配布してくれなくなったからorz.

sql_yacc.cc(13646): warning C4065: switch 文に 'default' はありますが 'case' ラベルがありません。
sql_yacc.cc(27193): warning C4102: 'yyerrorlab' : ラベルは 1 度も参照されません。
c:\mysql-5.0.33\libmysqld\sql_yacc.cc(13759): warning C4700: 値が割り当てられていないローカルな変数 'MYSQLlval' に対して参照が行われました。
C:\mysql-5.0.33\sql\sql_select.cpp(8953): warning C4291: 'void *Sql_alloc::operator new[](size_t,MEM_ROOT *)' : 初期化コードが例外をスローすると、'new' 演算子を使用しているとメモリを解放しません。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C3209: '????' : Unicode 識別子は現在サポートされていません。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : '}' が、識別子 '????' の前に必要です。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : ';' が、識別子 '????' の前に必要です。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): fatal error C1075: 左側 中カッコ '{' に対応するものが '\mysql-5.0.33\sql\sql_locale.cpp(40)' で見つかる前に EOF が検出されました。
C:\mysql-5.0.33\sql\sql_cursor.cpp(154): warning C4291: 'void *Sql_alloc::operator new(size_t,MEM_ROOT *)' : 初期化コードが例外をスローすると、'new' 演算子を使用しているとメモリを解放しません。
C:\mysql-5.0.33\sql\sql_cursor.cpp(213): warning C4291: 'void *Sql_alloc::operator new(size_t,MEM_ROOT *)' : 初期化コードが例外をスローすると、'new' 演算子を使用しているとメモリを解放しません。
C:\mysql-5.0.33\sql\net_serv.cpp(286): warning C4101: 'count' : ローカル変数は 1 度も使われていません。
C:\mysql-5.0.33\sql\net_serv.cpp(286): warning C4101: 'ready' : ローカル変数は 1 度も使われていません。
c:\mysql-5.0.33\libmysqld\lib_sql.cpp(285): warning C4244: '=' : 'unsigned long' から 'char' に変換しました。データが失われているかもしれません。
c:\mysql-5.0.33\libmysqld\lib_sql.cpp(829): warning C4244: '初期化中' : 'my_ulonglong' から 'uint' に変換しました。データが失われているかもしれません。
c:\mysql-5.0.33\libmysqld\lib_sql.cpp(1044): warning C4102: 'err' : ラベルは 1 度も参照されません。
C:\mysql-5.0.33\sql\item_cmpfunc.cpp(1795): warning C4101: 'buff' : ローカル変数は 1 度も使われていません。
C:\mysql-5.0.33\sql-common\client.c(1787): error C2373: 'cli_mysql_real_connect' : 再定義されています。異なる型修飾子です。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C3209: '????' : Unicode 識別子は現在サポートされていません。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : '}' が、識別子 '????' の前に必要です。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : ';' が、識別子 '????' の前に必要です。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): fatal error C1075: 左側 中カッコ '{' に対応するものが '\mysql-5.0.33\sql\sql_locale.cpp(40)' で見つかる前に EOF が検出されました。
c:\mysql-5.0.33\sql\sql_locale.cpp(40): error C3209: '????' : Unicode 識別子は現在サポートされていません。
c:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : '}' が、識別子 '????' の前に必要です。
c:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : ';' が、識別子 '????' の前に必要です。
c:\mysql-5.0.33\sql\sql_locale.cpp(40): fatal error C1075: 左側 中カッコ '{' に対応するものが 'sql_locale.cpp(40)' で見つかる前に EOF が検出されました。
mysqlserver fatal error LNK1181: 入力ファイル '\mysql-5.0.33\mysqldemb\release\mysqldemb.lib' を開けません。
test_libmysqld fatal error LNK1181: 入力ファイル '\mysql-5.0.33\lib_release\libmysqld.lib' を開けません。
214NAME IS NULL:2007/01/28(日) 23:28:51 ID:???
>>213
mysql-5.0.33フォルダをデスクトップに置いてコンパイルした結果をもう一度
教えてくださいw
215NAME IS NULL:2007/02/12(月) 22:50:10 ID:???
てすつ
216NAME IS NULL:2007/02/25(日) 18:30:11 ID:???
>>214

なぜデスクトップ?
217NAME IS NULL:2007/05/11(金) 01:34:05 ID:hJ+hqO0q
ムーバブルタイプ、MySQLでやろうとしたらこんなん出ましたw
Data too long for column 'template_text' at row 1
218NAME IS NULL:2007/05/14(月) 23:43:26 ID:LAW+Ghic
ヴァージョン4と5の違いって何ですか?そんなに違うものですか??
219NAME IS NULL:2007/05/15(火) 02:12:52 ID:???
ガッテム!
220NAME IS NULL:2007/05/25(金) 08:20:15 ID:???
>>218
全然違う。
ネットで調べればすぐわかる。

つか、なんで今さらそんな話を。。。
221NAME IS NULL:2007/05/25(金) 09:26:25 ID:???
>>218
うちの嫁と隣の嫁ぐらいの違いがある
222NAME IS NULL:2007/05/25(金) 21:44:21 ID:???
そうですか!>>221さんは両方とも使ったことが
あるんですね! どっちがよかったですか?
223NAME IS NULL:2007/05/26(土) 01:54:20 ID:???
隣の嫁
224NAME IS NULL:2007/05/27(日) 07:05:15 ID:???
ジーザス!
225NAME IS NULL:2007/05/28(月) 13:18:51 ID:???
複数カラムのJOINって無理ですか?

id,flg,reason

id,koyo,kousei,kenkou

の二つを合体させたいんですが、
flgは無し、アリ、申請中で、reasonは理由です。
226NAME IS NULL:2007/05/30(水) 21:38:43 ID:???
>>225
>複数カラムのJOINって無理ですか?
なにを聞きたいのか、全然わからん。
わからんが、とりあえず答をぶっぱなしてやる。

つ LEFT OUTER JOIN
227NAME IS NULL:2007/06/12(火) 02:31:24 ID:???
5.0.41にしたらアプリケーションがことごとく動かなくなった。
いろいろ試してみたら5.0.27より後のバージョンでNGになってる。
大幅な仕様変更があったんでしょうか。
228NAME IS NULL:2007/06/13(水) 20:32:35 ID:xGJFXDYi
>>222
隣の芝生は青く見える。
229NAME IS NULL:2007/06/13(水) 20:45:56 ID:xGJFXDYi
スレ違いかもしれんが、10年以上前に秋葉原で購入した
マハーポーシャのパソコンにNetBSDインストールして
MySQL5.2を入れて見ようと考えてます。バージョンが安定してないのと
ハードのスペックが余りにも古いのでデータベースがきちんと
動いてくれるのか不安です。


用途は、8000人分の個人情報を管理することです。
230NAME IS NULL:2007/06/14(木) 00:58:03 ID:???
>>229
スペックで考える前に
8000人分の個人情報を預かる責任として考えろ
231NAME IS NULL:2007/06/17(日) 18:01:16 ID:???
>>229
警察から連絡があったでしょ?OSが不正コピーかどうかの確認。
232NAME IS NULL:2007/06/25(月) 02:34:50 ID:???
マハーポージャってなに?
オウムのやつ?
233NAME IS NULL:2007/06/29(金) 22:17:20 ID:tyr8Qbwe
すみません。
MySQL 5.0.41 をインストールしたのですが、
my.ini を編集しようとして、開こうとしても、他のプロセスによって書き込みが禁止されていますといわれて、編集できません。

mysqladmin -uroot -p**** shutdown
で、シャットダウンを済ませたのですが、それでも書き込みが禁止されています。
my.ini はどうやって編集するのでしょうか。
234233:2007/06/29(金) 23:14:10 ID:???
自己解決しました。
Vistaの変なセキュリティ機能の所為でした。
ファイルの上書きでなんとか書き換えました。
235NAME IS NULL:2007/07/25(水) 11:21:25 ID:???
MySQLに接続するために
日本語サーバー対応版 libmysql.dll
を探しているのですがSoft Agencyのサイトからは
ダウンロードできなくなってるみたいです。。

どこか別のサイトでダウンロードできるところはないでしょうか?
236NAME IS NULL:2007/07/29(日) 22:56:25 ID:???
公式の奴はあかんの?
237NAME IS NULL:2007/08/21(火) 05:36:17 ID:???
238NAME IS NULL:2007/09/21(金) 20:48:56 ID:???
すいません、教えてください。
gcc (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
e:\MySQL\bin\mysql.exe Ver 14.12 Distrib 5.0.37, for Win64 (unknown)
です。

以下のような簡単なプログラムを書いてコンパイルしたところ
undefined reference to`_mysq_init'といわれてしまいました。
何が足りないのでしょうか。
====================ソース=========================
#include<stdio.h>
#include"mysql.h"

int main()
{
MYSQL *mysql;

if(mysql_init(mysql)==NULL)
{
fprintf(stderr,"Cannot init MySQL");
return 1;
}
return 0;
}

==================コンパイルオプション==================
gcc -Ie:/MySQL/include \
-Le:/MySQL/include \

-Le:/MySQL/lib/opt \

-lmysqlclient \

-llibmysql \

test.c

239238:2007/09/21(金) 20:52:29 ID:???
すいません。
コンパイルオプションに変な改行が入ってますが、
無いものとして考えてください。
240NAME IS NULL:2007/09/29(土) 00:15:26 ID:???
つ-lzlib
241NAME IS NULL:2007/09/29(土) 13:55:54 ID:???
test.cよりあとに、-lつける
-lの順番と位置には意味があるので
242238:2007/09/29(土) 19:28:09 ID:???
>>240-241
レスありがとうございます。
test.cよりあとに-lをつけたのですが駄目でした。
ライブラリの順番もいろいろ入れ替えてみたのですが。

ところでstringsでmysqlclient.libをみてみたら
以下のようになったのですが、_mysql_init@4の@4とは何なのでしょう?

bash-3.1$ strings mysqlclient.lib | grep mysql_init
_mysql_init@4
_mysql_init_character_set
_mysql_init@4
_mysql_init_character_set
_mysql_init@4
_mysql_init@4
_mysql_init_character_set
243NAME IS NULL:2007/09/30(日) 00:42:51 ID:???
_関数名@数字なら、stdcallの関数で、数字は引数のバイト数
stdcallの関数って教えないと駄目じゃないかな。
244238:2007/09/30(日) 20:29:21 ID:???
>>243
レスありがとうございます。
mysql.hを覗いてみたところ以下のようになっていました。

#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */
#undef WIN
#undef _WIN
#undef _WIN32
#undef _WIN64
#undef __WIN__
#endif

#if !defined(__WIN__)
#define STDCALL
#else
#define STDCALL __stdcall
#endif

実はCygwinでやっているのですが、Cygwinだと__stdcallが取り除かれるようです。
リンクするライブラリを間違えているということでしょうか。
ためしに無理やり__stdcallを付けてみたら山のようにリンクエラーがでました。
245238:2007/10/02(火) 07:12:07 ID:???
環境をCygwin&gccからコマンドプロンプト&VCに変えたら
上手くいったのでとりあえずこれでやることにします。
レスありがとうございました。
246NAME IS NULL:2007/10/10(水) 02:46:28 ID:???
mysql-test-run 及び make testは失敗するのがデフォルトですか?

CentOSのmysql-5.0.48.src.rpmからrpmbuildでrebuildしたんですが、make testの段でエラーになります。
specの中身は、
CFLAGS="-O2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv"
CXXFLAGS="$CFLAGS -fno-rtti -fno-exceptions"
CC=gcc(ver3.4.6-8) CXX=g++(ver3.4.6.8)
./configure --with-readline --with-openssl --without-debug --enable-shared --with-bench --localstatedir=/var/lib/mysql \
--with-unix-socket-path=/var/lib/mysql/mysql.sock --with-mysqld-user="mysql" --with-extra-charsets=all \
--with-innodb --with-ndbcluster --with-berkeley-db --enable-local-infile --enable-largefile --enable-thread-safe-client \
--disable-dependency-tracking --with-named-thread-libs="-lpthread"
とこうなってます。
で、%build(make)セクションは問題なく進んでいるようですが、make testに入ってから、
Logging: mysql-test-run.pl
MySQL Version 5.0.48
Skipping ndbcluster, mysqld not compiled with ndbcluster
Skipping SSL, mysqld not compiled with SSL
Using MTR_BUILD_THREAD = 0
Using MASTER_MYPORT = 9306
Using MASTER_MYPORT1 = 9307
Using SLAVE_MYPORT = 9308
Using SLAVE_MYPORT1 = 9309
Using SLAVE_MYPORT2 = 9310
Using IM_PORT = 9312
Using IM_MYSQLD1_PORT = 9313
Using IM_MYSQLD2_PORT = 9314
Killing Possible Leftover Processes
Removing Stale Files
Creating Directories
Installing Master Database
Installing Master Database
Installing Slave1 Database
mysql-test-run: WARNING: running this script as _root_ will cause some tests to be skipped
=======================================================
Starting Tests in the 'main' suite

TEST RESULT TIME (ms)
-------------------------------------------------------

mysql-test-run: WARNING: Process 8991 died
alias [ fail ]

ERROR: Failed to start master mysqld 0

Aborting: alias failed in default mode. To continue, re-run with '--force'.
Stopping All Servers
mysql-test-run: WARNING: caught exit of unknown child -1
mysql-test-run: WARNING: Forcing kill of process 8991
と出て、いきなりFaild出ています。
247246:2007/10/10(水) 02:46:59 ID:???
そこで、src.rpm中のtar.gzを、自分で展開して、

CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static
(mysql4.1マニュアルにあったまんま)から、makeしてみたんですが、

・item_cmpfunc.cc:861: 警告: converting of negative value `-0x000000001' to `ulonglong'
・sql_show.cc:1467: 警告: キャストによってポインタから異なるサイズの整数となります。
上の二件警告がでて、コンパイル自体は通るんですが、で、make testとしたら、上と全く同じエラーがでます。

とりあえずmake installして、./script/mysql_install_dbしてから、./bin/mysqld_safe & で起動して、
./bin/mysql -u root で入って、select,create table,insert,delete 等は一応動いてるようです。
でもそこで mysql-test/mysql-test-runしてみるとやはり上記のエラーが・・・。
途中でこけるんではなくて、いきなり一発目のテストからこけてる。

ちなみに --force オプションつきでやってみると、ものの見事に全てのテストが Faildします。
その時、別のターミナルからtopでプロセス監視してると、mysqld<defunct>が二個くらい出てきては
数秒したら消えるの繰り返しでした。

’Failed to start master mysqld 0’とあるので、テスト用のmysqldが正常に起動できてない(ゾンビプロセス化)
ような気がしますが、mysql-ABや、MLで’Failed to start master mysqld 0’とか’mysql-test-run’とかで
検索かけても、マニュアルには「全てのテストは通ります。」としか書かれてないし、
ggったところ一件だけ同じ症状(ver5.0.41だけど)があったんですが、
そこにも「通る気配がないので、make installして起動さしますた。」ってことになってます。

こちらの皆さんは、ソースからmakeしてmake testとか、script/mysql-test-runとかちゃんと通りますか?

あと、rpmからの時は、起動してるとき ps -A | grep mysql で mysqld_safe と mysqld の二つしか
プロセスHitしないのに、ソースからmake install して ./bin/mysqld_safe した時は、mysqldプロセスが
八匹くらい常駐してるんですが、これも正常なんですか??
248NAME IS NULL:2007/10/11(木) 07:49:24 ID:???
rpmbuildでのtest全失敗はやったことある。

> mysqld<defunct>が二個くらい出てきては
> 数秒したら消えるの繰り返しでした。

いっしょいっしょ。
iptablesで塞いでるからかなーとか考えて
そのときは深く追求しないで寝てしまった。

あと
関係ないけど5.0.48は大バグがあるから使っちゃだめ。

| MySQL Enterprise 5.0.48 Binaries Withdrawn
| After the recently released MySQL Enterprise 5.0.48 binaries
| were made available for download, it was discovered that they
| are affected by Bug #31001.
|
| Because of this, it was decided that MySQL Enterprise 5.0.48
| binaries should be withdrawn from the MySQL Enterprise Server
| download page, and they have now been removed. The previously
| released MRU, MySQL 5.0.46, has been made available in its place.
249NAME IS NULL:2007/10/11(木) 11:09:38 ID:???
お返事ありがとうございます。

そうですか。
本スレ?でも書いたんですが、5.0.48.src.rpmからではなくて、本家の5.0.45.tar.gzからmakeしても、全く同じ症状がでてます。
ちなみにtop監視してて気づいたこと、mysqld<defunct>以外にndb-なんちゃらってのが出てきては消えを繰り返してたので、
クラスターエンジン(?)がらみかなーとかとも考えてみたんですが、よくわかりません。

> あと
> 関係ないけど5.0.48は大バグがあるから使っちゃだめ。

うはー、さっきBug#31001をチラッと見に行きましたが、かなり重大っぽいですね。
CentOSのrpmにはいくつかPatchがあたってるようなので、ちょっと調べてみます。
250248:2007/10/12(金) 02:23:20 ID:???
--with-mysqld-ldflags=-all-static
これがついてるとNPTLじゃなくてLinuxThreadになるらしい。
なのでtopとかでスレッド数のぶんプロセスがあがってしまう。

mysql-test-run.plは調べ中だけどrootでやると確実に失敗する模様。
元々mysqldはセキュリティ上root権限ではあがらないため。
明示的に--user=rootとすればあがるのでmysql-test-run.plに
パッチをあてて実験中。

SRPMのリビルドの過程ではmake testはしないのが普通なのかなあ。
あらかじめ
| export MYSQL_RPMBUILD_TEST=no
するとmake testを飛ばすみたいね。
251248:2007/10/12(金) 03:19:03 ID:???
> 明示的に--user=rootとすればあがるのでmysql-test-run.plに
> パッチをあてて実験中。

test通った。ので原因確定。

結論として、
MySQLのSRPMはrootでなくて一般ユーザでrpmbuildすべし。
一般ユーザでrpmbuildしたらパッチなくてもtest通った。

参考 http://memo.blogdns.net/rpmbuild.html

ねる
252290:2007/10/12(金) 04:30:42 ID:obmx5Aip
>>250,251
わざわざ検証ありがとうございます。
実はこっちでもちょっと前に、一般ユーザーでテスト通りました。

mysql-test/var/log/master.errに
’Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!’
ってあったんで、マニュアルの"Security"部分眺めながら、--user=rootでやっみたんですが、それでもFailedになったんで、
sudo -u mysqlでやって、今までとは違うエラー内容(mysql-test/var/以下にファイル作れません)でたので、
chmod 775 -R mysql-test/でやってみてテスト進みました。

ぬわんてこった〜〜!!って真剣思った。
rpmbuildかける時はずっとrootでやってたんで、まさに灯台本暗しとゆうかなんとゆうか・・・。

> --with-mysqld-ldflags=-all-static
> これがついてるとNPTLじゃなくてLinuxThreadになるらしい。
> なのでtopとかでスレッド数のぶんプロセスがあがってしまう。

これは知らなかった。これもサンクスです。

あと、Centの5.0.48には、当該のPatch当たってなかった。
さすがにorder by desc と asc で並びが同じ(w)ってのはまずいですね。(myisamはちゃんとなるみたいだけど)

これから一般ユーザーでrpmbuild試してみようと思いましたが、眠いので明日にします。
253246:2007/10/12(金) 04:34:39 ID:???
すいません。>>252は246の間違いです。
しかもあげてしまった・・・orz。
254NAME IS NULL:2007/10/15(月) 23:16:50 ID:???
mysqlの文字列の型で、charとvarcharとtextとありますが、
それぞれ、どのような文字列の場合に使用するものなのでしょうか?

たとえば、高速化をはかりたい場合はcharで、ディスクの容量を節約したい場合は、varcharで
といった具体に目的に応じて、使用する型を選ぶと思うのですが、
その判断方法を教えていただきたく、ごきょうじゅお願い致します。
255NAME IS NULL:2007/10/16(火) 00:49:25 ID:???
固定長・・・・・・・・CHAR
可変長・・・・・・・・VARCHAR
256文字以上・・・TEXT

でいいんじゃね?
256NAME IS NULL:2007/10/16(火) 01:08:26 ID:???
MySQLのVARCHARは64KB入るよ。

CHARは余った末尾は空白埋めされる。
VARCHRは空白埋めされない、末尾に空白を入れても削られる。
TEXTは空白埋めされないけど、末尾に入れた空白はそのまま残る。

なので

CHAR:何か固定桁のIDを入れる
VARCHAR:何かの名前を入れる(末尾の空白はいらない!)
TEXT:文章を入れる(末尾に空白を残したい人がいるかもしれない!)

っていうのがお作法じゃね?
性能差はたぶん測定不可能だと思う。
257NAME IS NULL:2007/10/16(火) 02:18:07 ID:???
>>256
5.0からvarcharの末尾空白は削られなくなったというような話をどっかで聞いたような気がする。
258NAME IS NULL:2007/10/16(火) 02:44:26 ID:???
ほんとだorz
しらんかった
259>>254:2007/10/16(火) 23:55:06 ID:???
ありがとうございます。
結局、varcharとtextはでもどっちでもよいという話ですね。
260NAME IS NULL:2007/10/17(水) 00:40:12 ID:???
MySQLって、primary keyをselectすると、
そのレコードの全てのカラムのデータをひっぱってくるという話を
聞いたことがあるのですが、これは事実でしょうか?

事実とした場合、4000文字程度のデータが入るカラムをtext型として
データベースに追加することを考えた場合、
既存のテーブルに追加すると性能が落ちる気がするので、
同じprimaryキーの別のテーブルを新しく作成して、
そこにtextのカラムを追加したほうがいいのかなと考えたのですが、
この考え方はあっていますでしょうか?

よろしくごきょうじゅお願いします。
261NAME IS NULL:2007/10/17(水) 01:14:53 ID:???
>>260
http://www.mysql-ucj2007.jp/session/index.html
セッションJ25の下の資料のP13〜15、17〜18を読めばいいんじゃない?
興味があったらセッションJ14のP18〜19も読めばいいと思うよ。
262NAME IS NULL:2007/10/17(水) 14:38:27 ID:???
>>260
たぶんいろいろ勘違いしてると思われ。
263>>260:2007/10/18(木) 00:48:15 ID:???
>>261
ありがとうございます。読んでみますm(_ _)m
264ビューについて質問:2007/11/01(木) 03:08:57 ID:???
変則的な使い方だと思うのですが、ビューについて質問させてください。

<条件>
共通のカラムをもった別のテーブルを2つ以上用意する。
(カラムは共通のもの以外にもある可能性がある。例として共通カラム:ID,NAME)

<質問1>
これらのビューを作成するときには、

create or replace view view_name as select ID,NAME from * where 条件式;

で作成可能でしょうか?

<質問2>
上記SQL文でビューに組み込まれるテーブルは少なくともID,NAMEカラムを持っていることが条件となり、

ID,NAMEカラムの片方だけを持つテーブル→ビューには組み込まれない。
ID,NAMEカラム以外にもカラムを持つテーブル→ビューに組み込まれる。

となるのでしょうか?

<質問3>
元のテーブルのデータがUPDATE,INSERT等で更新し、ビューを意図的に更新しない時ビ
MySQLではビューの検索ではどのような挙動になるのでしょうか?

具体的には、
NAMEフィールドが更新された→検索に引っかかるのは更新前の文字列か更新後の文字列か?
レコードが削除された→検索には削除されたレコードも引っかかるのか?

以上です。
よろしくお願いします
265NAME IS NULL:2007/11/01(木) 16:54:00 ID:???
いいからマニュアル読めよ。
http://dev.mysql.com/doc/refman/5.1/ja/create-view.html

1はできん。
3は意味不明。

VIEWってなんだか理解してる?
266QBfqIVLh:2007/11/13(火) 06:03:32 ID:???
267ZDunVynZK:2007/11/19(月) 12:39:45 ID:???
268jYRufUEttFbXqOmQDLW:2007/11/20(火) 21:35:04 ID:???
269TIFuLtsDDsbaCAhszE:2007/11/22(木) 22:50:13 ID:???
http://gkinyn.cn mp3 dmusic downloads ipod
270oHQIyyzKxHaoHVU:2007/11/23(金) 23:02:05 ID:???
271QLkqzusunZSiKx:2007/11/24(土) 00:48:42 ID:???
272NAME IS NULL:2008/02/13(水) 21:21:47 ID:???
5がいかに人気が無いか分かるな
273NAME IS NULL:2008/02/14(木) 01:10:13 ID:???
MySQL5系からトリガという機能が追加されたらしいのですが、

このトリガって具体的にどのようなシチュエーションで利用されるものなのでしょうか?
(#トリガの説明聞いただけでは、いまいち何の役にたつのかわからないのです。。)
274NAME IS NULL:2008/02/14(木) 01:45:58 ID:???
>>273
サマリテーブルの更新。
275NAME IS NULL:2008/02/14(木) 01:58:44 ID:???
>>273
このへん読んでみたらどうか
http://www.techscore.com/tech/sql/14_02.html
276NAME IS NULL:2008/02/14(木) 10:49:17 ID:???
QueryBrowserで、右側のテーブル名ダブルクリックすると、上のクエリ窓に
SELECT * FROM [テーブル名] [テーブル名のイニシャル]
が出ますよね?
それで、ある一部のテーブル名だけ
SELECT * FROM '[テーブル名]' [テーブル名のイニシャル]
とシングルクオートで囲まれて出てきます。
このせいでアプリケーションでの検索ができません。
何が原因でしょうか?テーブル作成時もほかのテーブルと同じように作ったのですが・・・
277>>273:2008/02/15(金) 00:04:23 ID:???
>>274
>>275
ありがとうございます
278KbYTMrLzTv:2008/03/22(土) 05:55:00 ID:???
279frDFQeby:2008/03/24(月) 11:15:17 ID:???
280NAME IS NULL:2008/04/01(火) 02:32:51 ID:S2Hxl9dE
DELETE FROM userlist;してしまった…。バックアップが見つからないorz
281NAME IS NULL:2008/05/07(水) 15:09:18 ID:lgbIt4VH
自宅のパソコンでPHPやJavaを勉強してるんだけど。

MySQLにPHPやJavaから接続したいんだけど、
PHP用のデータベースはEUC-JP、Java用のデータベースはWindows-31Jにしたいんだけど
データベース作成のときのCREATE DATABASE構文でCHARACTER SET CP932 とかUJISとかに
すればひとつのMySQLの中で別々の文字コードを持ったデータベースってできるの?

教えてえろい人。
282NAME IS NULL:2008/05/07(水) 16:33:19 ID:???
でけるよ
283NAME IS NULL:2008/05/07(水) 20:05:47 ID:NtT1LWDm
thx >>282

明日やってみるYO!!!
284NAME IS NULL:2008/05/08(木) 01:32:56 ID:???
shutdownして再び動かそうとしたら
プロセス残ってるよとか言う意味のエラーが出て起動できねえ糞
285NAME IS NULL:2008/05/08(木) 01:58:43 ID:???
>>284
pid ファイルが残ってるんじゃないの
286NAME IS NULL:2008/05/08(木) 02:07:58 ID:???
>>285
pidファイル探したが見つからなくて途方に暮れてる
287286:2008/05/08(木) 02:08:34 ID:???
リブートしたら治るかなあ
288NAME IS NULL:2008/05/08(木) 02:31:43 ID:???
>>286
OS は?
289286:2008/05/08(木) 02:54:58 ID:???
linuxです
MySQL3と4を共存させてます
290NAME IS NULL:2008/05/08(木) 04:02:33 ID:???
strace してみて、エラーメッセージ直前でどんなシステムコールを発行しているか
見てみると良いかもね。特に fstat とか open 辺りを中心に。pid ファイルなら
それで見つかると思う。

あとは普通に mysqld のエラーログを端から眺めてみるとか。
291286:2008/05/08(木) 16:22:54 ID:???
それっぽいpidファイル見つかったけど中身のプロセスidは
psで確認してみたら動いてるっぽいし…(すでにmysql3が動いてるのでそれの?)
292286:2008/05/08(木) 16:26:43 ID:???
言い忘れてましたがすでにMySQL3は動いています
起動できないのはMySQL4です
293NAME IS NULL:2008/05/08(木) 17:00:06 ID:???
>>292
新しいほう(v4)のcnfで、data_dir、pidの場所、mysql.sockの場所、bindするPort
全て異なる設定にする。
294286:2008/05/08(木) 17:26:53 ID:???
>/var/lib/mysql4/bin/mysqld_safe -u root -p -P3307 --defaults-file=/var/lib/mysql4/data/my.cnf --pid-file=/var/lib/mysql4/data/mysql4.pid --datadir=/var/lib/mysql4
>Starting mysqld daemon with databases from /var/lib/mysql4
>STOPPING server from pid file /var/lib/mysql4/data/mysql4.pid
>080508 17:25:20 mysqld ended
orz...
295286:2008/05/08(木) 17:48:37 ID:???
MySQL4はあきらめてで5を入れて試してみます。
回答してくれた方ありがとうございました。
296NAME IS NULL:2008/05/08(木) 18:08:56 ID:???
>>295
> /var/lib/mysql4/bin/mysqld_safe ・・・・
のところの、-u root いらない。(ってか、確かroot権限でmysqldは起動できないはず)

あと、--defaults-file= 指定するなら、その後ろ側にある各種コマンドラインオプションも.cnfに書いてしまえ。
もうひとつ、予想だけど、/var/lib/mysql4 はほんとにdatadirかな?/var/lib/mysql/dataではなくて?
297286:2008/05/08(木) 19:30:41 ID:???
>もうひとつ、予想だけど、/var/lib/mysql4?はほんとにdatadirかな?/var/lib/mysql/dataではなくて?
そのとおりでした。/var/lib/mysql4/dataでした
ただ、そのへんを直しても同じエラーでこけるっす・・・
298NAME IS NULL:2008/05/08(木) 20:00:48 ID:???
>>297
もう少しエスパーしてみる。

そのPathからして、多分ソースから、--prefix=/var/lib/mysql4 としてコンパイル&インストールしたんだと思われるけど、
まず、動いてるほうのmysql3を止めてから、4のほうを起動出来るか試してみる。(cnfは二つ目起動させる設定で)

それで起動出来なければ、単独とか2つ同時起動とか関係ない。そもそも起動の仕方が間違ってる。
で、予想としては、mysql権限テーブルが作成されていないとか、datadir以下のパーミッション絡みかな。
ここら辺は詳しくは、本家のmanualなりdocument見てくれ。
ここいらがわかってないと、5.0入れても多分起動できない。

逆に、上の段階で起動出来てしまったら、原因ようわからん。(オレではお手上げ)

ちなみに、ウチの環境で、>>293の通り即席でやってみたら、2つ同時起動はできた。(v4とv5でだけど)
ちゃんと別々に動作してるのも、ps と それぞれにconsolから接続して確認した。
299286:2008/05/08(木) 22:11:46 ID:???
すみません、上司と相談した結果MySQL4をアンインストしてMySQL5を入れることになりました
それでmysqld_safeで無事起動できました
結局大本の問題は解決できませんでしたが色々相談に乗ってくださってありがとうございました
300NAME IS NULL:2008/06/02(月) 21:37:17 ID:???
エスパーですまん。
なにがなんだかわからん。


同じテーブルをアクセスしているが
PHP経由は大丈夫で
突然、JDBC でおかしくなった。

昨日までOKだった。

OS再起動までした。

以下、mysql.log


080602 21:23:40 5 Connect root@localhost on
5 Query SET NAMES ujis
5 Init DB test
5 Query select * from tab1 order by number
5 Quit
--------------------------------------------------------------------↑ PHP で接続
--------------------------------------------------------------------↓ JDBC
080602 21:29:04 6 Connect root@localhost on test
6 Query 闃爿931,蹌/..%#4/2蹣!6!逡鉐鉚琥爛6)3)/.篁36.逎6)3)/.=珸 閠
玻!2)!",%.!-%瓔膃!.'5!'%艢燹2)!",%.!-%瓔瑯.%472)4%4)-%/54艢燹2)!",%.!-%瓔瑯).4%2!#4)6%4)-%/54艢燹2)!"
,%.!-%瓔瑯7!)44)-%/54艢燹2)!",%.!-%瓔瑯#(!2!#4%23%4#,)%.4艢燹2)!",%.!-%瓔瑯#(!2!#4%23%4#/..%#4)/.艢燹2)!"
,%.!-%瓔瑯#(!2!#4%23%4艢燹2)!",%.!-%瓔瑯#(!2!#4%23%43%26%2艢燹2)!",%.!-%瓔瑯48)3/,!4)/.艢燹2)!",%.!-%瓔瑯42!.3!#4)/.)3/,!4)/
以下 カット

なにか ヒントでいいからお願い。
301NAME IS NULL:2008/06/02(月) 21:44:48 ID:???
経過

他のJDBC アプリでログが出力されていたので

アプリのソースってことがわかりました。

しかし、ゴミになるってことはなに?ソースを追うしかないのか?
302NAME IS NULL:2008/06/02(月) 22:30:25 ID:???
自己れす 解決

connect まではログにでているので、select 文を べた書きにしてうまく流れたので
元に戻して 確認。

jdbc のバージョンがでるところからおかしくなっていたのでJDBCなのか?

そうなのか?
303NAME IS NULL:2008/06/07(土) 04:02:12 ID:???
質問させて下さい。

これまで、Linux上で動作させていたphpスクリプトをWindowsに以降しようとしているのですが
phpからMySQLにINSERT文を行ったのですが、文字化けしてしまいます。
どうすれば直りますでしょうか?

・WindowsXP(Pro)
・php-5.2.5-Win32.zip
・mysql-5.0.45-win32

1※
mysql> SET CHARACTER SET SJIS;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'character_set%';

| Variable_name | Value
| character_set_client | sjis
| character_set_connection | latin1
| character_set_database | latin1
| character_set_filesystem | binary
| character_set_results | sjis
| character_set_server | latin1
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\c
304303:2008/06/07(土) 04:09:00 ID:???
続きです。

2※phpスクリプト内部でINSERT文を実行する前に次のコードも入れています。
  mysql_query('set character set sjis',$dbHandle)
3※組み立てられたSQLを画面上に print(""); で確認すると正常に日本語が入力されています。
4※MySQLのデータ操作を行う際にCSEも使っているのですが、CSEよりテーブルを開き直接日本語
 を登録すると、その値は正常に日本語で登録されています。しかし、phpにて一覧出力すると ??? という
 具合に文字化けしてしまいます。


あと、追加で質問させて頂きたいのですが、コマンドラインからMySQLを再起動するには
何というコマンドを実行すればよいのでしょうか?ぐぐっても中々ヒットしませんでした。
因みに、GUIツールとして MySQL Query Browserを使用しているのですがここから再起動とかも出来る
のでしょうか?
305NAME IS NULL:2008/06/07(土) 06:46:22 ID:???
>>303,304
まず、my.iniの設定から見直してみよう。
その show variables の結果から、サーバがLatin1で起動されてるのが分かる。
create databaseやcreate table時の指定が分からんからなんともだが、そのまま作成したとしたなら、
仮に、"set names cp932"したところで、変更されるのは"connection"と"client"のみ。
なので、mysqldがデータを受け取った時に、内部の保存コードである"latin1"に変換をかけてしまう。
そこで、当然cp932(ms-sjis)はlatin1にマップ出来ないので文字列が壊れる。
回避策は、以下の件とも絡むので後述。

> コマンドラインからMySQLを再起動するには
の件だけど、恐らく、>>303のpathから見て、インストーラでデフォルト設定でinstallしたんだろうけど、
それだと多分、Windowsのサービスに登録されてるはず。その場合はDos窓から、
nat start mysql (mysql5かも?) で起動、
net stop mysql (同上) で停止。
多分自動起動になってると思われるから、Winを立ち上げると同時に起動してるはず。
コントロールパネル→管理ツール→サービスからでも起動、停止が行える。
(QueryBrowser等GUIツールは使ったことないんで、ようわからん。すまん)

起動だけなら、install_pathのmysqld-nt.exeをダブルクリックか、Dos窓から、直接そのmysqd-nt.exeを叩けばよい。
停止は、install_path/bin/mysqladmin shutdown で。
306305:2008/06/07(土) 06:46:57 ID:???
続き

で、その起動時にオプションで、設定ファイル(my.ini)を読み込ませたり、charset他各種設定オプションを渡したりできる。
サービス登録の場合も、上記の「管理ツール」→「サービス」から、起動時のコマンドラインオプションを設定できる。

なので、charset等適切に編集したmy.iniを読み込ますように起動させればよい。
具体的な設定方法などは、本家のManual等を参照してくれ。

ちなみにWin版のバイナリ版phpは、php_mysql.dllがlatin1でコンパイルされてるので、
上記のことをやってなお、接続時に全てのクエリの前に "set names cp932" 等の処置が必要。
又は、上記の設定ファイル中で書くやり方もある。
それでは、がんばってくれ。
307306:2008/06/07(土) 06:54:54 ID:???
ごめん。一つうそついてしまった。
php_mysql.dllじゃなくて、正確にはmysqlに付属のlibmysql.dllが、
デフォルトコードLatin1でコンパイルされているの間違い。
(まあ、phpバンドルのlibmysql,dllも同じことなんだけど)
308303:2008/06/07(土) 15:37:12 ID:???
>>305さん
ご丁寧にレスありがとございます。
色々とお教え頂いた様に試してみたのですが相変わらず、文字化けしてしまします。


1.my.ini
[client]
default-character-set=sjis

[mysql]
default-character-set=sjis

[mysqld]
default-character-set=sjis
skip-character-set-client-handshake


2.文字コード
mysql> SHOW VARIABLES LIKE 'char%';
| character_set_client | sjis
| character_set_connection | sjis
| character_set_database | sjis
| character_set_filesystem | binary
| character_set_results | sjis
| character_set_server | sjis
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\

309303:2008/06/07(土) 15:43:13 ID:???
続きです。

3.php内部での文字コードの設定部分
mysql_query("SET NAMES sjis");

4.phpでテーブルより取得した値をsjisに変換した上で画面に出力
while($row = mysql_fetch_array($rs))
{

  /* 内部文字エンコーディングからSJISに変換 */
  $str = $row["NAME"];
  print("文字チェック1:[ ".$str." ] <br/>");
  $str = mb_convert_encoding($str, "SJIS");
  print("文字チェック2:[ ".$str." ] <br/>");

↓出力結果
文字チェック1:[ ?????l ]
文字チェック2:[ ?????l ]


310303:2008/06/07(土) 17:57:02 ID:???
自己解決しました。

・・・MySQLってなかなか一癖ありますね。。。
思わぬ落とし穴がありました。

311NAME IS NULL:2008/06/08(日) 04:27:00 ID:???
>>310
どう解決したかを書かないと意味がないだろ。
自分がよければそれでいいのかい?

とりあえず文字コードを多重変換して嵌ってたんだろうと推測しとく。
312NAME IS NULL:2008/06/08(日) 15:15:06 ID:???
>>311
良いよ
だって自己解決したんだし。
313NAME IS NULL:2008/06/13(金) 12:07:29 ID:???
質問です。

PHPとMySQLの連携を考えており、DBに接続して
PHPから表示させることは出来ました。
SELECT文についての質問ですが、今現在以下の通りになっています。

SELECT * FROM wp_posts WHERE ID = 30 OR ID = 190 OR ID = 170 ORDER BY ID DESC

これをPHPでwhileを使って縦に順番に表示すると、
ID=190、ID=170、ID=30の順番で書き出されました。

この表示する順番を、一番上からID=30、ID=190、ID=170と、
SELECT文に記述されたIDの順番通りに表示するには、どうすればよいでしょうか?
なにかいい案がある方、いらっしゃいましたらご教示下さい。
314NAME IS NULL:2008/06/13(金) 12:35:19 ID:???
select * from wp_posts order by (case ID when 30 then -3 when 190 then -2 when 170 then -1 else ID end) asc;
315NAME IS NULL:2008/06/21(土) 20:46:10 ID:???
union使えば?
316NAME IS NULL:2008/07/12(土) 01:40:35 ID:???
MySQLはXen上では使えないんですか?

CentOSのDomU上でMySQL5を使っておりますが、
Buffer I/O error とやらが大量に出てきて、ファイルシステムが落ちます。
再現するのはMySQLが動いている時だけなので、MySQLが原因とみて間違いないと思います。
ディスクもディスクイメージも壊れていませんが。。。メソメソ
317NAME IS NULL:2008/07/13(日) 22:11:33 ID:???
>>316
configureのときに--skip-bdbだったかな。
318316:2008/07/14(月) 00:34:32 ID:???
>>317
ありがとう。試してみる。
319NAME IS NULL:2008/07/14(月) 20:39:43 ID:???
PAM-MySQL の導入を検討しているのですが、
(see: http://pam-mysql.sourceforge.net/Documentation/package-readme.php)
crypt の値として平文、crypt(3)、PASSWORD()、MD5() を選択できるのですが、
平文は論外として、どの選択がよりセキュアなのでしょうか?
320NAME IS NULL:2008/07/15(火) 22:00:56 ID:???
>>319です。自分でも調べてみようかと思いソースを覗いてみたら crypt=4 (or "sha1") で
SHA1 が使えたみたいなのでこれを使ってみることにします。

# と思ったら Web に書いてないだけで README に書いてあったorz
321NAME IS NULL:2008/08/02(土) 18:51:16 ID:ag3OZJze
4に戻したいですぅ
322NAME IS NULL:2008/09/06(土) 16:57:02 ID:???
gooでも質問したのですがこちらでも質問させてください。

CentOS 4.6 に MySQL 5.0系をインストールして
port 80番で運用したいと考えています。

ところが、ポート80を指定して起動させると
以下のエラーになり、起動できませんでした。

mysqld started
InnoDB: Started; log sequence number 0 43655
[ERROR] Can't start server: Bind on TCP/IP port: Permission denied
[ERROR] Do you already have another mysqld server running on port: 80 ?
[ERROR] Aborting

80番を使用する http は停止させており、
iptables を停止させてもダメでした。

別のシステムで CentOS をインストールした直後のものに
MySQL をインストールしても同じ状態でした。

ちなみにMySQL 4.1 系では同じ条件下の環境で
my.cnf の[mysqld] で「 port = 80 」を
指定するだけで起動できました。

MySQL は CentOS のサイトからSRPMパッケージを取得し、
i686オプションを指定してリビルドしたものを使用しています。


今まで行ったのは次の通りです。
・コンフィギュアオプションをデフォルトでインストール。
my.cnf の[mysqld] で「 port = 80 」を指定。
・specファイルのコンフィギュアオプションに
「--with-tcp-port=80」を指定してリビルド。


サーバの環境は以下の通りです。

CentOS 4.6
MySQL 5.0.54(SRPM から RPM を作成してインストール)
インストールしたパッケージ
mysql-libs-5.0.54-1.el4.centos
mysql-5.0.54-1.el4.centos
mysql-devel-5.0.54-1.el4.centos
mysql-server-5.0.54-1.el4.centos


どなたかおわかりの方、情報をお願いできませんでしょうか。
よろしくお願いいたします。
323NAME IS NULL:2008/09/06(土) 17:47:53 ID:???
1024未満のポートを使うにはroot権限が必要だから
どうしても80番を使いたければ
iptablesのNAT機能を使って80から3306へ変換しなさい
80番を使う動機を推測すると、たぶん外に公開したいのだろうから
stunnelやstoneなどのSSLプロキシを使うと更によいと思う
324NAME IS NULL:2008/09/06(土) 17:50:16 ID:???
rootじゃないと80番は使えないんじゃ
325NAME IS NULL:2008/11/10(月) 23:47:11 ID:4lZdswNB
DBから値が取得できません。下記の設定のどこがまずいのでしょうか?
エラーにもなりません。教えてください。
【web.xml】
<web-app>
<resource-ref>
<res-ref-name>aiueo</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
【server.xml】
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/testtest" docBase="testtest" >
<Resource name="aiueo" auth="Container" type="javax.sql.DataSource" />
<ResourceParams name="aiueo">
<parameter>
<name>username</name>
<value>myusername</value>
</parameter>
<parameter>
<name>password</name>
<value>mypassword</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql//localhost/testdb?autoReconnect=true&characterEncoding=ujis</value>
</parameter>
</ResourceParams>
</Context>
</Host>
326NAME IS NULL:2008/12/03(水) 07:14:35 ID:Tn2R8xLf
configureコマンドで、with-mit-threadを指定する場合と指定しない場合で何が違うのでしょうか?

自分の理解としては、with-mit-threadを指定するとOSが提供しているスレッドを使って、
with-mit-threadを指定しない場合は、MySQLが提供しているスレッドの仕組みを使うという認識なのですが、あってますでしょうか?

ちなみにOSは、FreeBSD5系なのですが、どっちにしたほうがいいとかありますでしょうか?


327NAME IS NULL:2009/02/21(土) 15:56:28 ID:fHAIG+ux
>MySQLが提供しているスレッドの仕組みを使うという認識
ちがうよ。
328NAME IS NULL:2009/03/28(土) 15:52:58 ID:???
MySQL初心者です。

テーブル名が(なぜか)小文字で作成されてしまった様なので
テーブル名を大文字に変更しようと思い、次のクエリを実行したのですが
一向に大文字になりません。一体何が原因なのでしょうか?

ALTER TABLE test_table RENAME TO TEST_TABLE
329NAME IS NULL:2009/03/28(土) 16:41:02 ID:???
PHP5 / MySQL5.0を使用して簡単なデータベース登録
システムを作っているのですがどうやっても
日本語を登録すると文字化けして困っています。
どうすれば日本語が登録出来ますか?
※WindowsXP Pro

【C:\my.cnf】
[client]
default-character-set=sjis
[mysql]
default-character-set=sjis
[mysqldump]
default-character-set=sjis
[mysqld]
default-character-set=sjis

【C:\Program Files\MySQL\MySQL Server 5.0\my.ini】
default-character-set=sjis
[mysqld]
default-character-set=sjis
※基本このファイルの中にある「utf8」は全て
「sjis」に置き換えました。
330NAME IS NULL:2009/03/28(土) 22:05:16 ID:???
>>328
OSはlinux? MySQLのテーブル名はそのままファイル名になるから
Windowsみたいにファイル名が大文字小文字区別しない環境だと
MySQLからも区別できないよ
331NAME IS NULL:2009/03/28(土) 22:10:47 ID:???
>>329
PHPは使ってないけど、PHPのMySQLライブラリは my.cnf 参照してないって
聞いたことがある。デフォルトの laten1になるはず。
サーバの設定変更していいなら [mysqld] に skip-character-set-client-handshake を書くか
クライアントでなんとかしたいなら接続語に set names cp932 を投げたらいい。
ちなみに sjis は 4.1 以降では使わないほうがいいよ。 より広い cp932 で。
332329:2009/03/28(土) 22:55:14 ID:???
>>330 >>331
レスありがとうございます。結論から言うと正常に日本語も登録されていました。
しかしCSEでのぞいていた為に文字化けしている様に見えただけでした。
odbcの文字コードの設定を sjis にしたら無事CSEからでも文字化けせずに見る
事が出来る様になりました。
333NAME IS NULL:2009/03/29(日) 19:39:13 ID:???
TimeStamp型で定義したテーブルからデータを取得し、取得したデータを
として取得するにはどうすれば良いでしょうか?

2009-03-25 14:06:15
 ↓
2009年03月25日 14時06分15秒
334NAME IS NULL:2009/03/29(日) 22:40:01 ID:???
日本語でおk
335NAME IS NULL:2009/03/29(日) 23:36:13 ID:???
>>333
そういう処理はSQLでやるべきでない。
336NAME IS NULL:2009/03/30(月) 00:23:52 ID:???
>>335
いやPHPでやる位ならSQLで一発でやりたいのです。
何か方法はありませんか?

337NAME IS NULL:2009/03/30(月) 00:42:31 ID:???
>>336
おまえみたいな人間は生きているべきでない。
338NAME IS NULL:2009/03/30(月) 01:06:23 ID:???
>>336
手荷物預かり所で「あのう、このカバンの色を変えたいのですが」と言ってるのと同レベル
339333:2009/03/30(月) 01:13:56 ID:???
で結局やる方法は無いの?
340NAME IS NULL:2009/03/30(月) 02:18:03 ID:???
やる方法はある
でも多分PHPで書くより遅い

mysql> select concat(year(c1),'年') from (select now() c1) v;
+------------------------+
| concat(year(c1),'年') |
+------------------------+
| 2009年 |
+------------------------+
1 row in set (0.00 sec)
341NAME IS NULL:2009/03/30(月) 02:20:30 ID:???
>>333
date_format() つかえ。
342NAME IS NULL:2009/03/30(月) 02:43:09 ID:???
>>340
???
てっきりSQLでやった方が速いと思ってたのですがPHPの方が速いのですか?
それはなぜなのでしょうか?
あと、SQLサンクスです。


>>341
ちょっとリファレンスを見てみます。
343NAME IS NULL:2009/04/13(月) 16:46:07 ID:H6WHEd1c
オートインクリメント有りのテーブルにレコードを入れた直後に
それが何番に入ったかを知る方法ある?
344NAME IS NULL:2009/04/13(月) 17:14:42 ID:???

口の聞き方に気をつけろ
345NAME IS NULL:2009/04/14(火) 11:11:22 ID:9P4yOkB6
質問させてください。
id(ユニーク)とcount の二つのカラムがあるテーブルがあったとして、
このテーブルに入っているレコードをcountでorder by したあと、特定のid、例えばid=10 の前後5個分のレコード(つまり、id=10を入れて11個のレコード)を取得したいとき、どのようなSQLを発行すればよいでしょうか??
ご教示頂けると幸いです。
346NAME IS NULL:2009/04/14(火) 11:18:19 ID:???
ぐぐれかす
347NAME IS NULL:2009/04/14(火) 22:04:20 ID:???
>>343
SELECT LAST_INSERT_ID();
348NAME IS NULL:2009/04/21(火) 22:28:27 ID:SBmgavX0
SELECT LAST_INSERT_ID();
349NAME IS NULL:2009/04/21(火) 23:49:08 ID:???
買収されてしまいました
350NAME IS NULL:2009/04/22(水) 00:03:09 ID:???
どうなるんだろうね
つぶされちゃうのかな
351NAME IS NULL:2009/04/22(水) 01:34:01 ID:???
今更潰すは、さすがに考えにくいんじゃないの。
ポスグレに持っていかれるくらいなら、撒き餌として残すだろ。。たぶん。
352NAME IS NULL:2009/04/22(水) 17:41:38 ID:???
mysqlはoracleの下位バージョンとして開発し
その上位バージョンとしてoracleを持ってくることで
フリーと商用のシェア拡大を目指す
353NAME IS NULL:2009/04/22(水) 23:11:23 ID:???
MySQLの次期バージョンを出したり将来のビジョンを提示したりして
今後も発展するんだ、安心だ、と思わせといて飼い殺す。
354NAME IS NULL:2009/04/23(木) 05:37:34 ID:???
oracleもタダで使う方法もあるしな
355NAME IS NULL:2009/04/23(木) 10:48:53 ID:???
win版の5.0.77-community-ntですがCSVエンジンを利用するにはどうすれば良いですか?
show enginesでNOになってます。
356NAME IS NULL:2009/04/28(火) 01:22:42 ID:+/FWF+FK
MySQLのオラクルマスターを作ればMySQLに力を入れる
MySQLのオラクルマスターを作らないならMySQLに力を入れない
357NAME IS NULL:2009/04/28(火) 08:46:32 ID:aHnBfSXl
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
にして、mysqlを二個立ち上げて、両方から
BEGIN;
して、片方で適当にINSERTしてコミットしてないのに、もう片方からは
SELECTするともう見えてるんだけど、これでいいのでしょうか?
テーブルはInnoDBで作ったけど。

358NAME IS NULL:2009/04/28(火) 08:58:40 ID:???
よくないよ
どこか間違ってるよ
359NAME IS NULL:2009/04/28(火) 09:00:39 ID:aHnBfSXl
>>358
最初に両方からSelectをやっとくと、その後片方がINSERTしたのがもう片方からすぐに
見えるんだけど、なにか間違ってるんでしょうか?
360NAME IS NULL:2009/04/28(火) 15:24:24 ID:???
■セッション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)

みえないよ?
361NAME IS NULL:2009/04/28(火) 22:31:31 ID:???
>>359
テーブルが InnoDB じゃなくて MyISAM になってるとか。
362NAME IS NULL:2009/05/01(金) 01:09:50 ID:vXvzRfg3
すいません質問させてください。

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

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

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


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発行できないので、なにかいい方法があればご教授願います。
365NAME IS NULL:2009/05/01(金) 19:05:41 ID:???
俺なら、状況に応じて以下のどれかで対応する。

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

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

単にDB設計をさぼってるだけで、
安易に一意になるものということで連番振ってるだけでしょ。

368NAME IS NULL:2009/05/02(土) 00:27:22 ID:???
プライマリーキーはchar型かそれとも数値型か
http://pc11.2ch.net/test/read.cgi/db/1156315045/
369NAME IS NULL:2009/05/02(土) 00:36:49 ID:???
>>364
>( select 学生id from 学生名簿 order by 学生名 limit 0,50)
一見するとこれいらないと思うんだが。
370NAME IS NULL:2009/05/02(土) 23:21:14 ID:iDaEn/bV
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

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

なぜかというと、括弧なしの場合、AとBをjoinした結果フェッチする行数が存在しない場合でも、
BとCのleft joinを行うからだ。

374NAME IS NULL:2009/05/04(月) 06:11:39 ID:pQt/LC0v
質問です。

バイナリログがうまく書き込めないんです。
以下のようなログが出てます
----------------------------------------------
/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 */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
----------------------------------------------

何か原因として考えられることはありますか?
375NAME IS NULL:2009/05/04(月) 09:26:12 ID:???
>>374
mysql-bin.000008 かそれが置いてあるディレクトリにパーミッションがない。
376NAME IS NULL:2009/05/05(火) 19:52:00 ID:+Yc0J8ac
バイナリログに、いつもファイルの最後にこんなのがでるんだけど。
ROLLBACK /* added by mysqlbinlog */;

これ、何かわかる人いますか?

377NAME IS NULL:2009/05/05(火) 21:41:38 ID:???
読んでそのままでは?
378NAME IS NULL:2009/05/05(火) 22:20:56 ID:+Yc0J8ac
>>377
コメントを訳すと、mysqlbinlogによって追加されました、となるけど、
なんで追加するのかなーと。なんでROLLBACKする必要があるのかと。
379NAME IS NULL:2009/05/06(水) 15:32:14 ID:???
>>370
A left join ( B left join C on B.id=C.id ) on A.id=B.id
380NAME IS NULL:2009/05/08(金) 04:03:39 ID:???
>>379
流石にそれはない
381NAME IS NULL:2009/05/11(月) 12:33:48 ID:gPGRNLrz
ネットワーク越しに接続させたいので、ユーザXXXに10.1.1.1から接続できるように設定したいと思ってます。
userテーブルにはXXXがlocalhostから接続できるという設定の行があるので、それを流用したいとおもっている
のですが、そんなこと可能でしょうか?
自分でINSERT文を書くのはできれば避けたい('Y'とか'N'が多すぎるし)のですが、普通は自分でINSERT文を
書くべきなのでしょうか?
よろしくお願いします。
382NAME IS NULL:2009/05/11(月) 13:00:22 ID:gPGRNLrz
例えば、ストアドプロシージャを書いて、その中でSELECTの結果を保存して、
一部を書き換えて、INSERTの引数として使うこととかってできますか?
383362:2009/05/11(月) 16:32:24 ID:l33ZsoDq
お礼遅れてすいません。ありがとうございます。
やはり自分のところではorder by よりmaxのサブクエリを使った方が早いみたいでした。
384NAME IS NULL:2009/05/11(月) 19:39:27 ID:gPGRNLrz
selectの結果を保存するのは出来ない気がしてきたので、ストアドプロシージャの練習を兼ねて
書いてみました。

DELIMITER //
CREATE PROCEDURE net_user_enable(IN myhost CHAR(64), IN myname CHAR(64), IN mypassword CHAR(64))
BEGIN
-- 1: USERテーブルにユーザとホストの組み合わせを追加
INSERT INTO mysql.user VALUES (myhost,myname,PASSWORD(mypassword),'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0);
-- 2: dbテーブルにホストを追加
INSERT INTO mysql.db VALUES (myhost,'%',myname,'Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
FLUSH PRIVILEGES;
END //
DELIMITER ;

-- こんな感じで使ってね。
CALL net_user_enable('localhost','hoge','hogeのパスワード');
385NAME IS NULL:2009/05/12(火) 00:12:08 ID:v5EaLHhs
CREATE FUNCTIONで関数定義するとき、SELECT文を使えないのでしょうか?

CREATE FUNCTION hogefunc(num INT) RETURNS INT
BEGIN
SELECT "hogehoge";
RETURN 2;
END//

こう書いても受け付けてくれません。

386NAME IS NULL:2009/05/17(日) 08:44:42 ID:???
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ワークベンチ:2009/05/17(日) 08:48:02 ID:???
Workbenchでテーブルを作成しました。ここからCREATE文のスクリプトを作成することは出来ますが
ついでにInsert文のスクリプトも作成することは可能でしょうか?
(テーブルのタブに「Inserts」というのがあり、ここで投入用のデータをエディタで書けるのだが、ここからどうすればスクリプトに落とせるのか不明)
知ってたら教えて下さい
388386:2009/05/17(日) 08:59:05 ID:???
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9188.txt
違ったデータベース名、テーブル名は関係なかった。よくよく見るとスクリプトでテーブルを作るときに警告が
出てた。上にアップしたスクリプトは簡単なテーブルを3つ作るだけなのだが、何がおかしいのだろうか
単純にselect * from order;がエラーになる。(データベース名を指定するとおk)
389386:2009/05/17(日) 10:38:07 ID:???
予約語だった。。。知らなかった
ちくしょー!!
390NAME IS NULL:2009/05/17(日) 20:25:32 ID:vKUcKlyZ
ユーザーがグループに所属していて、グループもまた別のグループに所属しているような階層構造になっている場合、
どうやって所属情報をDBに入れるのが賢いの?
上位グループに所属するユーザーを抽出するクエリがつくりにくいんだけど
391NAME IS NULL:2009/05/17(日) 22:33:04 ID:???
RDBMS向きじゃないね。
392NAME IS NULL:2009/05/18(月) 00:00:52 ID:???
>どうやって所属情報をDBに入れるのが賢いの?
MySQL捨ててPostgreSQLに入れるのが賢い。
393NAME IS NULL:2009/05/18(月) 06:05:35 ID:???
何の問題も無いだろ
394NAME IS NULL:2009/05/18(月) 07:09:02 ID:???
Postgresは現行VerでもOracle風のconnect byが使える。
もうすぐ出る次期VerではSQL99準拠のWITH RECURSIVEも
使えるらしい。
395NAME IS NULL:2009/05/18(月) 17:30:27 ID:???
日本語でおk
396NAME IS NULL:2009/05/18(月) 18:03:51 ID:???
ツリーってDB入れるの無理だろ
397NAME IS NULL:2009/05/18(月) 19:06:38 ID:???
398NAME IS NULL:2009/05/19(火) 02:33:18 ID:WKjGD5xV
dumpが出来ないです
mysqldump -u root hoge > c:\backup\dump.sql
とMysqlコマンドに入力すると
Unknown command '\b'.
  ->
となるだけでdumpできません
Cドライブにbackupファイルも作ってありますが、何か足りないのでしょうか?
399NAME IS NULL:2009/05/19(火) 03:19:57 ID:???
>>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
400NAME IS NULL:2009/05/19(火) 03:37:21 ID:???
随分なスロークエリの悪寒。。しんどいね。。
401NAME IS NULL:2009/05/19(火) 09:27:40 ID:???
>>398
mysqldumpはmysqlクライアント上のコマンドじゃなくて
単体のプログラムだ
402NAME IS NULL:2009/05/19(火) 16:26:07 ID:???
>>401
ありがと
ばっちりできました
403NAME IS NULL:2009/05/19(火) 18:06:12 ID:???
>>399
再帰が無いSQLで書く技を使えば他のSQLに乗り換えるときコード修正不要?
404NAME IS NULL:2009/05/19(火) 22:03:06 ID:???
他のSQLにも色々あるしなぁ。
シンプルなselectひとつ取っても、
例えばSQLiteでは使えるカラム名が
MySQLでは予約語だったりするしなぁ。
405NAME IS NULL:2009/05/20(水) 08:40:18 ID:???
>>404
キーワードじゃない語は全部ちゃんと
クォートすれば。
406NAME IS NULL:2009/05/20(水) 17:58:15 ID:???
気本棚
407NAME IS NULL:2009/05/23(土) 17:45:10 ID:2SizHsxE
始めてデータベースを移転するのですが教えてください
mysqldumpでやったのですが
Aserver からBserverに全てのデータを移転するのですが
先ずAserver で
mysqldump -A -u root -p a234abc --opt > dump.sql
rsync -avz -e ssh /root/mysqldump/ Bserver:/root/mysqldump/
でAserverのdump.sqlをBserverに移して
Bserverに入って
cd /root/mysqldump
mysql -u root -p 1234abc < dump.sql
としたのですがpasswd を聞いてくるのでパスワードを入力しても
ERROR 1049 (42000): Unknown database '1234abc'
とエラーが出ます間違った操作をしているのでしょうが何が悪いのか
解りませんどなたか教えていただけませんか
Aserverはmysql4.1ですBserverはmysql5.0 です
408NAME IS NULL:2009/05/23(土) 21:35:18 ID:???
1234abcなんかしらないとエラーが言っている
409NAME IS NULL:2009/05/23(土) 22:13:08 ID:???
先に
create database 1234abc;
をする
410NAME IS NULL:2009/05/24(日) 11:57:46 ID:zGV2NEj3
便乗質問です。
mysqlってダンプファイルの中身見て、ロード先のDBに必要な
データベースがなかったら自動的に作成してくれるもんじゃないの?
411NAME IS NULL:2009/05/24(日) 12:30:22 ID:???
ダンプファイルってつまり単なる普通のSQLの塊だから
データをINSERTする前にテーブルをDROPしてCREATEするだけ。
それがダンプしたSQLの先頭にあるかないかの問題で、
MySQL側がどうこう言うことではないと思うが。
ダンプするツールが対応するか、もしくは手書きすべきだ。
412NAME IS NULL:2009/05/30(土) 23:42:08 ID:59hmKSc9
すごい初心者な質問なのですが…
phpMyAdminのインストールってデータベースを作った後からでも
大丈夫なのでしょうか?

XREAでWordpressを使ってます。
MySQLからエントリーの中身をエクセルに落としたいのですが、
phpMyAdminをまだインストールしてませんでした。
XOOPSだと後からインストールすると問題ありな記事を読んだので
ちょっと不安になってしまいまして…
よろしくお願いします。


413NAME IS NULL:2009/05/31(日) 10:28:51 ID:???
>>412
まったく問題ないと思うけど。。。
単なるPHPコードだよ? 何かあるわけない。
414NAME IS NULL:2009/06/01(月) 23:16:57 ID:???
助言をいただきたいのですが…。

SELECT t1.id, t1.data, t1.update FROM table_name t1
WHERE t1.update = (SELECT MAX(t2.update) FROM table t2 WHERE t1.id = t2.id)

これは、重複するidを持つレコードが複数あるテーブルから、
更新日updateの一番大きいレコードだけをかいつまんで取得するSQL文です。

ここにさらに条件を加え、各idの「一番小さいupdate」をキーにソートしたいのですが、
効率の良いSQL文が書けません。

アドバイスをいただければありがたいです。
(グループ化とかいいつつ、結局GROUP BY使わない方法でやってますが…;)
415NAME IS NULL:2009/06/01(月) 23:23:24 ID:???
idと更新日のペアがタブっていたらどうするの?
416NAME IS NULL:2009/06/01(月) 23:29:24 ID:???
SELECT
 t1.id, t2.data, t1.max_update AS update
FROM
 (SELECT
  id, MAX(update) as max_update, MIN(update) as min_update
  FROM table_name GROUP BY id) t1,
 table_name t2
WHERE
 t1.id = t2.id AND t1.max_update = t2.update
ORDER BY
 t1.min_update
417NAME IS NULL:2009/06/02(火) 10:48:25 ID:???
>>415
idと更新日のペアは一意になるようになっています。

>>416
ありがとうございます!
とても勉強になります。
418NAME IS NULL:2009/06/02(火) 11:23:58 ID:???
PHP から MySQL を使っています。
SELECT で varchar(2000) の値を取得するときのことなのですが、
PHP 側ではこの値の冒頭200文字程度しか利用しないと分かっているとき、
はじめから SUBSTRING で値を削って取得するメリットは小さいでしょうか?

一般に MySQL で余計な関数を使うと処理が遅くなると聞きますので、
こういった文字列処理は値を取得しておいてPHP側でしたほうがよいですか?
なんとなく、あらかじめ削っておけばメモリの消費が抑えられるのではないかという考えがよぎって迷っています。
419NAME IS NULL:2009/06/02(火) 13:02:24 ID:???
グループ化についてもう一つ助言をいただきたいのですが…。

GROUP BY AAA, BBB

これは、AAAとBBBが同一のものをグループ化すると理解しています。
そうではなく、AAAでグループ化して、さらにそれをBBBでグループ化する、
のようにGROUP BYを入れ子にするには、どのようなクエリを書けば実現できるのでしょうか?
420NAME IS NULL:2009/06/02(火) 13:41:43 ID:???
>>418
考え方による。
大規模なwebアプリなら、圧倒的にPHP側で処理すべきと思う。
あなたの力量にもよるけど、突き詰めると、DB側で処理するメリットは無い。

DB側で処理すれば、結果セットが巨大でもデータ転送が速く、かつ省メモリ。
しかし、データが永続的に増える条件下での削減量はたかが知れてる。

DB側で処理すれば、PHPコードがシンプルになる。
しかし、マルチバイト文字の扱いが微妙だし、潰しが聞かない処理(リクエスト、関数、etc)が増える。

DB側で処理すれば、クエリキャッシュが効けば1回限りの処理で済む。
しかし、処理済みデータをオンメモリキャッシュしたほうが、もっと速い。

DB側で処理すれば、PHP側の処理が軽くなる。
しかし、DBよりPHPのほうが簡単にスケールできる場合が多い。

こんな感じでいかがかしら。
421NAME IS NULL:2009/06/02(火) 13:51:14 ID:???
>>419
SELECT * FROM (SELECT * GROUP BY AAA) GROUP BY BBB

ただしAAAでグルーピングした時点でBBBの内容は不定になっている。
これで目的が達成できているか、不明。
422NAME IS NULL:2009/06/02(火) 14:40:11 ID:???
>>419
不可能。
423NAME IS NULL:2009/06/02(火) 18:38:46 ID:???
>>419
>AAAとBBBが同一のものをグループ化
えー、そうだっけ?
424NAME IS NULL:2009/06/02(火) 19:28:58 ID:???
GROUP BY AAA, BBB がそうだろ?
425NAME IS NULL:2009/06/02(火) 22:06:54 ID:???
>>419
GROUP BYを入れ子にって、いったいどういう結果を期待してんの?
勝手な言葉で質問しても解釈がまちまちだからごらんの有様だよ。
426NAME IS NULL:2009/06/03(水) 23:00:07 ID:???
>>420
ありがとうございます!!
427NAME IS NULL:2009/06/17(水) 20:22:30 ID:???
accessから移植したいんだけど、最後に;をつけるだけでおk?
create tableなんかはtype=InnoDB;つけないとだめ?
428NAME IS NULL:2009/06/17(水) 21:07:07 ID:???
データ型そんなに互換性ないだろう
全部見直さないとダメ
429NAME IS NULL:2009/06/17(水) 23:21:33 ID:???
access使うようなのがトランザクション処理が必要なのだろうか…
myisamでいい気がするがなあ
430NAME IS NULL:2009/06/18(木) 20:31:27 ID:???
>>428
大幅に見直すのはcreateのところだけじゃ不十分かな?
select,insert,updateの構文は;つければ使えない?
431NAME IS NULL:2009/06/19(金) 12:45:53 ID:???
selectで、○番目と○番目のレコードを取得、ってしたいんですが、
limitで複雑な指定できませんよね?
サブクエリを駆使するしかありませんか?

イメージとしては、こんな感じに指定したいんです。
SELECT * FROM table LIMIT (0, 1 AND 5, 1)
432NAME IS NULL:2009/06/19(金) 12:51:14 ID:???
>>430
見直しが極めて望ましい。
DBは意外と互換性がないので。
433NAME IS NULL:2009/06/19(金) 12:54:58 ID:???
>>431
UNIONがおすすめ。

(1つ目のクエリ LIMIT 0,1) UNION (2つ目のクエリ LIMIT 5,1)

いくつ繋げてもindex効くし、綺麗。
434NAME IS NULL:2009/06/19(金) 13:47:54 ID:???
>>433
ありがとうございます!
各クエリともLIMIT部分以外が同一であっても、
やはりクエリの数だけ走査しなおしてしまうのですよね?
435NAME IS NULL:2009/06/19(金) 17:54:37 ID:???
SELECT SUM( p.point )
FROM point_table p
GROUP BY p.id
ORDER BY SUM( p.p.point ) DESC
LIMIT 100

これは、各idのもつpointの合計値を、pointの多い順に上位100件取得するクエリです。
ここで得られるpointの合計値を求めたいのですが、
上のクエリをどのように修正すれば良いのでしょうか?
436NAME IS NULL:2009/06/19(金) 18:43:32 ID:???
>>434
つ EXPLAIN

また、一時テーブルをつくる方法も。
437NAME IS NULL:2009/06/19(金) 19:38:32 ID:???
>>436
なるほど、一時テーブルですか。検討してみます。
ありがとうございます!
438NAME IS NULL:2009/06/20(土) 09:28:26 ID:???
>>430
そのまま移植して動かして見てエラーが出たらなおせばいい
439NAME IS NULL:2009/07/03(金) 12:40:09 ID:???
MySQL を勉強中なのですが、クエリの最適化について悩んでいます。

SELECT d.date, i.ip, n.name
FROM update_log d
LEFT JOIN update_log i USING(id)
LEFT JOIN update_log h USING(id)
WHERE d.id = 100
AND i.ip IS NOT NULL
AND n.name IS NOT NULL
ORDER BY d.date DESC, i.date DESC, n.date DESC
LIMIT 1

『条件』
・update_log テーブルから、指定した id に該当するレコードのdate, ip, nameを取得する
・ただし、ip, name の各項は NULL 値が入っている可能性がある
・NULL 値ではない、もっとも date が大きいレコードを各項について取得する

上記クエリだと、取得にかなり時間がかかってしまうため、
よりよいクエリを発行したいのですが、よいアイディアが生まれません。
助言いただけましたらうれしいです。
440NAME IS NULL:2009/07/03(金) 13:04:22 ID:???
nとhが混ざってね?

それは置いといて、クエリよりインデックスの張り方の問題じゃないかな。
それぞれのテーブルに複合インデックスを張れば
普通に激速になりそうな気がする。
441NAME IS NULL:2009/07/03(金) 13:13:46 ID:???
いや、よく見るとクエリも変?
LEFT JOINいらなくね? 違うか?
442NAME IS NULL:2009/07/03(金) 13:26:49 ID:???
それ自己結合する意味あんの?
条件の1つ目と3つ目なんて違う話だし
443NAME IS NULL:2009/07/03(金) 15:08:14 ID:???
レスありがとうございます。

>>440
すみません、一個所 n が h になっていました。
インデックスは EXPLAIN 見ながら貼り直したりしてみたのですが、
特に変化はみられませんでした。

>>441
>>442
それぞれの値を取得するために、
3つばらばらにシンプルなクエリを発行したほうが良いということでしょうか?
444NAME IS NULL:2009/07/03(金) 15:41:51 ID:???
すみません、そもそもクエリが条件に合致していませんでした。

SELECT d.date, i.ip, n.name
FROM update_log d
LEFT JOIN update_log i ON (i.id = d.id)
LEFT JOIN update_log n ON (n.id = d.id)
WHERE d.id = 100
AND i.ip IS NOT NULL
AND n.name IS NOT NULL
ORDER BY d.date DESC, i.date DESC, n.date DESC
LIMIT 1
445NAME IS NULL:2009/07/03(金) 19:52:22 ID:???
サブクエリ使ってください

select l1.date, l1.ip, l1.name
from update_log l1
where id = <入力値>
and date = (
select max(l2.date)
from update_log l2 where l1.id = l2.id
and l2.ip is not null
and l2.name is not null
)
446NAME IS NULL:2009/07/03(金) 21:14:10 ID:???
>>445
それだと全フィールドがnullのレコードが選択されるんじゃね
447NAME IS NULL:2009/07/04(土) 00:15:52 ID:???
アドバイスありがとうございます。

いろいろ試した結果UNIONでつなげることで落ち着きました。

はじめのクエリだとなぜだめなのかが、よくわかりません。
500行のテーブルに対して10秒近くかかってしまっていました。
クエリのどこに原因があるのか、おわかりになる方いましたら、
ぜひ教えてください。m(_ _)m
448NAME IS NULL:2009/07/07(火) 17:41:36 ID:???
二つのDATETIME型の差をTIMEDIFF関数を使って求めたのですが、838時間以上は丸められてしまいます。
正確な秒数を求める方法はありますか?
449NAME IS NULL:2009/07/08(水) 18:44:51 ID:???
>>448
time型ではそれ以上の時間は扱えない。
450NAME IS NULL:2009/07/17(金) 22:48:11 ID:???
あるレコードを DELETE するのと
あるレコードの主キーを UPDATE するコストっていうのはあまり変わらないですか?
451NAME IS NULL:2009/07/18(土) 00:19:49 ID:???
全然違う。
DELETEは重い。頻度にもよるけど、リアルタイムで叩くなら、最もやってはいけない事。
一方、主キーを書き換えるのもヘン。主キーは唯一のレコードを特定するのに用いるべきで、
途中で書き換えてよいデータでは基本的にない。
452NAME IS NULL:2009/07/18(土) 05:01:47 ID:???
コストがかかるのはindexがある場合のそのメンテと、外部キーの参照先になっている
場合とかだろ。deleteそのものはinsertとそんなに違うわけじゃない。
ところで、コストが全然違うと言いたいのか、どっちもコストがかかると言いたいのか
どっちなんだ。
453NAME IS NULL:2009/07/18(土) 12:41:08 ID:???
感じ悪いスレだな
454NAME IS NULL:2009/07/19(日) 00:31:12 ID:???
固定長のテーブルなら気にしない
455NAME IS NULL:2009/08/02(日) 10:47:35 ID:???
うん
ただupdateにくらべてdeleteが死ぬほどおもいのはたしか
456NAME IS NULL:2009/08/02(日) 11:39:00 ID:???
MySQLの全文検索って日本語対応してますか?
n-gram検索ですか?それとも分かち書きされたワード検索ですか?
457NAME IS NULL:2009/08/02(日) 15:30:56 ID:???
分かち書きされたワード検索。
日本語も分かち書きすれば一応使える…けど普通はSenna使う
458NAME IS NULL:2009/08/03(月) 21:38:34 ID:???
そうなんですか。
ググったら、Sennaもワード検索と、あと2-gramをサポートということなんですね。
2-gramがあれば完全に自由な文字列でも検索できるのかな。
Debianではsennaのパッケージが見付からないのが残念です。
459NAME IS NULL:2009/08/03(月) 21:52:10 ID:???
Windows XP SP3
MySQL 5.1 です、root のパスワードを忘れてしまいました
Google でMysql パスワード 忘れたで検索しますが、的確なすべがわかりません
ご教示願います。
460NAME IS NULL:2009/08/03(月) 23:22:30 ID:???
試してないが。これで駄目?
http://miztools.so.land.to/php5_list/sql4_list/mysql_win.shtml
461NAME IS NULL:2009/08/04(火) 21:23:23 ID:???
>>460 さん
ありがとうございます。
掲示していただいたURL
「root パスワードを忘れたときの 伝家の宝刀:1」ここに書かれている
mysqld-nt にパラメータを付加し起動する方法を、試すのですがWindows版MySQL 5.1 にmysqld-nt.exe が無いので
お手上げになっている状況です。
462NAME IS NULL:2009/08/05(水) 04:38:46 ID:???
>>461
ちょっと考えれば分かるだろうけど、タスクマネージャで現在実行中のファイル名とか確認しましょうぜ。

ちなみにウチでは、テスト用ユーザーをたくさん作ったあと、権限テーブル初期化する時なんかは、
>>460のサイトにある宝刀:2の方法でいつもやってるな。
まあ失いたくない情報なら、その時点でファイルのコピー取るなり、mysqlDB(ディレクトリ)以下のテーブルの
dump取っとくことをお勧めする。

何、インストール時にそんなバックアップなんか取ってないって?
それなら本家行って、初期状態のをとってくればよろしい。
463NAME IS NULL:2009/08/05(水) 21:38:30 ID:???
>>462さん>>461 です
どうもです、
>>それなら本家行って、初期状態のをとってくればよろしい。
本家ってhttp://www-jp.mysql.com/ ここのことだと思うのですが
これって再インストールしろってことですか?
464NAME IS NULL:2009/08/06(木) 06:37:10 ID:???
465NAME IS NULL:2009/08/14(金) 20:39:45 ID:???
ちょっとした事、教えてください。
on duplicate key update で insertした時、insertした内、何件がinsertで、何件がupdateだったとかって
判りますかね?

そういうのが知りたい場合は on duplicate keyを使うべきではない?

466NAME IS NULL:2009/08/15(土) 22:23:31 ID:JM2SHLWw
MySQLの設定について教えて下さい。
BLOB型にVB.NETから格納しようとINSERT文を使っても
MySQL側の制限のせいでbyte配列の0番目の(63)しか格納できません><

ご回答よろしくお願いします。

環境
Ubuntu9.04
MySQL 5.0
VB.NET(mysql.data.dll使用)
467NAME IS NULL:2009/08/16(日) 13:09:44 ID:???
>>466
質問になってないな…
468NAME IS NULL:2009/08/16(日) 15:06:45 ID:???
>>466
スキーマ、SQL文とか
制限があると判断した根拠がないとな。
469NAME IS NULL:2009/08/17(月) 14:44:57 ID:???
別ファイルにテーブル定義を作成してます(10テーブル)、そのファイルを
MySQL に読み込ませて、新規テーブルを作成したいのですが、具具ってもコマンドが分かりません、教えてもらえないでしょうか。
470NAME IS NULL:2009/08/17(月) 21:49:18 ID:???
>>469
mysql dbname < filename
471NAME IS NULL:2009/08/22(土) 17:31:04 ID:???
>>470
>>469です
お礼が遅くなりました、ありがとうございます。

472NAME IS NULL:2009/08/30(日) 21:09:54 ID:???
mysqlの正規表現で文字列の部分抽出や置換はできないのでしょうか。
たとえば、下記のtema列値をタグを正規表現で除去して表示することは出来ますでしょうか?
(どんなタグが入るか不明のため、正規表現で除去したいと思っています。)
低レベルな質問ですみませんが、お分かりになられる方が居られましたら
ご教授よろしくお願いいたします。

sid | tema
----------
1 | <b>その1</b>
2 | <I><b>その2</b></I>
3 | <b>その3</b>
473NAME IS NULL:2009/08/30(日) 23:34:29 ID:???
regexp ?  rlike ?
よく判んね w
474NAME IS NULL:2009/08/30(日) 23:39:10 ID:???
>>472
mysqlじゃ無理。おとなしくプログラムで対処するしかない。
475NAME IS NULL:2009/09/02(水) 17:36:46 ID:???
MacOS X Leopard から SnowLeopard への以降に伴い、
MySQLを5.0(x86)から5.1(x86_64)にアップグレードしました。
このとき、データベースファイルはそのままコピーできるものなのでしょうか。
それともmysqldumpとかを使った方がいいのでしょうか。
5.0から5.1への移行における、おすすめのデータファイル移行方法を教えてください。
よろしくお願いします。
476NAME IS NULL:2009/09/05(土) 21:21:30 ID:???
CPU違うならdumpしなきゃだめよ。
dumpだけでいいかはしらん。
477NAME IS NULL:2009/09/05(土) 23:09:50 ID:???
MySQL で 5時間前 や 5時間後 を算出するにはどうすれば良いでしょか?
AddHour(2)とかって関数は無いのでしょか?

SELECT SYSDATE() + 5 / 24 FROM TEST_TABLE

としているのですが変な値が返って来ます。
478NAME IS NULL:2009/09/05(土) 23:55:52 ID:???
>>477
addtime
479NAME IS NULL:2009/09/05(土) 23:59:45 ID:???
>>478
サンクス
480NAME IS NULL:2009/09/23(水) 15:29:42 ID:???
急な停電のためmysqlのデータベースファイルが壊れてしまったのですが
myisamなテーブルはrepairで復旧できたのですが
innodbの場合はrepairしようとするとエラーが出てしまうのですが何か復旧方法ってありますでしょうか?
481NAME IS NULL:2009/09/23(水) 22:23:11 ID:???
UPS使ってないシステムなんてしらん
482NAME IS NULL:2009/09/24(木) 02:58:26 ID:???
とりあえず現状をバックアップしてさらに壊したときに対応できるようにする。
んで innodb_force_recovery を6に。
483NAME IS NULL:2009/10/21(水) 20:25:16 ID:G/42etG5
すいません。ここじゃないかもしれませんが知ってたら教えてください。
mysql workbench5.1.16 OSX版を使用していますが、
カラムの型をdouble (16,9)とかにしてもただのdoubleになってしまいます。
なんなんですかいったい。DBデザイナーだとちゃんといくのに。設定で回避できたりしないでしょうか??
484NAME IS NULL:2009/10/21(水) 23:05:05 ID:nmNVAfvz
MySQLでテーブルのカラムはいくつくらいまで作成しても大丈夫ですか?
50〜100個とか普通は作成しないでしょうか。
485NAME IS NULL:2009/10/21(水) 23:07:26 ID:???
486NAME IS NULL:2009/10/21(水) 23:45:02 ID:nmNVAfvz
>>485
回答有難うございます!

InnoDBの場合は1000カラムまでで、これは速度はほとんど低下しないと期待してもよいのでしょうか?
487NAME IS NULL:2009/10/22(木) 15:08:28 ID:???
1000カラムのうちLOBがいくつあるかによる
LOBが増えれば増えるほど遅くなるよ
488NAME IS NULL:2009/10/22(木) 23:09:09 ID:tsxw+rRJ
>>487

画像みたいなのを入れなければいいんですね。想像以上に作成できるカラムの数が多くて驚いています。
有難うございました。
489NAME IS NULL:2009/10/23(金) 12:29:40 ID:tEyJFZiS
>>483
user define typeで個別に作ると対応できるみたい。不便。
490NAME IS NULL:2009/10/24(土) 05:14:42 ID:???
質問です。
Windows XP で 5.0.45 を使用して、毎日 mysqlimport コマンドをバッチ処理で実行していますが
昨日までは正常に動作していたのに、今日のジョブが5時間以上経っても終わりません。
show processlist で見てもプロセスは存在しません。
現在何が起きているのかを確認する方法はないでしょうか?
491NAME IS NULL:2009/10/24(土) 18:02:55 ID:???
とりあえずエラーログをみる
492490:2009/10/24(土) 20:53:52 ID:???
>>491
エラーログファイルは見てみましたが、何も吐いていませんでした。
半日経っても終わらないので kill しましたが、一件もロードされておらず
テーブルロックが掛かっているような感じにも思えますが、テーブルを更新するのは
そのバッチ処理のみなのでそれもないし・・・
kill した後に手動で mysqlimport コマンドを発行したら、あっという間に正常終了しました。
何だったのだろう・・・ よく分かりませんが、再現待ちとします。
ありがとうございました。
493NAME IS NULL:2009/12/03(木) 22:35:54 ID:???
素人丸出しの質問かもしれませんが、MySQLを使う必要が生じてしまったのでお願いします。

同一テーブル構成のTBL-A、TBL-Bがの2つがあります。
テーブルレイアウトは、
基準日   int(8)
社員番号  int(10)
構成     int(10)
だとします。

TBL-AとTBL-Bを比較し、以下のことをSQLでやりたいんですが、何か関数等あるんでしょうか?
(1)社員番号がTBL-Aに在ってTBL-Bに無い場合-->TBL-Bに該当レコード追加
(2)社員番号が両方に存在し、TBL-Aの基準日がTBL-Bの基準日以降の場合-->TBL-Bの該当レコードをTBL-Aで上書き
(3)社員番号が両方に存在し、TBL-Aの基準日がTBL-Bの基準日以前の場合-->何もしない
(4)社員番号がTBL-Bに在ってTBL-Aに無い場合-->何もしない
494NAME IS NULL:2009/12/04(金) 15:17:42 ID:???
なんでこういう人っていつも仮定口調なの?
495NAME IS NULL:2009/12/08(火) 01:03:06 ID:???
MySQLとAccess連携でプロト作ってるんだが、どっかにMySQLの主にストアドを
綺麗にまとめてるサイト無い?
496NAME IS NULL:2009/12/08(火) 01:16:20 ID:???
うちの会社で余ったWinXPのproにMySQL5.1入れて、ポート開けて20人位の同時アクセスさせているのだが、
今のところ全然問題なく使えてる。バックアップも問題ない。

ココで質問。
1.このまま使っててもOK?
2.今更だがMySQLって、ポート3306開けときゃサーバじゃなくても同時アクセスで使えるモノなの?

※やってみたら出来た。っていう素人さんなのでプロからのアドバイスを希望します。
497NAME IS NULL:2009/12/08(火) 06:57:23 ID:???
>>496
XPProで、その利用方法はライセンス違反
498NAME IS NULL:2009/12/08(火) 07:58:17 ID:???
>>496
Winのライセンス上の問題は
ttp://www.apache.jp/pipermail/apache-users/2003-January/002303.html
参照。
499NAME IS NULL:2009/12/08(火) 08:24:00 ID:???
>>498
不特定多数か社内限定かは
異なるだろうけど、結果は同じ?
500NAME IS NULL:2009/12/09(水) 20:19:53 ID:???
thx
501NAME IS NULL:2009/12/10(木) 10:20:13 ID:???
ライセンス違反のわけねーだろ。アホかい。
502NAME IS NULL:2009/12/10(木) 23:27:35 ID:???
501はたぶんMySQLのライセンスとWindowsのライセンスの区別がつかない程度のしったか
503NAME IS NULL:2010/01/29(金) 00:48:30 ID:???
ON DELETE CASCADE を参照先テーブルに適用してますが、下記のエラーが出ます。
下記のエラーいがいに何が問題になっているか知る方法はありますでしょうか。

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row:
a foreign key constraint fails (`db`.`table`, CONSTRAINT `table_ibfk_10` FOREIGN KEY (`table_id`) REFERENCES `table` (`id`))
504NAME IS NULL:2010/01/31(日) 15:42:47 ID:???
ただのチラ裏です・・・
客用にCOREi3のWin7機を買ったんだが、クラサバシステムのODBC3.51でつないだらエラーの出るテーブルが出た
2台だけだったんで持ち帰りつないでみようとしたら全部つながらなくなった
pingは通るのに何だ?ってパニック
よく考えたら鯖に使ったXPのファイアーウォールが邪魔してただけだった・・・
で、ODBCを2.51にしたらとりあえず全部つながった
このまま行っちゃう予定
よく考えたら36時間程メシ食ってないお
食ったら寝て明日の昼休みの時間に納入してくる
505NAME IS NULL:2010/02/05(金) 12:11:56 ID:???
>>503
「mysql error 1451」とか「mysql Cannot delete or update a parent row」でぐぐってみた?

結局のところ、制約の子が残ってるから消せない/更新出来ないよってことなんだが、

・ON DELETE CASCADE をしているつもりで出来てないってことはないか?
 (子側をshow create tableなんかで確認)
・他に同じ(親)テーブルを、外部キー制約の参照先にしてるテーブルは無いか?

を確認してみるべし。
506NAME IS NULL:2010/04/14(水) 19:46:11 ID:???
かねやんからエクスポート後、再度かねやんからインポートした時、
文字列が空欄になるんだけど、この現象って文字化けなの?
507NAME IS NULL:2010/04/14(水) 22:22:42 ID:???
ファイアーウォールかもね
508NAME IS NULL:2010/08/14(土) 23:40:51 ID:WQmEq40c
age
509NAME IS NULL:2010/08/30(月) 01:01:47 ID:???
windowsXPにxamppでMySQL5.1を入れたけど、どうやっても文字化けする。。。
ネットの情報かなり試したんだけど、5.0までと違うのか、まったくダメ。
5.1で同じような状況になった方はいませんか?
510NAME IS NULL:2010/11/17(水) 08:45:02 ID:???
自分の設定も晒さないで何を言っておるのかね
511NAME IS NULL:2011/01/19(水) 11:24:41 ID:???
MySQLでビューって遅いと聞きますが、どういった点が遅いのでしょうか。

「商品一覧テーブル(product)」と「商品カテゴリテーブル(category)」があり、
product.category_cd = category.category_cdを他:1で結びつけています。
「商品カテゴリテーブル」にはカテゴリ名カラムがあり、
商品検索のときに商品名とカテゴリ名両方検索できるようにしたいと思っています。

すでに構築されたプログラムの改変のため、JOINが非常にし辛いソースとなっていて、
ビューを使うとコストが抑えられると思っているのですが、遅いと聞くので使用していいか戸惑っております。

商品の修正もそこそこありで、検索もそこそこ使うといった感じです。
この場合、ビューを使ってよいものでしょうか。
512NAME IS NULL:2011/01/19(水) 17:31:44 ID:???
MySQLはSELECT対象にVIEWを使うか
VIEWの内容をSELECT文の中に展開して書き込むかで
実行計画が変わることがある。
どちらが速いかはケースバイケース。

ただ >>511 のパターンではその前に
双方のcategory_cd列にINDEXが作ってあるかどうかが重要。

まずINDEXがあることを確認した上で、
VIEWのありなしで検証してみるのをオススメする。
513NAME IS NULL:2011/02/06(日) 13:42:54 ID:???
C APIについて詳しい人います?
514NAME IS NULL:2011/02/21(月) 22:42:22.20 ID:???
>>513
オライリーのMySQLクイックリファレンスを見れ
C APIについても載ってる
515NAME IS NULL:2011/09/27(火) 11:48:59.25 ID:X5ySfYA0
MySQL.comのWebサイトに不正なコード 闇市場でroot権限も販売か
ttp://www.itmedia.co.jp/news/articles/1109/27/news027.html

WebブラウザやFlash、Javaなどのプラグインの脆弱性を突いてインストールされ、ユーザーが
クリックなどの操作をしなくても、MySQL.comのWebサイトを見ただけで知らないうちに感染する
恐れがある。
516NAME IS NULL:2011/10/19(水) 19:55:41.16 ID:???
xmappインストールしてmysql起動しようとしても
開始押したらすぐに停止する
解決策わかる人いる?
517NAME IS NULL:2011/10/19(水) 22:08:50.72 ID:???
>>516
なんかのエラーで停止してるんじゃない
ログみてみたら
518NAME IS NULL:2012/01/13(金) 12:36:14.31 ID:???
x86の64-bit版と32-bit版とは、
・実行速度
・使用メモリ量
において、どのくらい違うものでしょうか。
なにか資料へのポインタでも頂けたらと思います。
なおOSはDebian Linuxです。

期待する解答例
・経験則で言うと、メモリ消費量は64-bit版の方が20%多い
・intのサイズが異なるので、intのカラムが多いとメモリ消費量が多くなるが、charだと変わらない
・実行速度は64bit版のほうが速いはずだが、ぶっちゃけSQLのチューニングのほうがよっぽど大事だから気にすることはない
519NAME IS NULL:2012/01/14(土) 11:39:06.20 ID:???
>>518
バッファ上はMySQLのデータ型の分しか消費しないから、32bit、64bitで変わらない。
ていうかintはx86_64でも4バイトじゃね。

実行速度はCPUによる。
例えばCore 2のときは64bit動作でMacro-OPs Fusionという機能が効かなくて
あまり速くなかった。Nehalem以降は64bitの方が速いと思う。

実際の性能はデータをメモリ上にどれだけキャッシュするかが勝負なので、
32bitだと仮想メモリ4GBの壁があるので64bitの方が断然有利。
520NAME IS NULL:2012/01/14(土) 17:48:37.16 ID:???
参考になります。
>>519
>バッファ上はMySQLのデータ型の分しか消費しないから、32bit、64bitで変わらない。
なるほど。メモリ消費量に違いはない(あったとしてもわずか)ということですか。

>実行速度はCPUによる。
>例えばCore 2のときは64bit動作でMacro-OPs Fusionという機能が効かなくて
>あまり速くなかった。Nehalem以降は64bitの方が速いと思う。
それは知りませんでした。
x86_64のほうがレジスタ数が増えた分、速いと思ったのですが、必ずしもそうではないんですね。
Nehalemというのは、Core2DuoではなくCore i3とかi5とかいうやつですね。
じゃあサーバのCPUの種類を調べてみる必要がありますね。

>実際の性能はデータをメモリ上にどれだけキャッシュするかが勝負なので、
>32bitだと仮想メモリ4GBの壁があるので64bitの方が断然有利。
使ってるのが安いVPSなので、そこまでメモリを利用できません。

たいへん参考になりました。ありがとうございました。
521NAME IS NULL:2012/01/28(土) 23:36:15.52 ID:cD3RmStW
Strutsで郵便番号検索をするしくみを作っています。
JavaからMySQLへアクセスし郵便番号検索する仕組みになっているのですが、
まれに「NullPointerException」がでて原因が追究できず困っています。
郵便番号を入力するテキストボックスがあり、
横にある「郵便番号検索」のボタンをクリックすると
入力された郵便番号に相当する住所が住所のテキストボックスに表示されます。
どなたか何か原因として考えられること教えていただけませんか?
(環境)
Java Version: 1.6
MySQL: 5.0.77
OS: CentOS 5.3
522NAME IS NULL:2012/01/29(日) 00:05:32.07 ID:???
ソースも見せずに「原因として考えられること」なんて聞いたら
百個や二百個じゃ済まないだろ
523NAME IS NULL:2012/01/29(日) 01:35:35.35 ID:???
>>521
まずは例外発生時のスタックダンプを晒してみろ。
524NAME IS NULL:2012/01/29(日) 07:10:51.77 ID:???
ぬっ、、、、ぬるぽぉ!
525NAME IS NULL:2012/01/29(日) 08:38:25.93 ID:???
■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ
526NAME IS NULL:2012/01/31(火) 18:27:59.13 ID:MV1gW/hE
windowsで使えるGUIな管理ツールって何がいい?

テーブルの中身をエクセルみたいに表示してちょこっと編集
・・・とかがさっさとできたらいいんだけど。
phpmyadminじゃできないですよね? できたらwebベースじゃないほうがいいです。
527NAME IS NULL:2012/01/31(火) 18:54:26.50 ID:???
Navicat Lite
今フリーバージョンは出てないけどw
528NAME IS NULL:2012/01/31(火) 19:00:03.14 ID:???
>>527
あー、今、それ見てました!
Lite無くなってる(´・ω・`)ショボーン


有料だけどaccessでODBC接続とかが無難なんでしょうか?
529527:2012/01/31(火) 19:16:16.91 ID:???
>>528
使ったことは無いけど

Workbenchとか?後は知らん
530NAME IS NULL:2012/01/31(火) 20:08:13.57 ID:???
>>526
workbench
531NAME IS NULL:2012/01/31(火) 20:16:21.46 ID:???
おお、いいかんじっすね。
商用じゃないほう(Community エディション?)はフリーなんでしょうか?
個人事業で使う場合は商用?
532NAME IS NULL:2012/01/31(火) 21:36:39.48 ID:???
Community EditionはGPL。
機能が足りててサポートいらないならそのまま仕事で使って問題ないよ。
533NAME IS NULL:2012/01/31(火) 22:56:41.84 ID:???
そうなのですね! あざーっす。
534NAME IS NULL:2012/01/31(火) 23:01:57.21 ID:???
「MySQLってお金払わなきゃ使っちゃいけないの?」って質問するやつは、
確実にお金を払う必要などない人間。

金を払わにゃならんようなやつは、聞かずともわかるようになっている。
535NAME IS NULL:2012/02/01(水) 20:08:41.95 ID:???
MySQLのライセンスが複雑すぎるんだよな
536NAME IS NULL:2012/02/01(水) 21:43:36.18 ID:???
どこが複雑なんだか。
537NAME IS NULL:2012/02/02(木) 01:21:23.68 ID:???
>>535
あんたのようなことを言うやつも金を払う必要はない。
もちろん、サポートしてほしいなら話は別だ。
538NAME IS NULL:2012/02/02(木) 06:46:42.24 ID:???
>>537
必要がない。じゃなくて黙認されている、じゃねぇの?
ttp://www.softagency.co.jp/products/mysql/license/
の上から四行目の選択肢あたりは社内システムでも問題になりうると思うが。
539NAME IS NULL:2012/02/02(木) 07:31:28.46 ID:???
社内システムなら2行目でNOだろ。4行目まで行かない。
540NAME IS NULL:2012/02/02(木) 07:37:49.43 ID:???
請負でシステム構築する場合は?
541NAME IS NULL:2012/02/02(木) 08:25:57.06 ID:???
そこはGPLそのものの話になるが、こんな解説が。
http://d.hatena.ne.jp/uehaj/20100710/1278772393
542NAME IS NULL:2012/02/06(月) 14:48:21.81 ID:y1W2x5+Z
543NAME IS NULL:2012/02/06(月) 23:53:18.92 ID:???
WoWクラブいきてぇ〜
544NAME IS NULL:2012/02/18(土) 16:31:44.22 ID:???
ねえ教えて

インストール後の設定ウィザードでサービスの起動がうまくいきません

応答なしになりますなぜだ
545NAME IS NULL:2012/02/18(土) 21:38:13.88 ID:???
Windowsはムチャムチャ遅いからおすすめしない
546NAME IS NULL:2012/03/08(木) 17:40:57.42 ID:???
conn, cur の関係ってどんな関係なんでしょう?
また、conn から curを作成できる理由って何でしょうか?
547NAME IS NULL:2012/07/13(金) 21:58:38.06 ID:???
( ´Д`)y━・~~
548NAME IS NULL:2013/01/05(土) 10:55:30.04 ID:T10q5cOC
犯罪者個人に対して告訴状を違法派遣・偽装請負・偽装出向・多重派遣の被害者が作成(刑事告訴は無料) or 司法書士が代筆(料金は5万円ぐらい)※コピペ歓迎

告訴状を【検察の直告班】に郵便局の内容証明付で送付(疎明資料・証拠にはICレコーダー、スマホによる録音が適しています)

審査 → 不受理 → 告訴状再提出または刑法 第193条で訴えを起こす

受理 → 告訴事実を認め示談交渉(↓) →示談成立 → 法廷相場50〜100万円の示談金 ※示談拒否が良い
↓                ↓
事案化← 前科あり ←示談不成立(↓)→ 示談外交渉→ 犯罪者の年収半額×最大懲役年数の和解金支払い※推奨
↓                ↓
↓               起訴 →公判 → 罰金刑=前科(起訴事実を認めてるため)→追討ち民事訴訟
↓                    
審査 → 起訴(強制捜査・留置場)→ 公判 → 懲役刑などの厳罰(反省が認められないため)→追討ち民事訴訟

不起訴、起訴猶予

検察審査会法第30条(検察審査会へ申し立て)→ 起訴 → 起訴後は同上
刑法 第193条(公務員職権濫用)で検察事務官を刑事告訴 → 同上

◎告訴→告訴受理→示談交渉→厳罰を求め示談不成立→示談外交渉→和解金支払い・和解契約(公正証書・即決和解で秘密保持契約)
◎偽装請負・出向・違法派遣事件では派遣・出向先両方の代表者、役員、現場責任者に告訴できます。
前科がついた犯罪者が法人の代表であれば公的な入札からの排除、取引先や顧客との契約解除など社会的制裁・批判に晒されることから辞職または解任が妥当、役員・社員であれば懲戒を想定。
◎事業者内部の加害関係者による刑事告発(刑事訴訟法239条1項)も可能です。
加害者本人、管理間接部門の社員が刑事告発に踏み切る場合も和解金による解決が妥当です。

注意:告訴が受理されない理由
●3年間(※)の時効が過ぎたもの ※違法派遣
●同一事実について過去に告訴取消しがあったもの
●関連する民事訴訟を有利に導く目的の場合
●証拠が希薄なもの ※被害者が契約時に違法派遣・偽装請負・多重派遣と知っていても刑事告訴は有効です。
549NAME IS NULL:2013/01/15(火) 14:16:53.35 ID:lJw9FDu5
パワハラ犯罪にたいする刑事罰(※本投稿のコピペ歓迎です)
人事原則
1 現行法では、社員が仕事を怠けたり、能力不足、就業規則違反、目標を達成できなくても解雇をしたり叱責することは違法です。どんな駄目社員、嘘つき社員、怠け者も定年まで解雇が違法なのが現行の正社員制度です。
2 パワハラは社風にあわない社員、成績の振るわない社員を自主退職に追い込む言わば人事的措置として用いられることが多い。
※違法な解雇の和解金相場は、労働審判で3ヶ月、通常裁判で1年以上の報酬、さらに社員が和解を拒めば復職が可能です。弁護士への着手金は12〜15万円+20%の和解金、和解拒否なら20〜50万円程度。

人事部・ホットライン・御用組合へ直訴
メリット: 一時的緩和や人事異動
デメリット: 役員へ情報筒抜け、危険分子の烙印(情報漏洩がホットライン直訴者に多いのは人事部の常識)、パワハラ放置で自主退職に追い込まれる

民事訴訟・調停・労働審判
メリット: 損害賠償
デメリット: 裁判費用、解雇措置、民事不介入で刑事事案化を阻止、長期係争、パワハラ上司の継続雇用

刑事告訴
メリット: 1パワハラ上司の解雇・懲戒、または2多額の和解金、1と2どちらでも被害者の雇用は維持
デメリット: 人事異動(出世コースから外れる)
◎録音は一方の当事者が取る限り合法です。※加害者に録音の同意を求める必要はありません。
◎告訴受理後の和解金は加害者の資産・収入に応じて変えてください。犯罪者の昨年の年収の半額程度×最大懲役年数が妥当です。
◎パワハラの被害についての告訴は1侮辱罪2脅迫罪3強要罪4威力業務妨害罪5傷害罪の順序で行ってください。警察・検察の協力(犯罪者の自宅・職場の強制捜査、留置所勾留)により罪の立証が楽になります。
◎刑事告訴した社員を解雇したり処遇面で著しい差別を行うことはないでしょうが、出世や管理職以上の昇進の可能性はあきらめるべきでしょう。
◎刑事告訴は民事訴訟と違って裁判による被害者への2次被害にありません。検察庁が被害者に代わって訴えをおこすので、無料で、時間と手間も告訴状をかくことと音声録音を残すだけです。
◎和解契約(公正証書・即決和解)では告訴した事実は秘匿事項となります。犯罪者が秘密保持契約を違反した場合の損害賠償金は、最低5000万円〜にしましょう。
550NAME IS NULL:2013/05/01(水) 10:37:12.28 ID:???
社内システムを Core2Duo-E8400(2GB)で運用していましたが、
機器が故障したため、Atom-D2700(3GB)に入れ替えをしました。予算があまり無かったのです。

・クライアントは10台程度。
・innodbのみ使用。
・一覧表示を多用している。ページング処理をする為、countでレコード総数を取得している。
・my.cnfはそのまま流用している。

切替直後から、「一覧表の表示が遅い」というクレームが後を絶ちません。
以前は瞬時にページの切替ができましたが、切替後は数秒から30秒程度の
待ち時間が発生しています。

利用者からは、物凄い剣幕で「遅せーんだよ、なんとかしろ!」といわれていますが、
「慣れればいいだろ」とも言えず、解決策を模索中です。

CPUの処理性能が、これ程影響してくるとは思いませんでした。
551NAME IS NULL:2013/05/04(土) 14:37:48.97 ID:???
SQL文を見直す
インデックスを工夫する

この程度しか思いつかないw
552NAME IS NULL:2013/05/09(木) 17:41:44.28 ID:???
>>550
countが劇遅で、だけど多用せざるを得ない要件なら、countだけを保存するテーブルを作って、
insert/deleteトリガーでcountをプラマイするようにして、それをページ処理するときに参照する
仕組みにすれば?
553550:2013/05/10(金) 13:41:04.79 ID:???
>551,552
ご回答ありがとうございます。

ご意見を参考に、色々と試して見ます。
554NAME IS NULL:2013/11/20(水) 08:56:22.86 ID:???
mysqlでCPU下げるのは自殺行為
555NAME IS NULL
MySQL 5.5を使ってますです。

phpMyAdminを使ってデータベースのエクスポートしたのですが、外部キー制約がエクスポートできません。
外部キー制約も含めてエクスポートするにはどうしたらいいですか?