5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

MySQL 総合 Part20

1 :NAME IS NULL:2011/06/11(土) 11:51:29.94 ID:???
オラクル社によるオープンソースのRDBMS、MySQLの総合スレです。

MySQL 総合 Part19
http://hibari.2ch.net/test/read.cgi/db/1295436346/

MySQL Developer Zone http://dev.mysql.com/
MySQL 5.5 マニュアル (E) http://dev.mysql.com/doc/refman/5.5/en/index.html
MySQL 5.1 マニュアル (J) http://dev.mysql.com/doc/refman/5.1/ja/index.html

日本MySQLユーザ会(MyNA) http://www.mysql.gr.jp/
ML過去ログ http://www.mysql.gr.jp/mysqlml/mysql/

ここで質問をする前に、MyNAでのFAQと心得の条を最初に確認しましょう。
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
http://www.mysql.gr.jp/frame/modules/bwiki/index.php?%BB%A8%B3%D8%2F%BF%B4%C6%C0

2 : 忍法帖【Lv=10,xxxPT】 :2011/06/11(土) 11:54:06.41 ID:???
誰も立てないので立てといた。

3 :NAME IS NULL:2011/06/12(日) 00:02:34.50 ID:???
>>1

4 :NAME IS NULL:2011/06/13(月) 02:42:38.72 ID:KX/3V6bW
どうぞ

5 :NAME IS NULL:2011/06/15(水) 17:20:46.04 ID:???
mysql ver5.0.77を使用しています

utf-8で書かれたperlプログラムからアクセスし、文字データを登録していますが、なぜか文字化けします。
データベースのデフォルトの設定もutf-8なのになぜこんなことが起きるのでしょうか?

6 :NAME IS NULL:2011/06/15(水) 19:39:29.55 ID:???
そのPerlプログラムをちょっと改造して
show variables like 'char%';
の結果を出してみるとどうか

7 :NAME IS NULL:2011/06/15(水) 19:55:54.11 ID:???
$sth=$dbh->prepare("show variables like 'char%'");
$sth->execute;
@a=$sth->fetchrow_array;
for $b(@a){
print "$b","\n";
}
こんな感じのものを付け足して見ましたが
character_set_client
utf8
となるだけでした。
ここに問題は無いですよね?
あとテーブルの文字コードも調べましたが
utf8_general_ci でした

8 :NAME IS NULL:2011/06/15(水) 19:57:52.50 ID:???
もしかしてDBIモジュールを使ってmysqlに日本語を入力する場合は何か特別なことをしなければならないのでしょうか?


9 :NAME IS NULL:2011/06/15(水) 20:23:39.63 ID:???
自己解決しました。
use utf8; でいけました。

>>6様、レスありがとうございました。

10 :NAME IS NULL:2011/06/15(水) 23:30:42.74 ID:???
>>6
もしかして、優等生だった?

11 :NAME IS NULL:2011/06/16(木) 00:38:28.69 ID:???
優等生は>>11だな

12 :NAME IS NULL:2011/06/19(日) 10:48:35.25 ID:???
mysqldump で -d つけてるとき
CREATE TABLEのお尻に AUTO_INCREMENT=517 とか
つけないでほしいんだけど、どうしたらいい?

13 :NAME IS NULL:2011/06/19(日) 13:23:13.71 ID:???
後からテキストエディタで除去すれば?

14 :NAME IS NULL:2011/06/19(日) 13:56:03.42 ID:???
セッションAがテーブルTのレコードをロックして、
セッションBが同じレコードをロックしようとしたときに、
Aのロック解放待ちでブロックされずに、エラーで
すぐに返るようにしたい。
(ファイルやソケットのノンブロッキングのようなもの)
何かいい方法ない?

15 :NAME IS NULL:2011/06/19(日) 15:26:41.62 ID:???
自前でロックファイルを用意するなどロック方法を独自にする

16 :NAME IS NULL:2011/06/19(日) 21:37:18.41 ID:???
>>14
OracleでいうSELECT FOR UPDATE NOWAITだけど、MySQLにはないね。
MySQL 5.1+InnoDB Plugin、MySQL 5.5であれば

mysql> SET SESSION innodb_lock_wait_timeout = 1;

で1秒までなら縮めることができる。

17 :NAME IS NULL:2011/06/19(日) 22:06:34.78 ID:???
>>12
どうやらバグらしい。
http://bugs.mysql.com/bug.php?id=20786

・sedで消す
sed -e 's/ AUTO_INCREMENT=[0-9]\+//'

・mysqldumpのオプションで消す(他にもいろいろ消えるので注意)
mysqldump --no-data --compatible=no_table_options


18 :NAME IS NULL:2011/06/19(日) 22:33:19.63 ID:???
>>17
にゃほど。ありがとう。しかたないでsedで消すかね。

19 :NAME IS NULL:2011/06/20(月) 01:47:27.76 ID:???
しかたないでな。

20 :NAME IS NULL:2011/06/20(月) 16:26:51.14 ID:???
すみません。
MySQLに最初からあったphpmyadmin(?)というdbをうっかり削除してしまった所、

SELECT `db_name` , `comment`
FROM `phpmyadmin`.`pma_column_info`
WHERE `column_name` = '(db_comment)'

MySQLのメッセージ: ドキュメント
#1146 - Table 'phpmyadmin.pma_column_info' doesn't exist

と表示されて使用できなくなってしまいました。
どうすれば元に戻せますか?

21 :NAME IS NULL:2011/06/20(月) 16:37:58.24 ID:???
phpmyadminを再インストールすればいいんじゃないかな?
ってどこで出たエラーなの?

22 :NAME IS NULL:2011/06/20(月) 16:55:04.97 ID:???
GUIで他のdbにCSVデータをインポートしようとしていた時に
このdb最初からあって邪魔だな、と思ってつい削除してしまいました。

http://2ch-ita.net/upfiles/file9471.jpg

どうやら設定ファイルだったらしく
上の写真のようになり、操作不能になりました。
ちなみにローカルからPHPでSQLを発行すれば動かせました。
Xamppなのですが、個別にMySQLだけ再インストールできるのでしょうか

23 :NAME IS NULL:2011/06/20(月) 17:02:28.08 ID:???
phpmyadminの下にsetup/index.phpとかない?
インストール完了したら消すかもだが。

24 :NAME IS NULL:2011/06/20(月) 17:25:05.88 ID:???
バックアップが取れたのでXamppごと再インストールすることにしました。

25 :NAME IS NULL:2011/06/20(月) 23:00:07.26 ID:???
>>24
phpmyadminはMySQLの一部じゃない。
意味もわからずXAMPPなど使うからそういうことになる。

26 :NAME IS NULL:2011/06/23(木) 11:22:23.01 ID:FKJ1DUmC
アプリ作成のため osx( 10.6.7 ) にインストールした。開発環境はxcode。

dyld: Library not loaded: libmysqlclient.18.dylib

と言われてアプリが起動しません。
どうすりゃ良いのよ。たすけて〜。

27 :NAME IS NULL:2011/06/23(木) 12:04:40.46 ID:???
>>26
DYLD_LIBRARY_PATH に設定すれば行けないか?

28 :NAME IS NULL:2011/06/23(木) 12:36:16.78 ID:???
/ect/profile と ~/.bash_profile

に書き足したけどいかないです。

29 :NAME IS NULL:2011/06/23(木) 12:39:37.85 ID:???
いかないだって〜
いやらしい〜〜

30 :NAME IS NULL:2011/06/23(木) 12:49:02.56 ID:???
>>29 童貞は静かにしてろ。

/ect/profile は試しにやってみただけです。

31 :NAME IS NULL:2011/06/23(木) 13:08:58.80 ID:???
童貞だって〜
いやらしい〜〜

32 :NAME IS NULL:2011/06/23(木) 13:33:49.87 ID:???
いや、、、まずはexportでその場で設定するだろ

33 :NAME IS NULL:2011/06/23(木) 14:01:37.45 ID:???
export でやりましたがライブラリロードできなかったです。

DYLD_LIBRARY_PATH=/usr/local/mysql/lib

34 :NAME IS NULL:2011/06/23(木) 14:41:05.69 ID:???
>>31 童貞ニートは黙ってろ。

35 :NAME IS NULL:2011/06/23(木) 14:59:09.44 ID:???
osx と mysql 爆発しろ。

36 :NAME IS NULL:2011/06/23(木) 15:10:19.34 ID:???
osxでアプリ作れないのかよ。

37 :NAME IS NULL:2011/06/23(木) 15:22:27.60 ID:???
osxだって〜
いやらしい〜〜

38 :NAME IS NULL:2011/06/29(水) 04:07:39.21 ID:???
float を、(例えば)小数点以下第3位までで比較したい場合、
TRUNCATE(data1,3)=TRUNCATE(data2,3) とやっているのですが、
もっとスマートで早い方法はないでしょうか。
1000倍して int にすると言う手もあるとはおもうのですが、
むしろ、それを内部でやってくれる、小数点3位までの型とかあれば良いのですが。

39 :NAME IS NULL:2011/06/29(水) 06:30:48.68 ID:???
cast(c1 as decimal(10, 3))ってやったらできたけど四捨五入になった。
でもfloatの比較って、本来abs(data1 - data2) < 0.001とかやるんじゃないの
http://www.kouno.jp/home/c_faq/c14.html#5

40 :NAME IS NULL:2011/06/29(水) 10:19:25.56 ID:???
mysql-5.5.13 のソースをダウンロードして、
MySQL5.1リファレンスマニュアルをみながらインストールしはじめたが
うまくいかないのでハマってしまっているので
英文のMySQL5.5ReferenceManualをみるとインストールのしかたが変わっていてちがうじゃねぇか。インストール後の処理も違うし。
はやく日本語のマニュアルを出してほしい。


41 :NAME IS NULL:2011/06/29(水) 20:36:50.41 ID:???
現在mysql-5.5をつかっていますがrubyのdbiでは使えず、mysql5.0なら使えるみたいで
5.0が必要になったのですが、ダウングレードはどうしたらよいでしょうか?
ホームページをみても5.5しか見つけることができませんでした。

42 :NAME IS NULL:2011/06/30(木) 12:54:12.59 ID:???
MySQLデーモンを起動してから、現在までのトータル接続回数とか、
トータルクエリー数みたいのが見れたような気がするのですが、
どのようなSQLあるいはコマンドをうてば見れるんでしたっけ?
たしかコマンドラインからやったような気はします。

43 :NAME IS NULL:2011/06/30(木) 16:11:43.45 ID:???
手元にないので、曖昧な記憶で申し訳ないが show variables とか show global status 辺りでみれると思う。
mysqldminでも出来ると思うが必要なら調べてみてくれ。
information_schema でもみれたかどうかは忘れた。

44 :43:2011/06/30(木) 17:33:10.68 ID:???
環境を触れたので (5.1.45-log)
= queries =
http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html#statvar_Queries
http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html#statvar_Questions
* mysql command
> show global status like 'queries';
> show global status like 'questions';
* informaiton_schema
> select * from information_schema.global_status where variable_name like 'queries';
> select * from information_schema.global_status where variable_name like 'questions';
* msyqladmin
$ mysqladmin status

= Connections =
http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html#statvar_Connections
* mysql command
> show global status like 'Connections';
* informaiton_schema
> select * from information_schema.global_status where variable_name like 'connections';
* mysqladmin
よくわからない


45 :NAME IS NULL:2011/07/01(金) 13:39:49.26 ID:???
MySQL使い始めたんですが
レコードを登録→登録したものを表示する場合
セキュリティ対策としてはstr_replaceで ” ’ < > \r\n \n \rを変換するぐらいでいいのでしょうか?
MySQLの場合『コレに注意しろ!』ってのがあると怖いのですが

46 :NAME IS NULL:2011/07/01(金) 14:15:10.92 ID:???
データ投入はプリペアードステートなんたら
なるべく素の状態で格納

データ表示は好きに
HTMLなら色々エスケープ
CSVならクォートとか改行をエスケープ
ただのテキストなら、そのままとか

47 :NAME IS NULL:2011/07/01(金) 19:50:00.07 ID:???
んなるほど、保存する時はあんま気にしなくていいのね
ありがっちぇ

48 :NAME IS NULL:2011/07/01(金) 21:17:03.02 ID:???
エスケープしとけ、ってことだ。それがすべて。
おそらくPHPだろ。
mysql_real_escape_string使っとけ。

49 :NAME IS NULL:2011/07/01(金) 21:23:14.95 ID:???
ありがとうございます
PHPです、言い忘れてました

MySQLに入れるだけならmysql_real_escape_stringで大丈夫そうですね
引き出してHTMLに表示する時色々エスケープするようにします

50 :NAME IS NULL:2011/07/01(金) 23:28:45.74 ID:???
すいませんmysql serverをソースコンパイルでインストールしようと思ったのですが
どこからDLすればいいのでしょうか?
本家を見てもwindwos用やmysql clusterや聞きなれないものばかりです・・
別名に変わってしまったりしたのでしょうか?

51 :NAME IS NULL:2011/07/01(金) 23:53:22.43 ID:???
あ、PHPか
PDO使っとけ

52 :NAME IS NULL:2011/07/01(金) 23:53:42.30 ID:???
どこで聞けばいいのかわからなかったのでお願いします
複合一意キーや外部キーなどの制約名の命名規則みたいのありますか?
なんてつけたらいいのかわからなくていつもつけてません
ちなみにつけたらなんかおいしいことあるんでしょうか?

53 :NAME IS NULL:2011/07/01(金) 23:57:11.30 ID:???
>>51
それは>>50に対してですか?

54 :NAME IS NULL:2011/07/02(土) 02:17:16.50 ID:GIAVAFe9
Mac→CentOS@さくら
という流れでPHPを通してさくら上のデータベースに書き込もうとしたんですが、
以下のエラーが出て困っています。

PHP Warning: mysql_connect(): Premature end of data (mysqlnd_wireprotocol.c:554) in 〜〜
PHP Warning: mysql_connect(): OK packet 1 bytes shorter than expected in
〜〜
PHP Warning: mysql_connect(): mysqlnd cannot connect to MySQL 4.1+ using
the old insecure authentication. Please use an administration tool to reset your
password with the command SET PASSWORD = PASSWORD('your_existing_password').
This will store a new, and more secure, hash value in mysql.user. If this user is used i
n other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords
flag from your my.cnf file in 〜〜

他のサーバーから書き込むことは出来たので、おそらくMacが原因だとは思うのですが。

55 :NAME IS NULL:2011/07/02(土) 03:57:54.68 ID:???
to reset your
password with the command SET PASSWORD = PASSWORD('your_existing_password')

56 :NAME IS NULL:2011/07/02(土) 05:24:38.30 ID:???
>>50
mysql ソース ダウンロード
あたりでググりなさい

57 :NAME IS NULL:2011/07/02(土) 05:28:48.33 ID:???
>>54
「他のサーバーから」ってどういう意味だい?
他のサーバーのPHPからってこと?
Macってクライアントマシンのこと?
PHPでエラーが出てるのに何でクライアントマシンが原因だと思うの?


58 :NAME IS NULL:2011/07/02(土) 06:35:04.81 ID:???
>>55
ありがとうございます!
さくらサーバー上で試しましたが、結果は変わらずです。


59 :NAME IS NULL:2011/07/02(土) 06:51:42.44 ID:???
>>57
ありがとうございます!
>>54
>「他のサーバーから」ってどういう意味だい?
クライアントMac、さくらサーバー以外のサーバー上でMacと同一PHPファイルを走らせたということです。
>PHPでエラーが出てるのに何でクライアントマシンが原因だと思うの?
別サーバーでは問題なくPHPファイルが走り、さくらサーバーのMySQLに書き込めたので原因はクライアントにあると考えた次第です。

60 :NAME IS NULL:2011/07/02(土) 09:12:10.48 ID:???
>>59
別のサーバーからさくらのMysqlサーバーにアクセスできたってことね。
だったらさくらのウェブサーバーからMysqlにアクセスできないってだけだよね?
クライアント関係ないと思うけど。
つか、「サーバー」「クライアント」の意味を理解してるのかが疑問。

61 :NAME IS NULL:2011/07/02(土) 11:19:27.65 ID:???
すでに登録されてるデータベースから他の人が作ったテーブル構造を見たいのですが、
hogeというテーブルに対してどういう文を実行すればみれますか?
みたい内容は
id int(5) primary key auto_increment,
name varchar(30) collate utf8_unicode_ci not null
みたいなcreateやalterで変更した詳細な構造をみたいです

62 :NAME IS NULL:2011/07/02(土) 11:30:47.27 ID:???
show hoge;

63 :NAME IS NULL:2011/07/02(土) 11:51:23.06 ID:???
show create table hoge;

mysqldumpで出してみてもOK

64 :NAME IS NULL:2011/07/02(土) 12:39:53.65 ID:???
phpで重複チェックするとき
対象となるフィールドでチェックする文字列をselect from〜、whre "チェックする値"で検索をし、
変数$check =にその結果を入れて、変数$checkが存在したら重複という風にやってるのですが
これってやっぱり効率悪いでしょうか?

MySQLの事ですから重複チェックするには何かもっと良い方法があるような気がするのですが

65 :NAME IS NULL:2011/07/02(土) 12:47:15.48 ID:???
ちなみに重複チェックする時ってのは
データを挿入する時挿入する値が既に登録されてるかどうかチェックするって事です

66 :NAME IS NULL:2011/07/02(土) 14:19:15.57 ID:???
>>48
そんなの薦める奴初めて見た

67 :NAME IS NULL:2011/07/02(土) 14:19:55.54 ID:???
okashi.sqlというtableを作るファイルを作りました。
CREATE TABLE okashi ( NO smallint, NAME varchar(50) );

これをMYSQLで実行したいのですが、うまくいきません。
mysql>mysql onigiridb < c:\work\okashi.sql;

と入力しても
EROR:
Unknown command '\:'.
EROR:
Unknown command '\o:'.

となります。
どう解決したらいいでしょうか?

68 :NAME IS NULL:2011/07/02(土) 16:28:54.73 ID:???
show columns from TABLE
show index from TABLE
show create table TABLE

他あるかな

さくらだかのサーバーでファイアーウォールが拒絶してるとか

69 :NAME IS NULL:2011/07/02(土) 18:03:28.35 ID:???
>>66
普通はaddslashesを薦めるところ

70 :NAME IS NULL:2011/07/02(土) 18:06:44.69 ID:???
>>64
distinctじゃだめなの?mysqlに依存しないけど

71 :NAME IS NULL:2011/07/02(土) 18:09:18.35 ID:???
>>65
primary key かunique 指定しろ

72 :NAME IS NULL:2011/07/02(土) 20:10:42.93 ID:???
>>67
こうじゃなくて
mysql>mysql onigiridb < c:\work\okashi.sql;

こう
C:\> mysql onigiridb < c:\work\okashi.sql;

73 :NAME IS NULL:2011/07/02(土) 20:13:18.04 ID:???
>>64
対象カラムに一意キーをつけて、いきなりINSERTする、
エラーがでたらそのときに適切に対処、でもいいと思う

あと元のやり方だと、チェックしてからINSERTするまでの
わずかな間に他の人がINSERTするケースが想定されていない

74 :NAME IS NULL:2011/07/02(土) 21:12:16.86 ID:???
>>73
select の前でロックしておけばいいね

75 :NAME IS NULL:2011/07/02(土) 21:53:12.78 ID:???
SQL慣れしていないんですけど、
ストアドプロシージャ(データベースに対する一連の処理をまとめた手続き)って、
別にプログラム側で実装してもいいですよね?

76 :NAME IS NULL:2011/07/02(土) 22:26:43.93 ID:???
>>75
まぁそうだね。管理しやすさの問題。
プログラム側で一連の処理をクラス化・関数化して持っておくのと効果は同じ。
ただしストアドプロシージャの方が実行速度が速い可能性が高い。

77 :75:2011/07/02(土) 22:40:28.91 ID:???
>>76
レスありがとうございます。
データベースは全くの初心者なんですが、
実務アプリケーションの設計からコーディングまで全部丸投げされて、
もう涙目状態なんですが、
プログラム側で全部処理してやろうぐらいの勢いで作っちゃおうと思います・・・

78 :67:2011/07/02(土) 23:13:03.72 ID:???
>>72
ありがとうございます。ようやく一歩進めた感じですごくうれしいです。

79 :NAME IS NULL:2011/07/03(日) 02:09:41.01 ID:???
トランザクション処理は、1つのテーブルの更新のときは使わないで、
複数にまたがるテーブルの更新のときは使う。
といった感じでいいのでしょうか?
それとも1つのテーブルでもとりあえずやっておくべきでしょうか?
データベースエンジンは全部InnoDBでいいですよね?

80 :NAME IS NULL:2011/07/03(日) 04:39:58.99 ID:???
>>65
unique key (primaryでも可) と insert ... duplicate key updaye

81 :NAME IS NULL:2011/07/03(日) 05:09:29.74 ID:???
>>79
no

82 :NAME IS NULL:2011/07/03(日) 08:57:39.05 ID:???
トランザクションなんて使ったことないよ
使わなくても何でもできるよ

83 :NAME IS NULL:2011/07/03(日) 09:41:03.28 ID:???

  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;;  トランザクションなんて使えなくても
  ヾ;;;ハ    ノ       .::!lリ;;r゙         ロックで代用できる
   `Z;i   〈.,_..,.      ノ;;;;;;;;>
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f     そんなふうに考えていた時期が
   〜''戈ヽ   `二´    r'´:::. `      MySQLにもありました。

84 :NAME IS NULL:2011/07/03(日) 12:24:36.29 ID:???
マイイザムで十分だから。

85 :67:2011/07/03(日) 12:27:50.66 ID:???
以前>>67で質問させていただいたものですが、>>72さんに教えて頂いたやり方に
修正したところ

mysql Ver 14.14 Distrib 5.5.13, for Win32 (x86)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Usage: mysql [OPTIONS] [database]
-?, --help Display this help and exit.
-I, --help Synonym for -?




max-join-size 1000000
secure-auth FALSE
show-warnings FALSE
plugin-dir (No default value)
default-auth (No default value)

と、エラーはでなくなりましたが、かなり長い文が表示され
外部ファイルでテーブルを作るsql文を実行しているのに

MYSQL> show tables;
と入力すると
Emty set

と表示され反映されていませんでした。

ウィンドウズのコマンドプロプントを管理者モードでやってみたりなどしましたが、変わりませんでした。
初歩的な質問で申し訳ありませんが解決方法はありませんでしょうか?


86 :NAME IS NULL:2011/07/03(日) 12:52:59.47 ID:???
>>85
usageが表示されてるよね。 mysql --help と入力したのと一緒。
>>72が書いたのそのままじゃなくて userも指定してみたら?あとケツの;は不要。
C:\> mysql -u (user) -p -D onigiridb < c:\work\okashi.sql

これでうまくいかないなら、mysql にログインしてから下記を試してみ
mysql> use onigiridb
mysql> source c:\work\okashi.sql

87 :67:2011/07/03(日) 13:04:04.23 ID:???
>>86
ありがとうございます。
ユーザー指定して;を抜いたらできました。
mysql> use onigiridb
mysql> source c:\work\okashi.sql
こちらの方でもできました。感謝です。

88 :NAME IS NULL:2011/07/03(日) 13:28:15.59 ID:???
でもトランザクション以外にも外部キーとか使えないし
MyISAMで設計するとテーブル構造としてはあんま綺麗じゃない

89 :NAME IS NULL:2011/07/03(日) 21:49:11.29 ID:???
MyISAMとInnoDBどちらが
しょぼいプログラマーがデッドロックに陥りにくいですか?

90 :NAME IS NULL:2011/07/03(日) 23:41:22.97 ID:???
ショボグラマーだとどっち使ってもデッドロックは避けられない

91 :NAME IS NULL:2011/07/04(月) 00:44:43.80 ID:???
そうなんですか?

> MyISAMではデッドロックにもならないし(テーブル・ロック以外のロック方式がないからデッドロックはおきません)、
> ロック・タイムアウトもおきませんので、プログラム的な工夫は不要です。
> MySQLサーバ側でうまく調整してくれるようです。

> 一方、innoDBでもテーブル・ロックできてしまいますが、デッドロックの自動検出ができないようなので、
> my.cnf(Win版ではmy.ini)に「innodb_lock_wait_timeout」の設定をしておきましょう。
> つまり、innoDBではテーブル・ロックでデッドロックするとタイムアウトまで待ってからエラーが返りますので、
> MySQL利用者自身がエラーコードをチェックして対応することになります。

て書いてるところがあったのでMyISAMなら安心かな?と思ったのですが。

92 :NAME IS NULL:2011/07/04(月) 00:48:13.14 ID:???
それどこ情報よ
少なくともInnoDBについては間違ってる

93 :NAME IS NULL:2011/07/04(月) 03:38:57.75 ID:???
PCつけたまま寝てました。
ttp://tsuttayo.jpn.org/mysql/innodb/
ここです

といっても更新日が2005年だからだいぶ古いですね。

94 :NAME IS NULL:2011/07/04(月) 03:48:29.86 ID:???
>>93
寝るときにPCを付けたままかどうかなんて興味ないから
余計なことを書かなくてよろしい

95 :NAME IS NULL:2011/07/04(月) 03:50:57.56 ID:???
いや返事遅くなった言い訳をしたほうがいいかと
すみませんでした。

96 :NAME IS NULL:2011/07/04(月) 05:11:37.93 ID:???
そうですか。

97 :NAME IS NULL:2011/07/04(月) 06:33:47.66 ID:???
なんだよ、釣りサイトじゃねぇか。

98 :NAME IS NULL:2011/07/04(月) 08:09:13.30 ID:???
釣りサイトって何ですか。

99 :NAME IS NULL:2011/07/04(月) 11:01:06.83 ID:???
http://www.otomiya.com/
こういうとこだろ

100 :NAME IS NULL:2011/07/04(月) 11:02:19.06 ID:???
デッドロックが何なのかも知らないうちから心配してるだけに見えるな

101 :NAME IS NULL:2011/07/04(月) 20:36:15.36 ID:???
プロレスの技か何かですか?

102 :NAME IS NULL:2011/07/05(火) 01:59:14.09 ID:???
プリンセススピニングトゥホールド

103 :NAME IS NULL:2011/07/05(火) 03:49:58.14 ID:Z2clBs1v
テーブルを定義する時に、
default値の無いNOT NULL制約のカラム
を作るのはDB設計として間違っていますか?

書籍やネットの情報を見る限り、
NOT NULL制約をかける場合はdefault値を設定するのが通常のようです。

しかし、アプリケーション側でdefault値を設定したいので
テーブル定義の時点ではNOT NULL制約だけかけて
アプリ側でカラムを追加する処理では必ずdefault値を入れるようにしたいのです。

これは何か問題あるのでしょうか?

104 :NAME IS NULL:2011/07/05(火) 05:41:13.69 ID:???
問題ない

105 :NAME IS NULL:2011/07/05(火) 08:05:41.61 ID:???
別に間違ってはいない。

ただ、そのDBを複数アプリから触るシステムだったりする場合、
DBでデフォ値設定できるならしておいた方が、
今後のシステム保守でのバグ発生率がちょびっと下がるというのはあるかもね。

106 :NAME IS NULL:2011/07/05(火) 09:18:25.11 ID:???
どんなバグが発生するの?
そのバグはdefault値があると本当に発生しないバグなの?

107 :NAME IS NULL:2011/07/05(火) 10:55:30.08 ID:???
バグというか、他のプログラムが別の値をデフォルト値として入れようとしていたらどうする?
プログラム毎にデフォルト値が違うのってややこしくならないか?


108 :NAME IS NULL:2011/07/05(火) 11:30:54.51 ID:???
システム新規作成時:
 全アプリで、デフォルト値設定が同じになっているか。
システム保守において:
 業務的にデフォルト値が変わった時、全アプリ漏れなく設定値修正

こういうのを、手間ゼロで間違い無く出来るんだったらいいけど、そうはいかない。
だからDBという一箇所だけで定められるんだったら、その方が望ましいんよ。

109 :NAME IS NULL:2011/07/05(火) 13:35:11.26 ID:???
アプリで複数のテーブルを結合したSQL文を発行するより
DBでVIEWをつくったほうがよい?

110 :103:2011/07/05(火) 13:43:10.95 ID:???
ご返信ありがとうございます。
複数アプリから使われるということはありえないDBですので、アプリ側でデフォルト値を設定しても問題無いのですね。
というか、複数アプリからDBが使われるというケース自体全く想定していなかったので勉強になりました。

111 :NAME IS NULL:2011/07/05(火) 15:25:07.35 ID:???
DBを複数のプログラムが使うって当たり前の事じゃないのか?
「複数アプリから使われるということはありえない」という方が珍しいとさえ思うけど

112 :103:2011/07/05(火) 16:13:42.31 ID:???
たぶんプログラマとしてのレベルが違いすぎるんだと思いまする。
自分が作ろうとしてるのはSNSとかの単純なWEBサイトです。
WEBアプリという言い方が悪かったかもしれません。

113 :NAME IS NULL:2011/07/05(火) 16:16:33.06 ID:???
プログラムの塊として捉えてるからおかしい
画面単位で考えな
SNSっていったって登録、更新、削除といろいろあるでしょ
ようするに複数画面から使われてる

114 :NAME IS NULL:2011/07/05(火) 17:15:05.46 ID:???
複数画面が使われても統一したDBクラスでアクセスするなら
そのクラスでデフォルト値を設定すれば済むこと。

個人的にはDBのデフォルト値はあんま意味無いと思うけどな。
デフォルト値等の設定・管理をDB側、プログラム側で分かれるのは不便だし、
結局プログラムからDBの値を読み出すときにDBのデフォルト値の設定を信用せず
値のチェックや正規化を行うようにするからな。

115 :NAME IS NULL:2011/07/05(火) 17:50:02.44 ID:???
SNSは単純じゃないですw

116 :NAME IS NULL:2011/07/05(火) 21:48:17.47 ID:???
トランザクション処理を教えてください

テーブルAとBをロック
テーブルAの更新部分を取得
テーブルAを更新
lastInsertIdを調べる
問題なし
テーブルBの更新部分を取得
lastInsertIdを調べる
*問題なし
テーブルAとBをアンロック

もし*のところで問題があったら
Aを更新前に戻して終了といった感じでいいでしょうか?
更新前に戻す処理に問題が発生した場合はどうするんだって感じですが
ロールバック失敗みたいなことはおこるのでしょうか?

ちなみにエンジンはMyISAMです

117 :116:2011/07/05(火) 21:49:10.71 ID:???
すみません抜けてました

>テーブルBの更新部分を取得
この後にテーブルBの更新です

118 :NAME IS NULL:2011/07/05(火) 22:15:26.23 ID:???
そもそも MyIsamはトランザクション使えないけど。
トランザクション使いたいんならInnoDBですよ?

119 :117:2011/07/05(火) 22:23:54.84 ID:???
>>118
トランザクションがエミュレートできると書いてたので
やりようによってはできるのかなぁと

120 :NAME IS NULL:2011/07/05(火) 22:50:47.39 ID:???
MyISAMにロールバック機能はないから
Aを更新前に戻すにはプログラム側で更新前の値を覚えておいて
その値にするようなUPDATE文を実行するわけだけど。
かえってめんどくさくね

121 :NAME IS NULL:2011/07/05(火) 22:59:52.97 ID:???
1桁の0-9を入れる型として正しいのはなんでしょうか?

122 :NAME IS NULL:2011/07/06(水) 00:20:57.24 ID:???
PRIMARYでもFOREIGNでもUNIQUEでもない
ただのKEYという制約がついてるんですが
これはどういうものなんでしょう?
SHOW CREATE TABLEをしたら出てきたのですが
なんでこんなのがついてるのかは自分でも分かりません
KEYだけだと検索ワードが多すぎて調べるのがきついです

123 :NAME IS NULL:2011/07/06(水) 00:28:33.81 ID:???
>>122
制約じゃなくて単なるインデックス、それは。

124 :NAME IS NULL:2011/07/06(水) 00:29:19.83 ID:???
KEYは制約じゃあない。
そもそも、SHOW CREATE TABLEで表示されるのはDDLそのものなんだから、
マニュアル読めば書いてあるだろ。

125 :122:2011/07/06(水) 00:33:00.95 ID:???
>>122だけだと情報がたりなさそうなので中身はこんな感じです

CREATE TABLE `item` (
`item_id` int(11) NOT NULL AUTO_INCREMENT,
`item_name` varchar(100) NOT NULL,
PRIMARY KEY (`item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

CREATE TABLE `item_image` (
`image_id` int(11) NOT NULL AUTO_INCREMENT,
`item_id` int(11) NOT NULL,
`image_path` varchar(255) NOT NULL,
PRIMARY KEY (`image_id`);
UNIQUE KEY `image_path` (`image_path`),
KEY `item_id` (`item_id`),
CONSTRAINT `item_image_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `item` (`item_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8

126 :122:2011/07/06(水) 00:34:04.94 ID:???
すみませんリロードしてませんでした
インデックスだったんですね
どうもありがとうございます
DDLは何のことか分からないので調べてきます

127 :NAME IS NULL:2011/07/06(水) 08:10:31.39 ID:???
>>121
正解などない。好きにしろ。

128 :NAME IS NULL:2011/07/06(水) 13:32:30.55 ID:???
テーブルに指定する
DEFAULT CHARACTER SET utf8

DEFAULT CHARSET=utf8
って何が違うんですか?

129 :NAME IS NULL:2011/07/06(水) 22:16:10.26 ID:???
質問です。

create table tblA(
clm1,
clm2,
clm3
)
create view vB AS
SELECT
clmElse AS clm3,
clmElse AS clm2,
clmElse AS clm1
FROM tblElse

この定義の時、カラム名を指定しなくて済むお手軽SQL文であるところの INSERT INTO tblA SELECT * FROM tblB を、
登録されるレコードの登録元と登録先のカラム名が一致するようにしたい。
tblAはしょっちゅう定義が変更されるので、カラム名を指定するINSERTを書くのは避けたい。
tblAに変更がある毎にビューを再定義するのは、保守担当者が再定義することを忘れるリスクが高いので最後の手段にしたい。

何かいい方法はありますか?

130 :NAME IS NULL:2011/07/06(水) 22:23:23.99 ID:???
× INSERT INTO tblA SELECT * FROM tblB
○ INSERT INTO tblA SELECT * FROM vB

誤字訂正

131 :NAME IS NULL:2011/07/06(水) 22:41:13.02 ID:???
tblAのメンテ担当者とvBの担当者とアプリの担当者はそんなに仲が悪いのか?
飲み会企画するとか、あるいはまず休憩所で声をかけてみてどんなことに興味が
あるか聞き出してみるとか?

132 :NAME IS NULL:2011/07/06(水) 23:31:09.64 ID:???
DDLってなに?

133 :NAME IS NULL:2011/07/06(水) 23:43:06.82 ID:???
だん だん Lサイズ

134 :NAME IS NULL:2011/07/06(水) 23:58:21.68 ID:???
どん どん Lサイズ

135 :NAME IS NULL:2011/07/07(木) 01:05:43.66 ID:???
どき どき Lサイズ

136 :NAME IS NULL:2011/07/07(木) 22:17:23.70 ID:???
↑この流れ

2chあるある


137 :NAME IS NULL:2011/07/08(金) 01:10:31.21 ID:???
↑この流れ

2chなしなし

138 :NAME IS NULL:2011/07/08(金) 06:54:24.02 ID:???
↑この流れ

2chしこしこ

139 :NAME IS NULL:2011/07/08(金) 10:46:14.36 ID:???
↑この流れ

2chもみもみ

140 :NAME IS NULL:2011/07/08(金) 14:49:26.52 ID:???
auto_incrementは操作しない限り1、2、3、〜という感じに増えていきますが
0、1、2、3、〜とすることは出来ないんでしょうか?

141 :NAME IS NULL:2011/07/08(金) 15:06:31.45 ID:???
>操作しない限り

どういうこと?

142 :NAME IS NULL:2011/07/08(金) 15:13:47.63 ID:???
すみません、phpmyadmin使ってます
主キーにauto_incrementを使ってるのですが
それを1〜ではなく0〜にしたいと思ってまして

143 :43:2011/07/08(金) 15:32:23.12 ID:???
>>128

MySQL :: MySQL 5.5 Reference Manual :: 9.1.3 Specifying Character Sets and Collations
http://dev.mysql.com/doc/refman/5.5/en/charset-syntax.html

CHARSET can be used as a synonym for CHARACTER SET.

144 :NAME IS NULL:2011/07/08(金) 16:30:30.06 ID:???
>>142
無理
indexってそのまんまindexだからindex以下にはできない

145 :NAME IS NULL:2011/07/08(金) 16:35:15.12 ID:???
>>142
auto_increment_offset などを見てると 0 は設定できない気がする...

0 からスタートさせるのではないのだが、
set sql_mode="NO_AUTO_VALUE_ON_ZERO" してから
insert すれば 0 を入れることも可能。
# トラブルの原因になりそうだから嫌だけど
http://dev.mysql.com/doc/refman/5.1/ja/server-sql-mode.html#id378544


146 :NAME IS NULL:2011/07/08(金) 16:36:41.21 ID:???
>>144>>145
なるほどー、やっぱり無理はしないほうがいいみたいですね
親切にどうもありがとうございます

147 :NAME IS NULL:2011/07/08(金) 22:28:25.94 ID:???
文字化けとかじゃなくて保存した全角文字を表示すると
どーしても全角の部分が???になっちゃうんですが
考えられる原因とかあるでしょうか?
自分で思い当たるのは大体やったんですが・・・。

148 :NAME IS NULL:2011/07/08(金) 22:53:29.64 ID:???
表示ってのは
MySQLコンソールとphpで表示する場合です
phpmyadminで見るとちゃんと全角で「日本人」となるのですが
他だと???に
ちなみにレコードの挿入はphpmyadminで行いました

149 :NAME IS NULL:2011/07/09(土) 00:37:51.24 ID:???
OS,MySQLのバージョン、文字コードの種類、設定情報一切の情報を隠してですか

150 :NAME IS NULL:2011/07/09(土) 06:09:53.51 ID:???
>自分で思い当たるのは大体やったんですが

何やったのかくらい書けよクズが

151 :NAME IS NULL:2011/07/09(土) 06:12:48.79 ID:???
クズは無いだろ、クズは

152 :NAME IS NULL:2011/07/09(土) 06:38:23.79 ID:???
>>147-148見てみろよ
日本語もまともに使えないような奴はクズだろうが

153 :NAME IS NULL:2011/07/09(土) 06:42:50.88 ID:???
まぁ落ち着けよ

154 :NAME IS NULL:2011/07/09(土) 08:20:13.97 ID:???
何が彼をそこまで駆り立てるのだろうか

155 :NAME IS NULL:2011/07/09(土) 09:49:45.95 ID:???
屑は放置で

156 :NAME IS NULL:2011/07/09(土) 10:13:31.03 ID:???
肩は放置で?

157 :NAME IS NULL:2011/07/10(日) 15:10:28.14 ID:???
>>142
auto increment カラムに入る値が気になるときは、
データベースの設計ミスをしている可能性が70%ぐらいある。
ソースは俺。

158 :NAME IS NULL:2011/07/10(日) 15:27:16.23 ID:???
1〜の場合
データが0件の時、現在値が0、追加されるたびに+1される

0〜の場合
データが0件の場合、現在値はnull、最初の一回だけ0をセット

内部実装の話とはいえ、こんなやりかたしたくないよな。

159 :NAME IS NULL:2011/07/10(日) 15:58:57.23 ID:???
無理はしないほうがいいからな、特にDBだと
PHPとかJavascriptで結構無理やりなソースコード書いたりはするけど
SQLだとバグの元になるから無理矢理な事はしないようにしてる

160 :NAME IS NULL:2011/07/10(日) 16:12:39.75 ID:???
>>159
根拠のねぇ適当なこと言ってんじゃねぇよクズがw

161 :NAME IS NULL:2011/07/10(日) 16:16:14.75 ID:???
なんでそうなるw

162 :NAME IS NULL:2011/07/10(日) 16:22:39.45 ID:???
>>160
落ち着けよクズ男爵

163 :NAME IS NULL:2011/07/10(日) 21:22:21.07 ID:???
もうプログラム側でselect時に+1しちまえよ

164 :NAME IS NULL:2011/07/11(月) 00:00:50.83 ID:???
りれーしょなるDBなんてどうせあと5年も持たないんだから適当にやってればいいよ

165 :NAME IS NULL:2011/07/11(月) 05:33:21.01 ID:???
5年後はなにがとってかわってるのですか

166 :NAME IS NULL:2011/07/11(月) 06:05:24.46 ID:???
>>164
一番使い勝手が良いから
最後まで残るよwww

167 :NAME IS NULL:2011/07/11(月) 08:40:17.94 ID:???
今はカード型データベースが主流

168 :NAME IS NULL:2011/07/11(月) 17:10:59.48 ID:???
ドキュメント型だな

169 :NAME IS NULL:2011/07/11(月) 17:41:45.12 ID:???
テキストファイルが主流

170 :NAME IS NULL:2011/07/11(月) 19:02:13.47 ID:???
XMLで問題ない

171 :NAME IS NULL:2011/07/11(月) 19:31:17.38 ID:???
壁画が最高

172 :NAME IS NULL:2011/07/11(月) 20:49:55.52 ID:???
FULLTEXTのカラムに対して、MATCH〜AGINSTのSELECT文を発行していますが、英文字ならヒットするのですが、日本語は何もヒットしません。これは仕様ですか?どのような対処法がありますか。

173 :NAME IS NULL:2011/07/11(月) 20:54:36.93 ID:???
FULLTEXTは単語がスペースで区切られている言語用に作られたものなので
英語やドイツ語では動くけど日本語や中国語では動きません。
日本語を単語ごとスペースで区切れば動くよ

174 :NAME IS NULL:2011/07/11(月) 20:57:07.86 ID:???
>>173
日本語は一つの単語だけでも、1文字でもヒットしないのです。英文字なら一つの単語、1文字でもヒットするのですけども。
何かがおかしいのでしょうか。

175 :NAME IS NULL:2011/07/11(月) 23:30:54.32 ID:???
4文字制限だろ

176 :NAME IS NULL:2011/07/12(火) 02:30:04.84 ID:???
mysql_real_escape_stringでエスケープする時
"、'がエスケープされます

mysql_real_escape_stringを使用する前に
”、’を"や?に変換してれば特にエスケープされる事は無いと思うのですが
この変換をする前に、mysql_real_escape_stringでエスケープしたほうがいいのでしょうか?

177 :NAME IS NULL:2011/07/12(火) 05:18:00.46 ID:???
>>175
4文字制限はphp.iniで1文字まで下げました。

178 :NAME IS NULL:2011/07/12(火) 08:54:50.37 ID:???
1文字?wwww

179 :NAME IS NULL:2011/07/12(火) 09:15:47.08 ID:???
該当レコード数が多過ぎたら、何にもヒットしないと同じ結果になるんじゃなかったかな。
1文字でおkってしたことにより、そういう状態になってるのかも。
英字ならヒットするってのは、英字入りレコードが元々ある程度より少ないのかも。

日本語で使う場合の、たぶん常套手法は、
- N-gram化または形態素解析の結果を入れる
- その加工に合わせて、最短文字数を2文字とか3文字に
じゃなかろかね。

180 :173:2011/07/12(火) 11:12:38.08 ID:???
例えば、文章中に「愛」を含むものを探すのに
WHERE〜LIKE %愛%
だとうまくヒットするのですが、
MATCH〜AGANST(愛)
だと何もヒットしないのでどうしてだろう?と思っているところです。

「愛」1文字でも検索できるようにしているとは
[mysqld]
ft_min_word_len=3 →1に書き換えているということです。

181 :NAME IS NULL:2011/07/12(火) 11:31:54.68 ID:???
愛?wwww

182 :NAME IS NULL:2011/07/12(火) 16:49:53.83 ID:???
原因はわからないけど、fulltext indexは日本語がうまくヒットしない経験がある
tritonnか何かで試してみたら?

183 :NAME IS NULL:2011/07/12(火) 20:03:33.54 ID:???


184 :NAME IS NULL:2011/07/12(火) 21:05:14.93 ID:???
>>179
それなら、 in Boolean mode でとりあえず抽出はできるんじゃないっけ。


185 :NAME IS NULL:2011/07/14(木) 00:12:37.83 ID:???
久々にMySQLをインストールしたが、
いつの間にかcmake使うようになったのね。


186 :NAME IS NULL:2011/07/14(木) 00:56:15.36 ID:i7x94p+/
MYSQLってライセンスやばいんだな・・。
調べたら、GPL以外は、商用だろうが非商用だろうが、ライセンス料(年20万以上)かかるんじゃねーか。

違反してる奴、かなりいると思うけど、おっかないな。(ちなみに、昔いた会社も違反してた・・)

「オープンソースだけど、無料じゃない」
「ダウンロードは自由だけど、使ったら20万/1年」

って詐欺じゃねーか。

187 :NAME IS NULL:2011/07/14(木) 01:03:16.42 ID:???
>>186
GPLで使えばいいじゃん?
MySQLのソースを触る奴がそんなにいるとは思えないけど。

188 :NAME IS NULL:2011/07/14(木) 02:02:10.20 ID:???
>>187
いやそういうことじゃないから。
MySQLは派生物(プログラム)の配布形態によってGPLでは使えない制約がある。

189 :NAME IS NULL:2011/07/14(木) 07:11:52.73 ID:???
GPLで使う限りはGPLの制約しかないと思うんだが。GPL非互換ライセンスで
配布したい場合以外に、目立った制約ってなんかあったっけ?

190 :NAME IS NULL:2011/07/14(木) 08:09:57.03 ID:???
>>188
何を中心に考えてる?
自分が使う側?それとも、改変したものを配布する側?

自分で使うだけなら、そもそも改変しようがどうしようが自由で、ソースを公開する義務もないと思うが。

配布するならGPLに従い公開は義務だけど、プログラムに内蔵したりせず、プログラムが別にインストールされたMySQLを使うだけならプログラムにまでGPL伝染しないと思けど。



191 :NAME IS NULL:2011/07/14(木) 08:15:47.05 ID:???
難しい議論がわからないのですが、
現在、社内文書の登録でMySQLを使おうとしているのですが、
これは社員全員になりますが、大丈夫なのでしょうか。
もちろん、ソースを触るとかはまったくできません。

192 :NAME IS NULL:2011/07/14(木) 08:26:47.42 ID:???
どうみても大丈夫です
本当にありがとうございました

193 :NAME IS NULL:2011/07/14(木) 08:29:41.69 ID:???
ん?ライセンスとかの使用量の事?

194 :NAME IS NULL:2011/07/14(木) 08:32:20.69 ID:???
ここで暴れてる人か
http://hibari.2ch.net/test/read.cgi/hosting/1306233064/949-

195 :NAME IS NULL:2011/07/14(木) 10:31:32.21 ID:???
>>191
特に難しい議論はしてないので、
会社でソフトウエア使うなら、一人はライセンス周りに詳しい奴を雇え。
GPLじゃなくても、すべてのソフトウエアにライセンスはあって、
その範囲でしか使ってはならないのだから。

196 :NAME IS NULL:2011/07/14(木) 10:49:43.94 ID:???
PDSはライセンスあるの?

197 :NAME IS NULL:2011/07/14(木) 11:53:34.80 ID:???
>>195
社内にITグループというのがあるのですが、windowsのライセンスは詳しいのですけど。
unixは触ったことがないそうです。
社内サーバーにファイルアップロードするPHPをおいて、ファイル名をMYSQLに登録するというものです。



198 :NAME IS NULL:2011/07/14(木) 14:23:06.49 ID:???
業務なら2chで確認しました! って違法行為する前に金なり何なり掛けて調べろと

199 :NAME IS NULL:2011/07/14(木) 19:56:40.35 ID:???
2chで確認するにも金掛かるんですが

200 :NAME IS NULL:2011/07/14(木) 20:10:03.05 ID:???
>>197
MySQLのライセンスは怖すぎるから、やめておけ。
PostgreSQLにしておくのが無難。

以下、MySQLの本家サイトから抜粋
http://www-jp.mysql.com/about/legal/licensing/faq.html
http://www-jp.mysql.com/about/legal/licensing/index.html

「GPL ライセンスに基づくオープンソースアプリケーションを開発・頒布する場合、お客様は MySQL を GPL ライセンスに基づいて無償で使用することができます。」
つまり、 MySQLを単に「使用」して、開発する場合でもGPL ライセンスに抵触する。

ネット上で良く言われてる「MySQLは配布しなけりゃOK」ってのは、嘘。

201 :NAME IS NULL:2011/07/14(木) 21:35:08.62 ID:???
>>200
「twitter1000円」にカネ払っちゃう情弱www

202 :NAME IS NULL:2011/07/14(木) 22:21:34.40 ID:???
>>201
搾取される者がいるからこそ我々の生活は成り立つのだよ

203 :NAME IS NULL:2011/07/15(金) 03:41:31.21 ID:???
MySQLが起動しません。
my.iniの[sqld]にsock=/tmp/mysql.sockと書いてるのに
/var/mysql/mysql.sockがなんとかとか言って起動しない。
バカヤロ

204 :NAME IS NULL:2011/07/15(金) 03:50:44.94 ID:???
MySQLの何が一番怖いのかっつーと
開発元のOracleが一番怖い、色々な意味で

205 :NAME IS NULL:2011/07/15(金) 04:06:36.97 ID:???
ネットコミュはなんであんなにMySQLをもてはやすのだ?

206 :NAME IS NULL:2011/07/15(金) 04:08:15.85 ID:???
使いやすさじゃね?
企業だとPostgreSQLのほうが人気だけど

207 :NAME IS NULL:2011/07/15(金) 04:24:08.15 ID:???
もてはやすっていうかMySQL一択だからじゃね
どこのレンタルサーバにも入ってるでしょう
MySQL、SQLite>>PostgreSQL>>>>>その他
ぐらい

208 :NAME IS NULL:2011/07/15(金) 05:59:08.29 ID:???
たとえば、「LAMP」という言葉。
LAMP(ランプ)とは、OSであるLinux、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPerl、PHP、Pythonを総称した頭文字から成る造語である。
いくつかのサーバー用Linuxディストリビューションにおいては、LAMPがセットになって配布される。LAMPを1つのセットにすることで、OSのインストール時にLAMPの多くの設定・関連付けを自動的に行うことができ、サーバー管理者の手間を軽減させることができる。


209 :NAME IS NULL:2011/07/15(金) 06:08:13.18 ID:???
>>203
設定に関しちゃPC環境わかんないから助言できんわ

210 :NAME IS NULL:2011/07/15(金) 06:22:20.49 ID:???
>>206
日本だけだろ

211 :NAME IS NULL:2011/07/15(金) 09:29:42.79 ID:???
>>203
>/var/mysql/mysql.sockがなんとかとか言って起動しない。

コマンドラインのエラーメッセージ?
エラーログ(ファイル)の内容?

212 :NAME IS NULL:2011/07/15(金) 10:20:34.91 ID:???
>sudo bin/mysqld_safe --user=mysql &

としたら
110715 10:16:54 mysqld_safe Logging to '/var/log/mysql/error.log'.
110715 10:16:54 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
110715 10:16:56 mysqld_safe mysqld from pid file /var/lib/mysql/h57m.pid ended

[2]- Done sudo bin/mysqld_safe --user=mysql

で止まる。
頃すぞ。

213 :NAME IS NULL:2011/07/15(金) 10:38:20.26 ID:???
おれのGPLの理解が間違ってるのか

1 個人で非商用のmysqlを利用したホームページを開設 wordpressとか
2 会社が商用のmysqlを利用したホームページを開設 wordpressとかdrupalとか
3 社内で利用するためのphp+mysql のシステムを開発 社内のみで利用
4 mysqlを利用できるphpプログラムを開発して無償で頒布 epgrecみたいな
5 mysqlを利用できるphpプログラムを開発して販売 sugarcrmみたいな
6 mysqlを同梱したシステムを販売

どこまで有償で?ソース公開?

214 :NAME IS NULL:2011/07/15(金) 12:28:08.62 ID:???
>>213
GPLの解釈は関係ない。MySQLのライセンスがわかりにくいだけ。

わかりやすく言えば、
MySQLは、自分自身もGPLだけど、使うソフト(WEBサイト)もGPLであることを求めている。
それによって、オープンソースが世の中に多くなるからって理由。

使うソフトをGPLにしたくない場合は、商用ライセンスを買う必要がある。

非商用、商用関係、同梱云々一切関係ない。だからCMS系はWEBサイトもGPLにしてる。

ここの1章、2章をよく読む。
http://www-jp.mysql.com/about/legal/licensing/faq.html

1章は、「MySQL 製品を使用」するソフトは、GPLにして下さい。じゃなきゃ商用ライセンスを買ってください。
2章は、使うソフトもGPLにしなきゃいけない理由。

215 :NAME IS NULL:2011/07/15(金) 12:56:04.02 ID:???
Oracleがsunを買収した狙いはMySQL?

216 :NAME IS NULL:2011/07/15(金) 13:02:33.80 ID:???
>>215
単純にハードウェア(サーバ)が目的じゃないか。
Oracleセット販売できるし。Solarisに入れちゃうのかもね。

217 :NAME IS NULL:2011/07/15(金) 13:56:05.33 ID:???
ウェブサイトはサービスであって、製品では無い
ので、GPLライセンスで十分

とか書いたら信じるの?

218 :NAME IS NULL:2011/07/15(金) 19:35:21.79 ID:???
>>217
製品とかサービスとか関係ない。

MySQLは営利企業のソフトだぞ。
当然、そのソフトを使用した段階で、ライセンスフィーが発生する。

ただ、その除外規定として、作成したソフトがGPLである場合、
MySQLを無料で使用できる。

219 :NAME IS NULL:2011/07/15(金) 20:59:59.49 ID:???
いやだから、何もソフト作って無いし
WordPress設置をプロダクト製作とするの?
使うだけならGPLライセンスだから無料は同意してもらえたのかな

手な具合に非常にあやふやだから、金儲けするのに心配なら素直にオラクルに連絡しれ

220 :NAME IS NULL:2011/07/15(金) 22:22:22.62 ID:???
>>214
PHPはFOSS除外規定があるって書いてあるがこれでPHPライセンスで配布できるってことじゃないか?
MySQL使ってても

221 :NAME IS NULL:2011/07/15(金) 22:32:06.75 ID:???
そのPHPライセンスってどういう物?

222 :NAME IS NULL:2011/07/15(金) 22:36:31.41 ID:???
http://blog-imgs-32.fc2.com/l/u/t/lutsbo/20090927184646.jpg

223 :NAME IS NULL:2011/07/15(金) 22:42:42.71 ID:???
MySQLとPHPのライセンスがどうたらってPHP3までの話じゃないのか

224 :NAME IS NULL:2011/07/15(金) 23:07:24.79 ID:???
ブログとかでよく誤解されてるけど、PHPライセンスのバージョン3とPHP3は別物だから。

http://www.php.net/license/
> PHP 4 and PHP 5 are distributed under the PHP License v3.01, copyright (c) the PHP Group.

225 :NAME IS NULL:2011/07/15(金) 23:16:23.87 ID:???
結局PHPでMySQL使う場合はPHPライセンスでおk?

226 :NAME IS NULL:2011/07/15(金) 23:26:36.67 ID:???
>>214
GPLについて質問しているのにGPLの解釈は関係ないって、アタマ沸いてんのか?

227 :NAME IS NULL:2011/07/15(金) 23:33:31.94 ID:???
>>226
× アタマ沸く
○ アタマ湧く

228 :NAME IS NULL:2011/07/15(金) 23:43:24.13 ID:???
「が」と「に」の違いか。

229 :NAME IS NULL:2011/07/15(金) 23:46:45.14 ID:???
さるかに合戦会場と聞いて

230 :NAME IS NULL:2011/07/16(土) 12:21:32.03 ID:???
>>226
お前の質問の意図が外れてる。

GPLの規定について聞くなら、お前が示した1〜6の例示が間違ってる。
1〜6はMySQLの使用に関するライセンスであって、GPLの例にはならない。

MySQLのライセンスに抵触するかどうかで答えれば

1 -> 質問が非常に曖昧だけど、フリーのGPLのCMSを使用するという前提でOK (wordpress自体の改変をしなければ。改変した場合はGPLに従う)
2 -> 質問が非常に曖昧だけど、フリーのGPLのCMSを使用するという前提でOK (上記に同じ)
3 -> 代理店によって解釈が異なる。
  ・以前は、外部に作成したソフトウェアを譲渡しなければOK
  ・今は非常に微妙。
4 -> GPLに従って、派生物のソースを公開するならOK
5 -> GPLに従って、派生物のソースを公開するならOK
5 -> GPLに従って、派生物のソースを公開するならOK

231 :NAME IS NULL:2011/07/16(土) 13:11:29.22 ID:???
「MySQLのGPL」が特別だとでも思ってるのか?
GPLはGPL、それ以上でもそれ以下でもない。

232 :NAME IS NULL:2011/07/16(土) 16:38:33.37 ID:???
ここの多数の理解は6以外、無料でソースを公開しなくてもGPLに抵触しないでおk?

233 :NAME IS NULL:2011/07/16(土) 17:33:04.23 ID:???
有料でもいいんじゃないの?
公開するなら

234 :NAME IS NULL:2011/07/16(土) 19:53:10.76 ID:???
配布しなければオープンライセンスはなんの制限もない。

235 :NAME IS NULL:2011/07/16(土) 22:05:18.41 ID:???
MySQLは有料だといくらになるの?

236 :NAME IS NULL:2011/07/16(土) 23:12:15.54 ID:???
>>232
よく見ろ。>>230には6は無い。

237 :NAME IS NULL:2011/07/16(土) 23:29:50.12 ID:???
http://www-jp.mysql.com/about/legal/licensing/faq.html

GPLのMySQL使うならPHPのソースもGPLとしろよ
って解釈でいいの?


238 :NAME IS NULL:2011/07/16(土) 23:34:32.24 ID:???
>>230は相手にされてないことに気付け。

239 :NAME IS NULL:2011/07/17(日) 01:41:39.01 ID:???
>>233
書き方がまずかった
6以外、MySQLの有償ライセンスを購入する必要もないし、ソースを公開する義務もない、でOK?

240 :NAME IS NULL:2011/07/17(日) 01:52:59.58 ID:???
GPLに従って、派生物のソースを公開するならOK

241 :NAME IS NULL:2011/07/17(日) 02:48:25.53 ID:???
ライセンス早わかり
http://www.softagency.co.jp/images/common/product/hayawakari.png


242 :NAME IS NULL:2011/07/17(日) 08:24:56.48 ID:???
「あなたの開発したソフトウェアが動作するためにはMySQLが必要ですか?→NO→MySQLをお試しください」
必要ないのになんで試さなければいけないの?

243 :NAME IS NULL:2011/07/17(日) 08:33:30.53 ID:???
オラクルだからさ

244 :NAME IS NULL:2011/07/17(日) 10:17:56.93 ID:???
http://nippondanji.blogspot.com/2009/05/foss-license-exception.html
例外規定があるから、派生物がphpならソースを公開しなくてよいだろ?

245 :NAME IS NULL:2011/07/17(日) 10:41:05.96 ID:???
その規定はGPLを適用しなくてもよいということであって、認められているのは
いくつかのオープンソースライセンス。
それ以前に、phpで書いたプログラムは普通ソースのまま配布するだろ。

246 :NAME IS NULL:2011/07/17(日) 11:34:26.73 ID:???
phpがスクリプト言語でもソース公開の義務とは別だろ
少なくとも上の3の場合とかソースの公開の義務はないだろ
5でphp部分を改変して納品しても、相手先はソースを読めても世間に公開する義務はないと思うな

247 :NAME IS NULL:2011/07/17(日) 11:50:28.40 ID:???
世間に公開する義務なんてもともとねーだろ

248 :NAME IS NULL:2011/07/17(日) 12:16:29.40 ID:???
>>246
なんかここのところトンチンカンな主張する奴ががんばっていると思ったが、そんな
ライセンスの基本的なことすら理解してないんだ。
GPLについても「なんか伝染する怖いもの」程度の認識しか持っていないんじゃないのか。

249 :NAME IS NULL:2011/07/17(日) 13:21:44.25 ID:???
GPLのプログラムにソケットで接続したプログラムは全部GPLだあ!なんてタワゴトを言っているのは、
ここの基地外くらいのもん。
んなこと言ったら、LinuxというOS上でプロプリエタリなプログラムなど一切作れないだろうが。

250 :NAME IS NULL:2011/07/17(日) 14:48:58.52 ID:???
きちがいのあいてすんな

251 :NAME IS NULL:2011/07/17(日) 15:09:37.91 ID:???
プロプリエタリってなに?

252 :NAME IS NULL:2011/07/17(日) 15:10:17.10 ID:???
>>246
世間に公開する義務はないよ。権利だけ持ってる。

253 :NAME IS NULL:2011/07/17(日) 15:17:49.52 ID:???
じゃぁ何の義務があるの?

254 :NAME IS NULL:2011/07/17(日) 20:25:57.06 ID:???
>>253
別に何も

255 :NAME IS NULL:2011/07/19(火) 21:20:08.91 ID:???
これで独立できる

売るものはスマートフォンアプリ WEBサイト運営
サーバーはクラウド VPS
電話はスマートフォンSkype
オフィスは地方にプレハブ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィスで収入を得ながらそこで開発する
http://tinyurl.com/43xmk7m
http://tinyurl.com/3mopkfy

256 :NAME IS NULL:2011/07/23(土) 14:03:36.36 ID:???
>>249
ライセンスを認識していないのはお前のほう。

http://www-jp.mysql.com/about/legal/licensing/index.html
GPL ライセンスに基づくオープンソースアプリケーションを開発・頒布する場合、お客様は MySQL を GPL ライセンスに基づいて無償で使用することができます。

要約するまでもないけど「GPLでアプリを作る場合に、使用するMySQLもGPLになる。」ってこと。
GPLでアプリを作らなきゃ、当然、MySQLもGPLにはならない。

257 :NAME IS NULL:2011/07/23(土) 14:14:41.42 ID:???
何日間続いてるんだこの話
>>241で十分だろ
MySQL使ってないのならMySQLを使え、必要なくてもMySQL使えウエッヘヘヘヘ

258 :NAME IS NULL:2011/07/23(土) 14:16:19.65 ID:???
「MySQLはGPLだ!」って認識が間違ってるんだよ。

正確には
「MySQLは、一定の条件の下でGPLとして使用できる」
であって、

通常は
「MySQLはOracleの商用ソフトなので、ライセンス購入して下さい。」
になる。

259 :NAME IS NULL:2011/07/23(土) 14:19:54.38 ID:???
MySQLを使う必要が無いって言ってるのに使えというのはどういうことか
必要ないって言ってんじゃん

260 :NAME IS NULL:2011/07/23(土) 14:54:06.00 ID:???
理系ってちょっと違った表現するとすぐ突っ込んでくるから面白いよな

261 :NAME IS NULL:2011/07/23(土) 17:57:49.30 ID:???
>>258
こうもしつこいと、意図的にデタラメを流布しようとしているとしか思えんな。

262 :NAME IS NULL:2011/07/23(土) 18:32:52.75 ID:???
ちゅうこたー、
MixiやGoogleもMySQL使ってるし、彼らのコードはGPLなわけだ。
社員が外に流しても問題ないわけだ。
機密保持義務とGPLどっちが強いんだろ。

ちなみに、facebookやgreeはphpだから特例だ。twitterはrubyだっけ。

これだけの大プレイヤーが使っててMySQLも何も言わないんだし、配布なしの自社利用は制限なし、と思えばよかろう。

263 :NAME IS NULL:2011/07/23(土) 21:05:15.72 ID:???
>>261
どの辺がデタラメ?>>258じゃないけどわからんので教えて

264 :NAME IS NULL:2011/07/23(土) 21:13:34.44 ID:???
>>262
勘違いしてるみたいだけど、Google等は自社で開発したシステムをユーザーに利用させているだけであって、
システムそのものを販売・頒布しているわけではないからGPLかどうかという議論にすらならない。

265 :NAME IS NULL:2011/07/23(土) 22:23:07.24 ID:???
>>263
どのへんもなにも、全部。
GPLとのデュアルライセンスであるのは周知のことだと思うが、
一旦GPLでライセンスされたソフトウェアであれば、それをGPLの
下で再配布するのに「一定の条件」など付けることはできない。
配布されるモノは同じでもライセンス的には両者はお互い別物だと
いうことが理解できてないんだろう。

266 :NAME IS NULL:2011/07/23(土) 23:13:33.39 ID:???
>>264
いや、自分も同意見だけど、
いまここで言われてることを元にしたら
>>262なことになるってこと。


267 :NAME IS NULL:2011/07/24(日) 11:09:42.92 ID:2of7b51i
mysqlはdeleteが遅いという記述を見たことあるんですが、というかよく見るんですが
ではdeleteしたい時はどうしたら良いのか気になります

その行の利用可能/不可能を判定するカラムを追加して、deleteしたい時は利用不可にし、
サーバに余裕がある時間帯にクーロンでdelete実行する。…みたいなやり方で良いんでしょうか?

268 :NAME IS NULL:2011/07/24(日) 11:53:21.72 ID:???
で、ついでにインデックスの更新をしておくと


269 :NAME IS NULL:2011/07/24(日) 12:26:08.88 ID:???
パーティショニング機能を使って過去データを一気にDROPするのがいいんだけど
実際にやってる人はまだあまりいない。
フラグ立てて論理削除で済ませるのはアリだと思う。
ただなんにしろ自分のシステムで実際に遅いかどうかを確認してからの方がいい

270 :267:2011/07/24(日) 12:26:39.93 ID:2of7b51i
>>268
すみません、インデックスの更新ってどういうことですか?
今調べたら、 ANALYZE TABLE category; ってのが出てきました

267のdelete処理の後、このテーブルのインデックスがcategoryだとしたら
ANALYZE TABLE category;ってすればいいんでしょうか?

271 :268:2011/07/24(日) 12:40:05.24 ID:wJQBLiqA
インデックス貼ってないんだったら要らんだろうけど

俺は OPTIMIZE TABLEでやってる
レファレンスマニュアル見たけど ANALYZEとOPTIMZEの違い、よく判らんw
それから

ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
とあるから

ANALYZE TABLE category
ってのは、この場合 インデックスの名称ではなくテーブル名称になるんじゃ?



272 :NAME IS NULL:2011/07/24(日) 18:05:21.96 ID:???
googleはNoSQLだろ。
内部的にもMySQLをrdbに使用しているとは思えない。

知識不足が酷いな。

>>265
>一旦GPLでライセンスされたソフトウェア
だから、その認識が間違ってるんだって。

MySQLは、GPLでライセンスしていない。
ただし、OSSの発展のため、OSSのソフトがGPLである場合のみ、
MySQLをGPLライセンスとして無料で使用できる。
(まあ、MySQLを改変するケースなんて無いだろうから、ほとんど無意味だけど。)

良くわからないのは、なんでMySQLの本家サイトのライセンスについて読まずに、
GPLにばかり拘って、GPLの条項についてのみわめいているのか。。。

http://www-jp.mysql.com/about/legal/licensing/index.html

あと関係ないけど、GPLだからって別に無料ってわけじゃないぐらい知っているよね?

273 :NAME IS NULL:2011/07/24(日) 18:10:53.73 ID:???
>>272
おおかみが来たぞ〜♪

274 :NAME IS NULL:2011/07/24(日) 18:36:56.64 ID:???
>>272
オマエがわからんw。Web上の「解説」しか読まずに、しかもそれを
曲解してトンチンカンなことを主張しているのか。

ライセンス条項といったらEnd-User License Agreementのことだろ。
Windows版ならインストール時に必ず読まされるはずだぞ。

275 :NAME IS NULL:2011/07/24(日) 18:45:17.48 ID:???
>>272
実際Googleでも使われてるんだがな。
InnoDB関係でコードを寄贈したこともある。
どっちが知識不足なんだろうねぇ。

276 :NAME IS NULL:2011/07/24(日) 22:13:00.34 ID:???
>>272
> MySQLをrdbに使用しているとは思えない

妄想乙

277 :267:2011/07/24(日) 22:23:04.32 ID:???
>>269
ですね、ちゃんと速度を確認してみます
ありがとうございました

>>271
optimizeってのもあるんですね
自分のdbにあうのを見つけてやろうとおもいます
ありがとうございました

278 :NAME IS NULL:2011/07/25(月) 01:12:28.19 ID:???
googleほどMySQLをたくさん使っていた企業はこれまでなかったし今後も出てこないだろうね。

279 :NAME IS NULL:2011/07/25(月) 06:23:14.59 ID:???
>>278
妄想乙

280 :NAME IS NULL:2011/07/25(月) 06:25:11.54 ID:???
googleは確かにMySQLよく使ってるけど
突出してるのはAjaxじゃね

281 :NAME IS NULL:2011/07/25(月) 07:24:53.57 ID:???
290
 |  /l、 ???
 | (゚_ 。 7  ツンツン
 し⊂、 ~ヽ
    しf_, )ノシ

282 :NAME IS NULL:2011/07/25(月) 08:09:33.86 ID:???
Googleはほんの一部でしから使ってないだろう。
基本はBigTableとか独自のシステムだろう。

Ajaxかぁ。そうくるとは。返す言葉もない。

283 :NAME IS NULL:2011/07/25(月) 11:39:38.99 ID:???
>>279
>>282
ゴミはレスすんな。

GoogleはMySQLを使って事業を始め、しばらくそれでやってきたんだよ。
ただし、SQLなどかませずに、MySQLのindexに直接アクセスを掛ける手法。
切り替えたのは5年ほど前だ。

284 :NAME IS NULL:2011/07/25(月) 22:39:37.35 ID:???
>>283
妄想乙

285 :NAME IS NULL:2011/07/26(火) 05:46:46.83 ID:???
>>260
なるほど、分かった。お前らにとっては「ちょっとの違い」なんだな。つまり量の問題。
しかし、俺達は、その「ちょっと」が致命的な場合は訂正したくなるんだよ。
些細な問題なら指摘しない。質の問題なんだ。

レポートも卒論も質は議論されず量のみで評価される教育を受けると、
そうなってしまうんだな。分かった気がするよ。

286 :NAME IS NULL:2011/07/26(火) 07:53:59.22 ID:???
ちょっとの違いと些細な問題を区別するのはちょっとの違い。

287 :NAME IS NULL:2011/07/26(火) 15:23:27.93 ID:???
>>285
妄想乙

288 :NAME IS NULL:2011/07/27(水) 01:09:18.47 ID:???
ちょっと足し算と割り算を間違えたくらいでプログラム落ちるなよw
みたいな感じのちょっとだよね、文系の人の「ちょっと」って。

289 :NAME IS NULL:2011/07/27(水) 03:21:57.04 ID:???
>>288
妄想乙

290 :NAME IS NULL:2011/07/27(水) 09:21:55.45 ID:???
足し算と割り算を間違えるってどういう頭の構造しているんだ?

291 :NAME IS NULL:2011/07/27(水) 11:43:42.97 ID:???
>>290
+と÷は記号が似てるジャン

292 :NAME IS NULL:2011/07/27(水) 12:01:16.04 ID:???
まぁ7×3を無意識で23って書いちゃうような事は偶にある

293 :NAME IS NULL:2011/07/27(水) 12:27:03.97 ID:???
>>292
ねぇよw
って言って欲しいのか?

294 :NAME IS NULL:2011/07/27(水) 12:29:08.48 ID:???
7*7を47にすることならある

295 :NAME IS NULL:2011/07/27(水) 12:31:00.82 ID:???
高校生の頃から肝心な数式はあってるのにそういうミスが多い奴って
セミコロン付け忘れて「おいー、またセミコロン付け忘れてるぞお前ー」
って言われるタイプだよね

296 :NAME IS NULL:2011/07/27(水) 12:32:56.44 ID:???
わかってんならつけといてくれよブツブツ
とコンパイラに対して呟きながら修正する、とw

297 :NAME IS NULL:2011/07/27(水) 12:34:59.97 ID:???
>>295
やべぇ、俺だ

298 :NAME IS NULL:2011/07/27(水) 12:38:48.74 ID:???
最後に一括してセミコロン付けるといいよ。 \n → ;\n みたいな置換で。

299 :NAME IS NULL:2011/07/27(水) 14:30:36.80 ID:???
>>298
それ、すでについてる場合、
二重についちゃうだろ

正規表現で
置換前 (.+?[^;])$
置換後 $1;

でいけると思う。

300 :NAME IS NULL:2011/07/27(水) 14:37:51.11 ID:???
つかない行だって多いんだし、どうせつけ忘れなんて2,3行だべ

301 :NAME IS NULL:2011/07/27(水) 15:21:02.81 ID:???
まぁ、うっかりしてる奴は
改行するだけでセミコロン付いちゃうような時には
逆にうっかりしてセミコロン付けちゃうと思う

302 :NAME IS NULL:2011/07/27(水) 16:16:14.46 ID:???
うっかりしている奴はロジックがうっかりしているケースが多いので
辞めた後デバッグするやつらが悶絶するw

303 :NAME IS NULL:2011/07/28(木) 00:01:15.09 ID:???
>>299
セミコロンは2重になっても問題ないから

304 :NAME IS NULL:2011/07/28(木) 06:30:48.78 ID:???
>>303
つ セミコロン演算子

305 :NAME IS NULL:2011/07/28(木) 21:05:47.95 ID:Q69TJPvM
SELECT * FROM `posts` AS `Post`
  WHERE
    `Post`.`parent_id` IS NULL
  AND
    `Post`.`status` = 1
  ORDER BY `Post`.`modified` DESC
  LIMIT 15

↑このようなSQLを毎回投げるテーブルに、インデックスを付けるなら、どこにつけたらいいですかね?
(parent_id = INT
modified = DATETIME)

modifiedでいいかな?

306 :NAME IS NULL:2011/07/28(木) 22:35:57.93 ID:???
数千件程度の小規模なテーブルで、explain付けて試してみるよろし >>305

307 :NAME IS NULL:2011/07/29(金) 15:44:12.00 ID:???
explain付けて試したら気持ち良かった

308 :NAME IS NULL:2011/07/29(金) 17:16:13.39 ID:???
>>307
どのへんがどんなふうに気持ちよかった?

309 :NAME IS NULL:2011/07/29(金) 22:58:23.51 ID:lVApXi4L
>>306
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE Post ALL NULL NULL NULL NULL 63200 Using where; Using filesort

こんなふうに出ました
これはどう見たらいいんでしょうか??

310 :NAME IS NULL:2011/07/29(金) 23:49:18.35 ID:???
どっちのカラムにインデックス付けたら、より効果的なのかを知りたいんだろ?
それぞれの場合で、同じSQL実行してexplainの結果比較したりするもんじゃないの?

explainでの結果の読み方が分らないというのなら、「mysql explain」でぐぐって
最初に出てきたこのページなんか良さそうだぞ。
ttp://nippondanji.blogspot.com/2009/03/mysqlexplain.html

311 :NAME IS NULL:2011/07/30(土) 00:31:32.07 ID:???
MySQLって企業で使うのにライセンス料いるの?
市況2のドル円スレで必要って言う奴がいて質問に来ました。

312 :NAME IS NULL:2011/07/30(土) 00:44:48.94 ID:???
んなこと聞くようなやつは、金を払ってシステム組んでもらえよ。
そのほうが安上がり。

313 :NAME IS NULL:2011/07/30(土) 04:58:22.56 ID:???
>>312
どうしてその方が安上がりなんだよw

314 :NAME IS NULL:2011/07/30(土) 05:35:14.68 ID:???
まぁライセンスについてはログ読め。
このスレでも少し前に語りまくってるだろ。

315 :NAME IS NULL:2011/07/30(土) 05:57:43.01 ID:???
インデックスを作成したら速くなるということなのですが、
インデックスの名前は自由なんですか?
インデックスを作ったあとはほっとけば速くなるのですか?

316 :NAME IS NULL:2011/07/30(土) 06:25:22.37 ID:???
>>314
ライセンスについては自分の意見を主張しあってるだけで何も解決してないじゃないかw

317 :NAME IS NULL:2011/07/30(土) 07:33:27.15 ID:???
>>315
MySQLの質問というより↓で訊け

SQL質疑応答スレ 11問目
http://hibari.2ch.net/test/read.cgi/db/1299305530/l50


318 :NAME IS NULL:2011/07/30(土) 07:57:30.73 ID:???
「主張しあってる」w
そう思ってるのは1人だけのような気がする

319 :NAME IS NULL:2011/07/30(土) 08:33:38.81 ID:???
>>313
MySQLに限らず、多くの場合、その無能な担当者の人件費より安く上がる。


320 :NAME IS NULL:2011/07/30(土) 08:35:14.28 ID:???
>>316
主張し合うも何も、ライセンス条項がすべてだよ。読めよ。
GPLで使うならタダ。GPLで使えないなら買え。企業とか個人とか関係ない。

321 :NAME IS NULL:2011/07/30(土) 08:37:59.19 ID:???
>>315
名前は予約語じゃ無ければOK。日本語でも良いらしい(ここで聞いた話)。
インデックスはSQLの基本なので、MySQLのドキュメント2画面分ぐらい読んでおくと良いよ。

322 :NAME IS NULL:2011/07/30(土) 08:51:26.33 ID:???
インデックス名なんて内部で使うただの識別子にすぎないからなんでもいいけど
だいたいルール(命名規則)としてどういうものをつけるかというのは決まってる
人によってバラバラだけど

323 :NAME IS NULL:2011/07/30(土) 09:42:42.82 ID:???
>>322
「決まってる」のに「人によってバラバラ」ってどういうこと?

324 :NAME IS NULL:2011/07/30(土) 09:56:37.43 ID:???
>>323
カレーの作り方でも、目玉焼きに何をかけるかでも、
だいたいいつも決まってるけど、人によってばらばらだろ。

325 :NAME IS NULL:2011/07/30(土) 11:15:48.80 ID:???
>>324
はいはい。お前がいつも正しいよ。

326 :NAME IS NULL:2011/07/30(土) 13:53:33.25 ID:???
素人です。mysql で簡単な掲示板を作成したいのですが、一つ質問があります。
本文の入力でsql インジェクション対策はどのようにするのが一般的なのでしょうか?
現在はpost された値をそのままインサートしています。このとき、”を入力されると簡単にsql インジェクションされます。


327 :NAME IS NULL:2011/07/30(土) 14:52:43.30 ID:???
それはプログラムの方の問題だな

328 :NAME IS NULL:2011/07/30(土) 15:17:03.96 ID:???
>>326
どうせPHPだろうからPHPスレ行って聞いて来い

329 :NAME IS NULL:2011/07/30(土) 17:04:45.47 ID:???
>>326
>>46

330 :NAME IS NULL:2011/07/30(土) 19:47:53.15 ID:???
MySQL3系以来の素人です。
この度仕事でHAクラスタを組まなければならなくなり色々調べています。

Semi-Syncronus Replicationについて質問なのですが
スレーブが落ちてしまった場合、マスタの更新はタイムアウトするようですが、こういう場合の備えはどうすればいいのでしょう?

例えば、スレーブが死んだらsemi-syncをasyncに切り替えるにはどうすればいいのでしょう?

それともスレーブを2台以上にするのが常道でしょうか?
その場合でもマスタのネットワークアダプタが死んでしまったらやっぱり待ちになるような気がするのですが、それは仕方がない事なのでしょうか?


331 :NAME IS NULL:2011/07/30(土) 21:31:20.65 ID:???
レプリケーションが生きてるかどうかをHeartbeatやLifeKeeperで
監視して、壊れたらVirtual IPの張り替えとかするんだと思う。

Semi-Synchronous Replicationでクラスタ組んだ人まだ見たことない。
人柱頑張って!


332 :NAME IS NULL:2011/07/30(土) 21:40:09.22 ID:???
sqlのselectで分からないところがあります、ご教授お願いいたします。

data00 (id int, val00 text)
data01 (id int, point int, val01 text)

data00の全行をselectする必要があります。data01はdata00に関連付けされたデータです。
data00.id == data01.id でpoint最小の1つを表示させるのですが、方法がわかりません。
data00.idに関連付けされたdata01.idが1つでもあれば簡単ですが、data01がない場合もあります。
この場合はpoint,val01は空で、data00 のデータだけを取得する必要があります。

この方法を教えていただけないでしょうか? sql初心者ですがよろしくお願いいたします。


333 :NAME IS NULL:2011/07/30(土) 22:21:24.05 ID:???
>>331
ありがとうございます。

semi-synchronus replicationのプロトコルは以下のようになってるみたいです。
1. トランザクションをコミットする
2. レプリカからのACK(トランザクションを受信したかどうか)を待つ。
 ACKがない場合はここでタイムアウトが発生する。
3. クライアントにコミットが成功したことを知らせる。

・タイムアウトが発生したら、それ以降はsemi-syncronus replicationがdisabledになる。
・ネットワークのACKをWAITしている間、他のトランザクションはプロックされない。(ちょっと意味不明ですがクライアントに待ちが発生しないってことかな?)

すなわちタイムアウトはするけどトランザクションは成功するよん、
ってことかな。要するに>>330の懸念は織り込み済みみたいです。(多分…)

余談ですが、2phase commitみたいなイメージだったのでパフォーマンスを懸念していましたが、
ローカルのcommitが先行するみたいなのでそれも杞憂かもしれませんねぇ。


334 :NAME IS NULL:2011/07/30(土) 23:54:09.19 ID:???
>>332
「SQL 外部結合」とか「SQL outer join」とか「SQL left join」とかでぐぐってみなはれ。

335 :332:2011/07/31(日) 13:19:04.14 ID:z65ORH9i
>>334
ありがとうございます。
ググってみたところ実装できそうです(^^

336 :NAME IS NULL:2011/08/01(月) 19:52:54.78 ID:???
http://item.rakuten.co.jp/itjuken/10000002/
ここって酷くね?
MySQLってオラクルマスターのチケットで受験できるのに、1万円近く高くしてやがる。
無知は余分に金払えってか?
こういうのどこに言えばいいんだ。消費者センター?、公正取引委員会?

337 :NAME IS NULL:2011/08/01(月) 20:09:57.88 ID:???
ORACLE

338 :NAME IS NULL:2011/08/02(火) 06:44:49.63 ID:jJIdpw0B
初心者すぎてあほかと思われるだろうけど、
インデックスつけたら140msとか70ms(1ページ20クエリぐらいあった)かかってたクエリが全部0msになったwすげえw

フレームワークのSQLクエリログのクエリにかかった時間を見ながら
適当に組み合わせて試行錯誤したけど、3つのインデックスつけるのが一番いい結果になった。

インデックスはたくさんつけてもデメリットないのかな?
ファイルサイズがでかくなるとか聞いたけど、、、


339 :NAME IS NULL:2011/08/02(火) 06:46:59.71 ID:???
>1ページ20クエリぐらいあった
ここを1回でとれよ

340 :NAME IS NULL:2011/08/02(火) 08:55:14.57 ID:???
>>338
>インデックスはたくさんつけてもデメリットないのかな?
>ファイルサイズがでかくなるとか聞いたけど、、、

そりゃでかくなるよ、インデックスがゼロbyteで済むわけないから。
それと、insertおよびインデックス対象カラムの内容が変わるようなupdateは
インデックスの更新も伴うから、それなりに遅くなる(はず)。


341 :NAME IS NULL:2011/08/02(火) 15:32:38.82 ID:jJIdpw0B
>>340
なんか初心者からしたら、
全部にインデックスつけたらよくね?って結論になりそうです
全部つけた場合具体的にどのような障害?が起こりえますか?

342 :NAME IS NULL:2011/08/02(火) 15:42:36.35 ID:???
>>341
INSERTするたびにインデックス再構築が起こるでしょ
無駄なインデックスは書き込みを遅くするだけ

343 :NAME IS NULL:2011/08/02(火) 16:29:47.83 ID:jJIdpw0B
INSERTが重くなる、がデメリットですね
ありがとうございます

344 :NAME IS NULL:2011/08/02(火) 21:33:55.31 ID:???
正しくは更新処理だ

345 :NAME IS NULL:2011/08/02(火) 22:47:26.82 ID:???
SSDで運用してる人いる?
ランダムWriteが激しいので書き換え寿命が気になって仕方ないです。
データファイル、インデックスファイル、バイナリログの更新に対してTrimって意味あります?追記型だったら意味ないかな?
ちなみにストレージはInnoDBです。

そもそもストレージエンジンがTrim発行できるの?
RAWデバイス(ってかDIRECT IO)だったらできる?


346 :NAME IS NULL:2011/08/02(火) 22:50:57.34 ID:???
>>338
全部0msになるはずなくね?
ディスクのシークタイムが数msあるだろ

347 :NAME IS NULL:2011/08/02(火) 23:54:26.17 ID:???
>>345
基本trimが発行されるのはファイルを削除したとき。
古いバイナリログを削除するときにいまどきのOSならtrimが出せるはず。
データファイルは無理、っていうかそこにデータがあるんだからtrimしちゃだめ。
あと寿命が気になるなら業務用のSSDを買え


348 :NAME IS NULL:2011/08/03(水) 00:11:39.39 ID:???
やっぱりファイル単位ですか。
ログの削除ぐらいですね。意味あるのは。
ログはシーケンシャル書込でいいんだろうから独立したHDDでもよくって、

ということはコンシューマSSDでRAID組んでもOKじゃん!
ioDriveもバッテリー付いてないみたいだし?(買えないけど)

349 :NAME IS NULL:2011/08/03(水) 00:15:01.97 ID:???
RevoDrive3が気になります(安いっす)
SandForceコントローラってエラー訂正がしっかりしてるイメージがあるんだけど、
ioDriveと比べてどうなのかな?

350 :NAME IS NULL:2011/08/03(水) 00:50:53.64 ID:???
InnoDBのアーキテクチャ見てみた
MVCCだとかそうじゃないとかいろんな情報があったわけだが
ポスグレとは根本的に違うのね。バキュームがないわけだ。

追加か更新がほとんどで削除なんてめったにないけど
これだったら、データファイルの削除ブロックにTrimコマンド発行すればいいように思えるんだ…

OSのAPIからなにから書き換えんと無理か?

351 :NAME IS NULL:2011/08/03(水) 03:21:41.56 ID:???
今風のUI。Ajaxを使ったPHPベースのMySQL管理システム「MyWebSql」
http://www.moongift.jp/2011/07/20110731-2/
これ便利そうだな、phpmyadminより良さそう

352 :NAME IS NULL:2011/08/03(水) 07:51:42.86 ID:FuNOWK6t
またセキュリティホール増やすのか

353 :NAME IS NULL:2011/08/03(水) 07:53:01.62 ID:???
moongiftってRubyスレで暴れてた基地外じゃないか

354 :NAME IS NULL:2011/08/03(水) 08:56:26.55 ID:ethrgDzv
>>353
kwsk

355 :NAME IS NULL:2011/08/04(木) 14:05:52.54 ID:???
このMySQL-MHAってツールはどのくらい凄い事なんでしょうか?


「DeNAが社内利用しているMySQLの自動フェイルオーバーツール、オープンソースで公開開始」
http://www.publickey1.jp/blog/11/denamysql_1.html

356 :NAME IS NULL:2011/08/04(木) 15:17:13.44 ID:???
知らん

357 :NAME IS NULL:2011/08/04(木) 15:39:23.52 ID:???
>>355
・Active-Stanby構成のHAクラスタがいらないところ。
・つまりサーバーリソースが無駄にならない。
・寝覚めが良くなる。

問題はR/W Splittingしている場合のフェイルオーバー時の挙動。


358 :NAME IS NULL:2011/08/04(木) 19:35:34.41 ID:???
>>355
・健康で文化的な最低限度の生活を営む権利を有する。
・納税の義務を負う。
・その能力に応じて、ひとしく教育を受ける権利を有する。

問題は施行後に獲得された領土についての場所的適用範囲。

359 :NAME IS NULL:2011/08/05(金) 04:16:04.01 ID:j8SQmHpl
WorkBenchの表示フォント サイズが変更できん
おっさんには酷過ぎる

360 :NAME IS NULL:2011/08/05(金) 14:44:52.53 ID:???
メガネを換えるんだ

361 :NAME IS NULL:2011/08/05(金) 15:01:22.87 ID:???
メガネは顔の一部です

362 :NAME IS NULL:2011/08/05(金) 16:45:57.77 ID:???
遠近両用

363 :NAME IS NULL:2011/08/05(金) 18:02:57.18 ID:???
InnoDBがクソすぎる

364 :NAME IS NULL:2011/08/05(金) 18:21:17.88 ID:???
クソも食えば栄養になる

365 :NAME IS NULL:2011/08/05(金) 20:58:47.98 ID:???
その栄養がまたクソになる

366 :NAME IS NULL:2011/08/05(金) 21:30:58.77 ID:???
そのクソは、やがてinnoDBとなる

367 :NAME IS NULL:2011/08/05(金) 21:40:27.01 ID:???
InnoDBがクソすぎる

368 :NAME IS NULL:2011/08/06(土) 00:01:47.76 ID:???
クソも食えば栄養になる


369 :NAME IS NULL:2011/08/06(土) 00:54:52.85 ID:???
http://www.youtube.com/watch?v=hj1B8OGgwYc
検証番組とかいらないと思うよ。
とりあえず謝らないと、それはそれで問題だから、まあ、謝ったの?は正しいと思うけど。
これってさ、間違えを犯してさ、今度から気をつけようってレベル?のことじゃあないから。
風評被害で自殺してる農家だっているんだぜ?
震災の時って、日テレとかフジでも中継の時に不謹慎なことを
やってる人がいたけど、その程度のメディアリテラシーの人間が番?組作ってるから、
その程度の人間しか見なくなって、見ると人がどんどん減ってるっ?てことに、
そろそろ気がついたほうがいいよ。
まあ、オレは見ないから関係ないけどね。?
MYSQL5 <-注目

370 :NAME IS NULL:2011/08/06(土) 10:48:46.02 ID:???
質問
検証できる環境が手元に無いので聞きたいんだけど
mysqldumpでスキーマ別でダンプデータとって、
それをそのまま同じスキーマにリストアしてしまった場合って
データは二重に登録されてしまう?
それともその後差分があったとしたらその差分が消されるとかでしょうか

371 :NAME IS NULL:2011/08/06(土) 10:51:42.76 ID:???
試してから質問しろ

372 :NAME IS NULL:2011/08/06(土) 11:14:17.65 ID:???
>>370
ヒント。プライマリーキー。

373 :NAME IS NULL:2011/08/06(土) 11:48:10.82 ID:???
>>371
試したいんだけど、数日検証できない状況にいるからすぐ知りたくて

>>372
ありがとう
てことは、データが二重に登録されることはないんだね


374 :NAME IS NULL:2011/08/06(土) 15:45:39.16 ID:lyPiye8U
sql初心者です。 簡単な掲示板を作成しているのですが、最新の書き込み100件を古い順に取得する方法がわかりません。
limitとorder byで先頭から100件なら簡単ですが、終わりの100件をどのように取得すればよいでしょうか?

375 :NAME IS NULL:2011/08/06(土) 15:58:08.03 ID:???
どんなテーブル構成かわからんけど、
order by desc でどう?

376 :NAME IS NULL:2011/08/06(土) 18:52:48.68 ID:???
テーブルは簡単で、less_no int, msg textです。
たとえば、書き込みが900件だと 801〜900番までを順に取得したいです。descだと逆転して900番から上に取得になります。
レスのサイズを先に取得して、limitで開始位置を指定すればできますが、もう少しスマートで簡単に取得できる方法があれば教えていただきたいですm(_ _)m

377 :NAME IS NULL:2011/08/06(土) 19:20:28.88 ID:???
>レスのサイズを先に取得して

レスのサイズって何?

378 :376:2011/08/06(土) 19:30:13.25 ID:???
>>377
テーブルの行数、掲示板のレスの数です。レスの数がわかれば -100でlimitの開始位置がわかります。


379 :NAME IS NULL:2011/08/06(土) 20:02:22.02 ID:vIoRVp2z
初心者です。mysql5を使ってて、InnoDBのテーブルについて質問です

現在100行のデータが入ってるテーブルに、新たに101行目のデータをInsertするとき
1)新しいデータが何行目か取得する
2)カラムに、「このデータは101行目だよ」という内容で新規insertする
3)1,2の処理の間に、他のデータのinsertをさせない
…とするにはどうしたら良いでしょうか?
自分ではこのやり方が出来ないので、結果は同じってことで一度insertした後にlastinsertIDを取って
updateを実行してますがこれだとムダな負荷がかかってる気がします

ストレートに1〜3の処理を実行する方法はないんでしょうか?

380 :NAME IS NULL:2011/08/06(土) 20:25:24.66 ID:???
>>379
トリガを使うケースに見える。

ただ、DELETEしたら番号崩れるじゃないかとか
他に心配することがたくさんありそう

381 :NAME IS NULL:2011/08/06(土) 20:48:19.81 ID:vIoRVp2z
>>380
トリガていうんですか、、調べてみます
取得したい値はオートインクリメントの主キーなんですが、deleteしたら崩れるんでしょうか?
不安になってきた、今のやり方のままで良いのかなぁ…

382 :NAME IS NULL:2011/08/06(土) 21:41:01.98 ID:???
番号崩したくないならDELETEしなきゃいいじゃない

383 :NAME IS NULL:2011/08/06(土) 23:08:47.41 ID:???
それだとDELETEの存在意義が無いように思えるのですが

384 :NAME IS NULL:2011/08/06(土) 23:14:59.28 ID:???
>>381
取得する値(キー)じゃなくて設定したい値(「このデータは101行目だよ」)のことだろ。
なにをどうしたいのか、もうちょっとわかるように説明すれ。

385 :NAME IS NULL:2011/08/06(土) 23:19:09.31 ID:???
初心者なので何をどう説明すればちゃんと理解してもらえるのかわかりません

386 :NAME IS NULL:2011/08/06(土) 23:35:03.78 ID:???
オートインクリメントの主キーがDeleteしたら崩れるとか
何言いたいのかわからない

387 :NAME IS NULL:2011/08/06(土) 23:46:19.19 ID:???
わからないのは私の説明不足ではなく、あなたの理解力が足りないせい?

388 :NAME IS NULL:2011/08/06(土) 23:51:42.20 ID:???
連番にしたいのか?やめとけ

389 :NAME IS NULL:2011/08/06(土) 23:51:42.51 ID:???
AがBです。
でも、AがBっておかしくない?

日本語以前の問題かもしれない。。

390 :381:2011/08/07(日) 00:13:15.53 ID:???
>>384
なるほど!そういうことですか!勘違いしてました、納得出来ました

a-1)既存データが100件ある。最新データの主キーのidは100で一致してる
a-2)次にinsert予定のデータが何件目になるか判定する >101である
a-3)「101件目だよ」としてinsertする(id=0 でinsert、auto_incrementのため)

b-1)既存データが70件ある。最新データの主キーのidは100。(30件削除したのでデータ数とは一致しない)
b-2)次にinsert予定のデータが何件目になるか判定する >101である
b-3)「101件目だよ」としてinsertする(id=0 でinsert、auto_incrementのため)

これが両方成立するような、スマートなやり方を知りたいんです
最初に書いたような、とりあえずinsertしてlastinsetIdとって対象カラムをupdateすれば確実なんですが
何か他にやり方あるかなって。。

実際の計画としては「101件目だよ」の部分には別のデータが入ります
idをパラメータにした http://hoge.com/id/101 てページがあって、
それをgoo.glのshortURLに変換して 101件目だよ のカラムに入れてInsertしたいんです
なので、自己のIDの値がinsertの時点で必要なんです
最初からこう書いた方がわかりやすかったかもですね、すみません

391 :NAME IS NULL:2011/08/07(日) 00:32:43.41 ID:???
1) IDを決める
2) IDをもとにしたショートURLを求める

これって2)を1)と同時にやる必要なくない?
ショートURLあらかじめ10万個ぐらい作っておいて
SHORT_URL(ID, URL)テーブルに入れておけばいいんじゃ

392 :NAME IS NULL:2011/08/07(日) 01:22:04.74 ID:???
>>391
何の話?

393 :NAME IS NULL:2011/08/07(日) 01:24:30.86 ID:???
>>390
理解したと思ったら、他の奴のレスをもう一回読んで、
本当に必要な設計を再検討してみると良いよ。
単に auto increment 使うのが最適解に100万円。

394 :NAME IS NULL:2011/08/07(日) 01:27:43.40 ID:???
mysqlにSEQUENCEはないからスマートな手段もないんじゃね。
goo.glのAPIのリターンを待つ必要があるのが最大のポイントじゃね。


395 :381:2011/08/07(日) 01:43:30.67 ID:???
>>391
確かにそうなんですけどね、apiがエラーした時が恐いし
>>393
もう一回読んでみます
>>394
goo.gl、恐くなってきたな〜

皆さん意見ありがとうございました

396 :NAME IS NULL:2011/08/07(日) 05:05:39.69 ID:???
IDテーブルに1レコード作って自分で管理すれば?

397 :NAME IS NULL:2011/08/07(日) 05:53:05.99 ID:???
>>374
SELECT * FROM (SELECT * FROM t ORDER BY less_no DESC LIMIT 100) AS recent ORDER BY less_no ASC;

398 :381:2011/08/07(日) 06:41:29.69 ID:???
>>396
自前でショートURL機能実装した方が良い気もするんですが。。どうなんですかねぇ

399 :NAME IS NULL:2011/08/07(日) 08:28:47.42 ID:???
ハード更改したんだけど、あまりパフォーマンスが変わらないから、
topで見たらシングルのまま動いてるみたい。

まんべんなくCPUを使うための設定って何か必要なのですか?

centos5でmysqlのバージョンは
Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686) using readline 5.1

DBはMyISAM型です。

400 :NAME IS NULL:2011/08/07(日) 08:36:13.28 ID:bgq2n8mg
mysql初心者です。phpで定義した配列$sample[N][N]のそれぞれのデータ全てをmysqlに保存するというコードを書きたいと思っています。
もしこのNなどが大きい場合、テーブルを作成する際に
CREATE TABLE test_table1 ( id int, name varchar(100) );の id int, name varchar(100)の部分がとても長くなり面倒だと思うのですが、多数の列を簡単に定義し、テーブルを作成する方法はあるのでしょうか?
文章がうまくなくて申し訳ございません、解答よろしくお願いします。

401 :NAME IS NULL:2011/08/07(日) 09:48:42.94 ID:???
phpスレ向きじゃあるまいか

402 :NAME IS NULL:2011/08/07(日) 10:02:52.17 ID:???
>>398
実在のドメインを書き込むな>>390

403 :NAME IS NULL:2011/08/07(日) 10:16:25.93 ID:???
>>402
なんかマズイの?

404 :NAME IS NULL:2011/08/07(日) 10:20:21.48 ID:???
例示のためのドメインが用意されてるんだからそれ使えってことじゃない?

405 :NAME IS NULL:2011/08/07(日) 16:08:17.02 ID:???
>>399
MyISAMは更新処理でテーブルロックするから、頻繁に更新を行うプログラムは
並列度1でしか動かない≒CPU1コアしか使えない

406 :NAME IS NULL:2011/08/07(日) 16:14:28.16 ID:???
>>400
Nの値に合わせて列を増やすのではなくて、行を増やすんじゃないの普通

CREATE TABLE test_table1 (
id1 INT,
id2 INT,
name VARCHAR(100),
PRIMARY KEY (id1, id2));

INSERT INTO test_table1 (id1, id2, name)
VALUES ($i, $j, $sample[$i][$j]);

407 :NAME IS NULL:2011/08/08(月) 12:29:41.81 ID:???
質問です。

PHP 5.2.17、MySQL 5.0.51a
文字コード utf-8

カラムにUNIQUEを設定したテーブルを作成し、
そのテーブルにレコード追加処理を試み、追加されたのち、
もう一度異なるレコードを追加する処理を試みると、
重複が一切ないにも関わらず、二度目の追加には失敗してしまいます。

テーブルを完全に空にすれば再度追加できるようになるんですが、
一度目の処理で追加されたレコードが1行でも残っていると失敗します。

長くなってしまいましたが、対処法を教えて下さい。

408 :NAME IS NULL:2011/08/08(月) 13:46:25.58 ID:???
テーブル定義とレコードを追加するプログラムと
エラーメッセージを見せてください

409 :NAME IS NULL:2011/08/08(月) 13:49:05.55 ID:???
特にエラーメッセージだな。

410 :NAME IS NULL:2011/08/08(月) 14:03:12.05 ID:???
特定のディレクトリにあるファイル(mp3, mp4 など)を、
MySQLを使って管理したいです。管理したいというのは、
「聞いた/聞いてない」「買った/借りた」などのチェックを、
ファイル単位で評価付けできるようにする、ということです。
どこからどう手を付けたらいいのか分かりません。
入り口を教えて下さい。

411 :NAME IS NULL:2011/08/08(月) 14:06:36.42 ID:???
まずはタイトルを管理するものでも作ってみては
そのタイトルの属性の一つとしてファイル名があるとか

412 :NAME IS NULL:2011/08/08(月) 14:11:14.21 ID:???
>>410
オンラインで、複数人でやるなら考えようだけど、
自分だけならiTunesとか使った方が幸せになれるのでは?

413 :NAME IS NULL:2011/08/08(月) 14:30:38.15 ID:???
ExcelかAccessでやってみて、それで何か不足があってから
MySQLを使い始めればいいと思う

414 :NAME IS NULL:2011/08/08(月) 15:42:25.61 ID:???
Wordで一覧表を作れば充分

415 :NAME IS NULL:2011/08/08(月) 16:06:39.91 ID:???
どうしてもDBでやりてぇってのなら

DB設計を語るスレ 4
http://hibari.2ch.net/test/read.cgi/db/1309828440/l50

こちらで

416 :407:2011/08/08(月) 22:59:28.86 ID:???
どうか上手く行きそうです。報告申し上げておきます。
>>408-409さん、レスありがとうございました。
遅れてしまい、申し訳ありませんでした。

417 :NAME IS NULL:2011/08/08(月) 23:20:44.89 ID:???
>>416
原因は何だったんだ?

418 :NAME IS NULL:2011/08/08(月) 23:26:17.27 ID:???
それは、な・い・しょ(ハート)

419 :NAME IS NULL:2011/08/09(火) 00:54:39.65 ID:mphQrePV
>>406
回答ありがとうございます。その方がよさそうですね。

またみなさんに質問なのですが、insertでwhere指定をする時にphp側で定義した変数$sampleの値を持つidをselectするというコードを書きたいのですが、
$result = mysql_query('SELECT id,name FROM sample where id = $sample');
とするとエラーが出てしまいます。どのようにすればよいのでしょうか?

420 :NAME IS NULL:2011/08/09(火) 01:01:43.60 ID:???
完全にPHPの話なのでそっちで聞いて下さい

421 :NAME IS NULL:2011/08/09(火) 01:09:48.06 ID:???
>>419
そのサンプルコードから察するに、$sampleは数字じゃなくアルファベットなんじゃないかな?

422 :NAME IS NULL:2011/08/09(火) 01:31:22.79 ID:mphQrePV
>>420わかりました phpスレでも質問してみます
>>421いえ、$sampleは数字尾で定義しています。それでもエラーがでます・・・

423 :NAME IS NULL:2011/08/09(火) 01:35:17.65 ID:???
>>419
'(シングルクオーテーション)なので$sampleが展開されない。
"(ダブルクオーテーション)で囲むか、下記のように変える
$result = mysql_query('SELECT id,name FROM sample where id = '.$sample);

424 :NAME IS NULL:2011/08/09(火) 01:37:16.45 ID:???
シングルクオートで変数展開はされねーだろ

425 :NAME IS NULL:2011/08/09(火) 02:13:09.43 ID:???
>>419
直し方はみんなが書いているとおりだけど、MySQLスレなので調べ方。
MySQL 5.1以上で、my.cnfかmy.iniに

[mysqld]
general_log = 1
general_log_file = general.log

と書いて再起動。
出てきたログを見ればそのプログラムのどこが間違っているかが分かる

426 :NAME IS NULL:2011/08/09(火) 11:51:32.07 ID:mphQrePV
>>423
>>424なるほど・・・変数を展開する時には"で囲むある必要があるとは知りませんでした・・・ありがとうございます!

>>425今も一応どこの行が間違えているなどは出ているのですが・・・ 一応やってみます。ありがとうございます。

427 :NAME IS NULL:2011/08/09(火) 11:59:15.28 ID:???
とにかくSQL関係のエラーが出たら
そのプログラムが出力してる通りのSQLをログ等で出して
そのままコマンドラインででも実行してみるのが近道

428 :NAME IS NULL:2011/08/09(火) 12:16:55.22 ID:???
クエリが弾かれたら、とりあえずクエリを見てみるって発想がなんで出てこないんだろう?

429 :NAME IS NULL:2011/08/09(火) 13:33:16.52 ID:???
おまえじゃないから

430 :NAME IS NULL:2011/08/11(木) 22:26:53.21 ID:???
Mysql使えると食っていけますか?

oracleとどっちがいいのか知りたいです。(将来的に稼ぐために)

431 :NAME IS NULL:2011/08/11(木) 23:46:06.56 ID:???
>>430
MySQLもOracleも、使えるだけなら三流

432 :NAME IS NULL:2011/08/12(金) 00:58:50.71 ID:???
MySQLはソース読めるなら食っていけると思う
サポートエンジニア募集してたし

433 :NAME IS NULL:2011/08/12(金) 10:06:47.85 ID:???
>>430
究めれば、そして周囲にそうだと認められれば、稼げるのはオラクルの方でしょうね。

434 :NAME IS NULL:2011/08/12(金) 13:07:35.28 ID:???
Oracleは使えるけどMySQL使えないなんて奴、使い物になるかよ

435 :NAME IS NULL:2011/08/12(金) 19:48:53.80 ID:HW0R2j9V
先生質問です。

hoge int(1) unsigned zerofill

hoge tinyint(1) unsigned zerofill

だとデータ量とか検索速度とか変わってきますか?
また、どうするのがベターですか?

436 :NAME IS NULL:2011/08/12(金) 20:00:59.81 ID:???
>>435
1桁でいいならなんでわざわざintにしようと思うんだ?

437 :NAME IS NULL:2011/08/12(金) 20:02:56.21 ID:???
>>436
ちゃかさないで質問に答えてください

438 :NAME IS NULL:2011/08/12(金) 20:03:52.82 ID:???
>>436
桁によって変えるのがめんどくさいから・・・かな・・・

やっぱり相応の型にしたほうがいいんですかね?

439 :NAME IS NULL:2011/08/12(金) 20:04:39.69 ID:???
>>437
ee・・だれだよ・・

440 :NAME IS NULL:2011/08/12(金) 20:09:50.66 ID:???
tinyint使ったことない
intとbigintだけにしたほうが好きだなー

441 :NAME IS NULL:2011/08/12(金) 21:32:11.93 ID:???
必要なデータ量が入る最適なデータ型が常識だと思うけど。
MySQLってintにしても桁数少なければtinyint扱いになるんだっけ?
そうでなければ、1桁でも4バイト消費なんじゃ?
tinyintは1バイト。

442 :NAME IS NULL:2011/08/12(金) 21:39:07.90 ID:???
http://dev.mysql.com/doc/refman/5.1/ja/numeric-types.html

読む限りはint(1)の1はzerofillのためのもので、値を制限するものじゃないみたいだな。やっぱ、4バイトか。


443 :NAME IS NULL:2011/08/12(金) 21:50:33.15 ID:???
>>442
なるほど!ありがとうございます。
不精せずにちゃんと型指定することにします。。

444 :NAME IS NULL:2011/08/12(金) 22:12:53.30 ID:Ma8BMp8A
http://ramendb.supleks.jp/s/33758.html

445 :NAME IS NULL:2011/08/12(金) 22:32:42.00 ID:???
>>434
その逆はもっとダメだけどな。

446 :NAME IS NULL:2011/08/13(土) 05:17:05.25 ID:???
>>445
MySQLは使えるけどOracle使えない技術者なんて山ほどいるぞ

447 :NAME IS NULL:2011/08/15(月) 21:29:16.05 ID:???
dataset = DB[:kabuka]
aa= "mizuho"
dataset.insert(:yy_mm_dd => '2009-12-05', :name => "#{aa}" ,:code=>'8411')

rubyを使っていますが、上の文だと、MYSQLに書き込めるのですが
下のように数字やdateなどを、変数で入力しようとするとDBに書き込めません。
いい方法はないでしょうか?

dataset = DB[:kabuka]
aa= "mizuho"
bb='2009-12-05'
cc='8411'

dataset.insert(:yy_mm_dd => bb, :name => "#{aa}" ,:code=>cc)

448 :447:2011/08/15(月) 22:01:01.11 ID:???
自己解決できました。

449 :NAME IS NULL:2011/08/16(火) 01:57:35.84 ID:???
>>448は偽者です。
>>447の質問、よろしくお願いします。

450 :NAME IS NULL:2011/08/16(火) 10:02:57.94 ID:???
いずれにせよ すれ違いだ
""でくくって変数展開してみたら?

451 :NAME IS NULL:2011/08/16(火) 11:29:08.37 ID:???
>>447
その株ツールで儲けた利益の5割をもらえるなら教えてあげるよ

452 :NAME IS NULL:2011/08/16(火) 11:44:31.20 ID:???
損も5割持ってくれるかい?

453 :NAME IS NULL:2011/08/18(木) 00:07:04.53 ID:???
MyISAMでトランザクション処理を実装するにはどうしたらいいんですか?
どこか参考になるサイトはないでしょうか?

454 :NAME IS NULL:2011/08/18(木) 00:20:18.60 ID:???
InnoDB使え

455 :NAME IS NULL:2011/08/18(木) 01:18:08.81 ID:???
ALTER TABLE hoge ENGINE=InnoDB
START TRANSACTION
〜〜〜〜〜
COMMIT
ALTER TABLE hoge ENGINE=MyISAM


456 :NAME IS NULL:2011/08/18(木) 02:33:30.26 ID:???
>>455
あたまいいな

457 :NAME IS NULL:2011/08/18(木) 02:37:35.08 ID:???
>>455
感心するわ。トランザクションと全文検索ができるテーブルなんて。

まぁ、もうすぐInnoDBでも全文検索できるようになるけど。

458 :453:2011/08/18(木) 02:41:40.52 ID:???
>>454
InnoDB使えないサーバなんです
世の中にはトランザクションに意図的に対応していないものも数多くあって
そういうものでもトランザクション処理風のことはできるらしいという情報は得たのですが
具体的にどうするかまではわからなくて

459 :NAME IS NULL:2011/08/18(木) 03:18:11.18 ID:???
ここで聞くよりググったほうが早いよ

460 :NAME IS NULL:2011/08/18(木) 06:13:43.63 ID:dNV883jN
centOSの64bit版を使ってるんですが(某ホスティングで借りてます)
yum list installed | grep mysql したところ
mysql.i386 5.0.77-4.el5_6.6 installed
mysql.x86_64 5.1.52-jason.1 installed
という結果が返ってきました
どう解釈したらいいんでしょうか? どっちを使うことになるのかわかりません
(/etc/my.cnfがあるんですが、これはどっちの設定ファイルなのか…)

また、mysqlのインストール方法を調べていたら
# yum -y install mysql.x86_64 mysql-devel.x86_64 mysql-server.x86_64
という記述を某サイトで見つけました
mysql-devel.x86_64 mysql-server.x86_64というのはなんなんでしょうか
必須のものですか?
比較のため自宅の32bit版のcentOSで yum list installed | grep mysql したところ
mysql.i386 5.1.52-jason.1 installed
mysql-server.i386 5.1.52-jason.1 installed
このようになっていて、サーバーの実態として動いてるのはどっちだろうとわからず困っています

まとまりのない質問になってしまいましたが、64bit版OSで使うのは---x86_64で良いのか。
mysql.x86_64 mysql-devel.x86_64 mysql-server.x86_64 それぞれの違いはなんなのか、
mysql-server.x86_64だけ、もしくはmysql.x86_64だけのinstallじゃ何か困るのか
申し訳ないですが良ければ教えてください

いろんなサイトを見るとinstallの組み合わせがまちまちで、
x86_64の明記がなかったりもして何の意図でそうしてるのか、どれを信じたらいいのかわかりません

461 :NAME IS NULL:2011/08/18(木) 06:56:00.44 ID:???
i386はyum eraseしちゃえば
mysql クライアントだけ
mysql-devel mysqlライブラリと開発環境
mysql-server サーバー本体mysqld

mysqldが別のホストで動いているなら一個目のクライアントだけで十分かと

462 :NAME IS NULL:2011/08/18(木) 11:37:23.12 ID:???
すみません
なぜMySQLだと稼げなくて
ORACLEだと稼げるのでしょうか?
もしそれが本当なら
MySQLやめてORACLEに乗り換えたいです

463 :NAME IS NULL:2011/08/18(木) 13:36:44.41 ID:???
MySQLを使う客:あまりお金がない
Oracleを使う客:お金持ち
お金持ちにタカって稼ぐならOracleだ

464 :460:2011/08/18(木) 13:48:56.26 ID:dNV883jN
>>461
ご意見ありがとうございます
i386はアーキテクチャが違うから削除でOKなんですよね?
自分はこのホスティングで借りてるサーバをDBサーバとしても使いたいんですが
その意図だけだとmysql-serverのインストールだけでいいんでしょうか?
今、mysql関連をすべて一旦削除して
yum --enablerepo=utterramblings install mysql-server したところ
mysql.x86_64 5.1.52-jason.1 installed
mysql-server.x86_64 5.1.52-jason.1 installed
mysqlclient15.x86_64 5.0.91-1.jason.1 installed
上記3つがインストールされたんですがこれで大丈夫なんですよね?
mysql-develの用途がわからないんですが、開発環境ってことは
mysql自体の開発をする有志の人向けのものですか?

465 :NAME IS NULL:2011/08/18(木) 14:33:38.21 ID:???
mysql-develはC/C++で書いたプログラムからMySQLにつなぐとか
あとはperl-DBD-MySQLやphp-mysqlをビルドするときに使う

466 :460:2011/08/18(木) 16:58:14.80 ID:???
>>465
詳しい説明ありがとうございました!助かりました、ありがとう

467 :NAME IS NULL:2011/08/19(金) 01:32:14.43 ID:???
>>458
本当にトランザクションが必要なら、そのサーバを使うのが間違い。
自前でトランザクションを組むことはできるが、結局それは ariadb もどきを作ることになるだけだぞ。

468 :447:2011/08/19(金) 03:33:23.13 ID:???
449は偽物さんです。
#{ }で、""をつけて数字や日付も扱えました。

469 :NAME IS NULL:2011/08/19(金) 05:30:58.66 ID:???
>>468は偽者です。
>>447の質問、よろしくお願いします。

470 :NAME IS NULL:2011/08/20(土) 21:19:47.10 ID:???
すみません、皆さんは日本語全文検索対策はどのようにされていらっしゃいますでしょうか?
やはり、SennaとかTritonnを使用しているのでしょうか?

471 :NAME IS NULL:2011/08/20(土) 22:00:39.97 ID:???
今ならgroongaじゃない?

472 :NAME IS NULL:2011/08/21(日) 03:37:44.12 ID:???
運用中のmysqlのバックアップをmysqlhotcopyで行おうと検討しているのですが
バックアップ中にlockが行われるとのことで不安に思ってます

バックアップ処理中、つまりロック中にデータが書き込まれて
そのロックが長時間続いた場合
書き込みデータがロストするようなことはないのでしょうか

また
書き込み→書き込んだデータの読み込み
という処理をしたときにロック中出会った場合
書き込もうとしたデータの読み込みが行えないという認識であっているでしょうか

473 :NAME IS NULL:2011/08/21(日) 05:54:53.93 ID:???
lockはそういうものだろ

474 :NAME IS NULL:2011/08/21(日) 19:47:12.37 ID:???
MySQLのロックって、書き込みOKで読み込みをブロックするのかよ
おそろしいDBだな

475 :NAME IS NULL:2011/08/21(日) 20:51:45.11 ID:yF3YwHrz
今まで5.1を使ってたんですが、さすがにそろそろ5.5もいいかと思い使い始めました。
(OS MacOSXServer 10.7)
それで今までのtableを読み込み直した後、root以外のユーザーの設定も登録しようと思い、


grant select,insert,lock tables on db_name.* to user_name identified by 'password';

と入力し、試しにそのuser+passwordでログインしようとしたところ、全然ログインできません。
何が原因なのでしょうか?

またもしgrantが間違っているのであれば、どのような入れ方が正しいのでしょうか??

どなたかお教えください。お願いします。


476 :NAME IS NULL:2011/08/21(日) 20:55:05.28 ID:???
>>474
排他ロックってそういうもんじゃん

477 :NAME IS NULL:2011/08/21(日) 21:04:27.82 ID:???
>>476
普通のロックは、書き込みをブロックするんもんだと思ってたが

478 :NAME IS NULL:2011/08/21(日) 21:12:56.61 ID:???
>>475
ユーザ名は、ホストとユーザ名の組で指定した?

479 :NAME IS NULL:2011/08/21(日) 21:16:40.45 ID:???
どっからきたの?
SQL鯖かい?それともDB2?


480 :NAME IS NULL:2011/08/21(日) 21:18:36.69 ID:yF3YwHrz
>>478
いえ。ユーザー名だけで5.1では行けてたので'user_name@host'とか'user_name@*'ってのではなく、
'user_name'だけでしたが、それが原因ですか?
内部からもつなげたいし、外部からもつなげたいので、その場合'user_name@*'でいいのでしょうか?

481 :NAME IS NULL:2011/08/21(日) 22:07:53.82 ID:???
>>480
user_name@'%'
あとguestユーザが残っているとそっちで認証されることがあるので
念のためmysql_secure_installationしておく。
5.1と5.5で認証まわりは特に変わってないはず

482 :NAME IS NULL:2011/08/21(日) 22:32:06.63 ID:???
>>477
排他なら読み込みもブロックするよ

483 :NAME IS NULL:2011/08/21(日) 22:43:04.72 ID:gS6Fu7TZ
サブクエリー、join などしてレコードを20件抽出するのですが0.14secかかっています。
これって遅い方でしょうか。

484 :NAME IS NULL:2011/08/21(日) 23:16:48.48 ID:???
>>483
それだけじゃわからん。
CPU1コア使って1秒間に7回しか実行できないという点が
目的にかなうかどうかで判断するべし

485 :NAME IS NULL:2011/08/22(月) 01:18:13.43 ID:???
>>482
問題は書き込みはブロックされないのかってことだが?
読み込み「も」ってことは書き込みもブロックされるという事を言ってるのか?
>>474は書き込みOKでって言ってるんだが

486 :NAME IS NULL:2011/08/22(月) 03:20:57.04 ID:???
>>483
母数によるだろ

487 :NAME IS NULL:2011/08/22(月) 05:33:35.39 ID:???
>>485
「書込OKで」の意味がよくわからんが
select for updateでプロックすればいいんなじゃいのか?
違うのか?

488 :NAME IS NULL:2011/08/22(月) 06:41:19.79 ID:???
>>487
書き込みがOKなんだから書き込みがブロックされないって意味だろ
>>472
>つまりロック中にデータが書き込まれて と、ロック中でもデータが書き込まれるという旨の発言をしてる
それに対して>>473がそういうものだろっていうんで、>>474
>書き込みOKで読み込みをブロックするのかよ つまり書き込みはブロックされないのかよと言ってるわけだ


489 :NAME IS NULL:2011/08/22(月) 07:02:10.89 ID:???
>>472はロック中のテーブルに書き込むなんて書いてないだろ。
だから>>474とあんたの誤読。

490 :NAME IS NULL:2011/08/22(月) 10:03:51.70 ID:???
いや多分>>472はロック中のテーブルに書き込む話をしてるんだと思うが。
>書き込みデータがロストするようなことはないのでしょうか
って聞いてるわけだし。

491 :NAME IS NULL:2011/08/22(月) 12:08:07.69 ID:cErCHUJg
>>481さん
ありがとうございます。

492 :474:2011/08/22(月) 14:33:50.66 ID:???
で、結局ロック中のテーブルに書き込めるのか書き込めないのかどっちなんだ?
俺は共有ロックだろうが排他ロックだろうが書き込みなんぞ出来るわけないと思うんだが
>>473,476はそう思ってないみたいだが

493 :NAME IS NULL:2011/08/22(月) 19:27:35.98 ID:???
よろしこ
http://www.rock-wanko.com/


494 :NAME IS NULL:2011/08/22(月) 21:29:34.36 ID:???
>>492
逆に、どこをどう読んだらロック中のテーブルに書き込めると言っている
人がいると思ったのか訊いてみたい。

495 :NAME IS NULL:2011/08/22(月) 22:15:24.19 ID:???
そもそも、>>472の勘違いを>>473が読み間違えて、>>474が真に受けた、
っていうだけのヲチ。

496 :NAME IS NULL:2011/08/23(火) 21:32:54.93 ID:???
こうやってデマってのは広がっていくんだな

497 :NAME IS NULL:2011/08/23(火) 21:40:25.41 ID:???
MySQL5.1と5.5は、InnoDBの性能がアップした、という以外にもどの程度進化しているのですか?
全体的に処理速度がかなり速くなったり、「これは使える」という機能など追加されたのですか?
5.5に移行しようかどうか、サードパーティ製ソフトの対応等も含めて迷っています
CMAKEになって./configureオプションが変わるでしょうし、my.cnfの設定もある程度変わるのかなと思っています

逆に5.5の欠点などもあれば教えていただきたいと思います

498 :NAME IS NULL:2011/08/23(火) 21:47:00.38 ID:???
プラグインのAPIが変わってるらしく、5.1様のソースがそのままじゃコンパイル出来ない

499 :NAME IS NULL:2011/08/23(火) 22:28:21.57 ID:???
utf8mb4はけっこう重要だと思う

500 :NAME IS NULL:2011/08/24(水) 05:29:26.82 ID:???
手元でやると、5.5はtemporary table作るのが遅すぎて移行できなかった。
5.1と比べてね。
10倍くらい時間かかった。
MacでもUbuntuでも同じ結果だった。


501 :NAME IS NULL:2011/08/24(水) 08:06:57.39 ID:???
temporaryが遅いとな。
ストレージエンジンはMYISAM、MEMORY?

テンポラリーテーブルに限った話ではないけれど
InooDBPlugingが標準になったので
初期状態で立ち上げると確かに重くはなってる気がしますね。
(DEFAULT_STORAGE_ENGINEは相変わらずMISAM?だけど)

今のハードに併せてきたんじゃないかなと予想。



502 :NAME IS NULL:2011/08/24(水) 09:29:14.04 ID:???
ほんとにTEMPORARY遅いなら調べるけど。
再現ケース欲しいな

503 :NAME IS NULL:2011/08/24(水) 21:05:30.33 ID:???
結局皆MySQL5.5導入してるの?
俺は一応Linuxにcmakeでインストールして単純な動作確認だけはしたけど、まだ5.1使ってる
マイナーだろうけどmMeasure使ったりしてるんで
これ5.0、5.1、とインストール方法が変わるので、おそらく5.5では利用できないんだろうなと思って
cacti、munin等は試していないけれど
あと、バージョンの問題だったかもしれないけれど、ソースからインストール後起動時に何度かエラーが出て解決できなかった事もあった
5.1では一度も無かったけれど

504 :500:2011/08/25(木) 00:59:23.78 ID:???
500です。
チェーン店の日別店別の商品売り上げテーブルなんだが、

date date
store_id smallint
item_id mediumint
sales mediumint

って感じ。
10店舗くらいあって、指定商品が各店の売上ランキング何位にあるのかを割り出すのに

指定期間の商品別の売上順に集計したtemporary tableを作って
@i=0;
create temporary table `t1` select (@i:=@i+1)as`rank`,SUM(`sales`)as`sales`,`item_id` form `table` where `date` between 'A' and 'B' and store_id=1 group by `item_id` order by `sales` desc;
って感じで。
で、そこから指定のitem_idを条件に rank を出す。
これを店舗回繰り返す。

505 :500:2011/08/25(木) 01:02:09.08 ID:???
テンポラリテーブル作成を繰り返すから、5.1よりめちゃめちゃ時間かかってしまった。
5.1だと1秒未満で5.5だと5秒以上かかった。

日付指定が変動したり、カテゴリで絞ったりで、事前に値を出しておけないので、このようなことをしてたけど、
今は日付の期間指定させないで、日別、週別、月別のサマリテーブルに順位いれて、そこから選ばせるようにしてる。

まぁ、設計や方法がアホだったと思うけど、ようは5.5のテンポラリーテーブルは遅い、ってのはここで強く感じたわけです。

ちなみに、5.1、5.5ともにInnoDB plugin でbuffer poolは5GBくらい。
tmp_table_sizeもmax_heap_table_sizeも 512MBくらい割り当ててた。

506 :NAME IS NULL:2011/08/25(木) 01:12:28.91 ID:???
5.5のテンポラリーテーブルが遅いってのは本当なのか?
何か回避策があるんじゃないのか?

507 :NAME IS NULL:2011/08/25(木) 08:00:14.32 ID:???
OSとファイルシステムは同じ?


508 :NAME IS NULL:2011/08/25(木) 11:22:51.47 ID:???
>>504
indexの付け方が悪いんだろ。

509 :NAME IS NULL:2011/08/25(木) 12:00:46.70 ID:???
>>507
ファイルシステムはubuntuだとext4で、
Macはデフォルトです。

>>508
Indexは、
date=index
store_id,date=index
item_id,date,store_id=primary
にそれぞれついてます。

たとえなにかおかしくても、5.1と5.5でまったく同じ環境でやってるので、
どちらにも同じように事象は起きるはずですが。

5.1はOSのパッケージ管理でインストール。
5.5は遅かったので、パッケージ管理と公式サイトからバイナリ、の2種類で試しました。が、結果は同様でした。

あと、5.1で作ったテーブルをそのまま5.5で共用しました。5.5で何か変更があって互換性に問題が起きてるんでしょうかね。
ファイルフォーマットはBarracuda。

510 :NAME IS NULL:2011/08/25(木) 21:37:31.39 ID:???

my.cnfのdiffを晒してくれ

511 :NAME IS NULL:2011/08/25(木) 23:25:05.78 ID:???
個人情報を晒すのは御勘弁ください。

512 :NAME IS NULL:2011/08/26(金) 17:20:44.67 ID:???
key_buffer_size というのはMyIsam用にあるインデックスを保存しておくバッファ
の大きさを指定するパラメータみたいですけど、Innodb用にはそれに該当する
パラメータは無いのでしょうか?



513 :NAME IS NULL:2011/08/26(金) 19:32:04.95 ID:???
>>512
innodb_buffer_pool_size
インデックスもテーブル本体もこれ

514 :NAME IS NULL:2011/08/26(金) 19:58:34.25 ID:???
>>513
ありがとうございます

515 :NAME IS NULL:2011/08/27(土) 17:29:18.93 ID:???
日付についての質問です。
year,month,dayで3つのIntegerフィールドを定義するのと、Dateフィールドを1つ定義するのとでは、
年+月または年+月+日でSelectする場合どちらが高速にできるのでしょうか?

できるだけ高速にSelectしたのです

516 :NAME IS NULL:2011/08/27(土) 17:33:15.32 ID:???
試した方が早くね?

517 :NAME IS NULL:2011/08/27(土) 17:50:18.06 ID:???
Dateフィールドを1つ

518 :NAME IS NULL:2011/08/27(土) 19:01:55.02 ID:???
year,month,dayの数字を各桁ごとに分解し、それぞれを2進数化してTextフィールドに納めるのが良い

519 :NAME IS NULL:2011/08/27(土) 19:34:29.26 ID:???
time_t だろ常考

520 :NAME IS NULL:2011/08/27(土) 20:09:52.23 ID:???
DATE型の内部表現は3バイトの整数なんでしょ
他の型で代用するとかえって遅くならね?

521 :NAME IS NULL:2011/08/27(土) 21:30:02.18 ID:???
DATEだと、毎年2月とか、毎月5日とか飛び飛びのデータを集計するのがつらい。
Y/M/Dだと、2010/12/25〜2011/1/15といった、月またがり、年またがりの
データを集計するのがつらい。
どういう集計をしたいのかによって考えるべき。両方つけてもよい

522 :NAME IS NULL:2011/08/27(土) 21:53:26.60 ID:???
固定文字列8桁でいいじゃん

523 :NAME IS NULL:2011/08/27(土) 22:50:35.76 ID:???
8桁の数値にしてるわ。スッゲー楽。

524 :NAME IS NULL:2011/08/27(土) 23:06:16.21 ID:???
>>523
毎月5日とか10月とかは、文字列ならsubstrとかrightで抽出できそうだけど、数値のときはどうやるの?

525 :NAME IS NULL:2011/08/28(日) 03:25:49.87 ID:???
>>521
> DATEだと、毎年2月とか、毎月5日とか飛び飛びのデータを集計するのがつらい。
5日締め毎に集計って事ですか?
何が辛いのか分からないので詳しく教えて下さい

526 :NAME IS NULL:2011/08/28(日) 03:53:49.21 ID:???
2月29日の有無とか11月31日とか
3月3日の一週間前とか

クライアントソフト側できっちり丸められれば良いねぇ

527 :NAME IS NULL:2011/08/28(日) 09:19:42.91 ID:???
day of monthで検索するなら、フィールドを分けておけば(日,月,年)なんてindexを張れて便利。
DBMSによっては関数インデックスが使えるからその場合はdateでもいけるけど、
MySQLだとたしか使えない。

528 :NAME IS NULL:2011/08/29(月) 11:55:18.78 ID:9NlgRHdO
質問お願いします。
MySQL5.1です。
負荷軽減するためにmemoryストレージを使いたいのですが
システムダウンしたときにデータが消えてしまいます。
これを回避するために、バックアップ用のテーブルに同期することはできますでしょうか?
insert updateを2つかくという方法以外で方法があればお願いします。

529 :NAME IS NULL:2011/08/29(月) 12:17:31.58 ID:???
insert updateを3つかく

530 :NAME IS NULL:2011/08/29(月) 13:04:17.44 ID:???
トリガーでも使えば

531 :NAME IS NULL:2011/08/29(月) 14:15:48.09 ID:???
>>528
どんなデータいれるんだ?
KeyValueでいいならhandlersocketで幸せになるんじゃね?

532 :NAME IS NULL:2011/08/29(月) 14:34:24.88 ID:???
insert updateを4つかく

533 :NAME IS NULL:2011/08/29(月) 17:17:51.01 ID:???
トリガでできそうですね!勉強してみます。
ありがとうございます。

534 : 忍法帖【Lv=5,xxxP】 :2011/08/29(月) 17:30:19.06 ID:???
MySQLは100万件程度のレコードでの運用は問題ないでしょうか?
ユーザは20名程度です。

535 :NAME IS NULL:2011/08/29(月) 19:23:10.00 ID:???
とりあえず、
訪問者数、日に300人前後。
収録データ数は800万ちょい超え
というショボ目のwebサイトは普通に動いてるよ。

536 :NAME IS NULL:2011/08/29(月) 20:21:32.73 ID:???
innodbも定期的にoptimize tableやったほうがいいの?

537 :NAME IS NULL:2011/08/29(月) 21:23:29.89 ID:???
>>536
大量DELETEした場合はやっておいてもいい。
やらんでも困ることはまずない

538 :NAME IS NULL:2011/08/29(月) 21:46:24.05 ID:???
>>534
MS製品以外は普通大丈夫

539 :536:2011/08/29(月) 21:57:45.10 ID:???
>>357
ありがと!

540 :536:2011/08/29(月) 21:58:57.84 ID:???
ごめん>>537

541 :NAME IS NULL:2011/08/29(月) 22:00:04.07 ID:???
絶対に許さない

542 :NAME IS NULL:2011/08/30(火) 07:42:34.29 ID:2jLDvlEm
お前らの中で管理をMSAccessでしてるやついないのか?

543 :NAME IS NULL:2011/08/30(火) 09:02:01.88 ID:???
数千件レベルならMSAccessでもなんとか

544 :NAME IS NULL:2011/08/30(火) 10:10:36.49 ID:???
ちなみにSQL Serverだとどんなもん?

545 :NAME IS NULL:2011/08/30(火) 10:28:10.01 ID:???
542はMySQLの管理をAccessでっていう意味だと思ってたが違うのか

546 :NAME IS NULL:2011/08/30(火) 10:59:10.65 ID:???
MySQLってなんだよ
さっぱり解からん
サルにも解かるように教えてくれ

547 :NAME IS NULL:2011/08/30(火) 12:13:44.04 ID:???
サルには必要ねーよ

548 :NAME IS NULL:2011/08/30(火) 13:48:31.73 ID:???
>>546
MySQLってのは、MySQLの作者の娘(まいちゃん)から取った名前だよ

549 :NAME IS NULL:2011/08/30(火) 15:28:15.38 ID:???
MariaDBみたいなもんか
MAISQLに改名しる

550 :NAME IS NULL:2011/08/30(火) 15:34:50.25 ID:???
>>534
運用というか分析系には弱いね
そういう用途ならSQLServerのほうが向いているかと
予算がカツカツとかいう事情があるならPostgresでも入れるべし

551 :NAME IS NULL:2011/08/30(火) 15:40:19.23 ID:???
>>528
文面からするとMySQL Clusterが最適解のように思えるが。
ストレージがメモリじゃなきゃだめって制約がなければSemi-Syncつかえば

552 :NAME IS NULL:2011/08/30(火) 16:56:30.24 ID:???
俺もHinataSQL作ろうかなあ

553 :NAME IS NULL:2011/08/30(火) 18:05:10.72 ID:???
じゃぁ俺はIinchoSQLにする

554 :NAME IS NULL:2011/08/30(火) 18:18:10.24 ID:???
すでにMoSQLがあるわけだが

555 :NAME IS NULL:2011/09/02(金) 01:36:12.08 ID:Epz2y1xk
SELECT name,(SELECT COUNT(`id`) FROM table2 WHERE table2.t1_id = table1.id ) as t1_count FROM table1 WHERE t1_count > 0;

上みたいなネストさせたSQL書いたらめちゃくちゃ重くなりました・・・・。
なんとか軽くする方法ってないんでしょうか。

556 :NAME IS NULL:2011/09/02(金) 05:12:42.72 ID:???
サブクエリの部分をINで書きなおしてみ。
それでもダメなら5.6使ってみ

557 :NAME IS NULL:2011/09/02(金) 05:15:52.25 ID:???
あと最後のwhere句の部分はHAVINGの間違いでは?


558 :NAME IS NULL:2011/09/02(金) 06:35:27.63 ID:???
サブクエリ使わんでも、ふつーにjoinでいけないか?これ。

559 :555:2011/09/02(金) 06:35:44.60 ID:???
サーセン自己解決
アホなことになぜかtable2.t1_idをテキスト型にしてた
table1.idに合わせてINT型にしたら早くなりますた

560 :NAME IS NULL:2011/09/02(金) 10:48:09.56 ID:cqdHSpY6
mysqlが起動しなくなって、バックアップとリストア作業で困っています
原因:
centOS5.6でremiというリポジトリを使ってmysqlをyum updateしました
そしたら、mysql.i386 5.5.15-1.el5.remi installedになったわけですが、起動しなくなりました
調べたところ/etc/my.cnfの中のsocket=/var/lib/mysql/mysql.sockのソケットが実際にそのパスに存在しません。
で、
#find / -name mysql.sockしてもどこにも見つかりません

この状況でどうしたら良いんでしょうか
自分はmysqlを全削除して再インストールすべきなのかなと思いますが、それ以外の方法ありますか?
また再インストールするしかない場合、これまでのDBなど全部保持したいので
cp /var/lib/mysql /tmp/mysql-backup としたのですが他にしておくべきことはあるでしょうか?

すみません、復旧作業は初めてでビビっています。アドバイスお願いします

561 :560:2011/09/02(金) 11:02:57.73 ID:cqdHSpY6
書き忘れましたが、サーバを再起動したらソケットが生成されるかもという記述を見つけて試したものの
生成されませんでした
ご意見よろしくお願いします

562 :NAME IS NULL:2011/09/02(金) 11:19:18.83 ID:???
>>560
エラーログ探してちゃんと読め。見つからないなら
remi版アンインストールしてMySQL 5.0.77に戻したらいいよ

563 :NAME IS NULL:2011/09/02(金) 12:26:04.15 ID:???
InnoDB使ってるならInnoDBログのサイズが違うというエラーが出てるだろう
InnoDBログを一旦消してみれば

564 :NAME IS NULL:2011/09/02(金) 23:11:23.58 ID:???
mysql> SELECT * FROM list_a;
+------------+---------+
| NAME | TYPE_ID |
+------------+---------+
| MySQL | 1 |
| Perl | 2 |
| Oracle | 1 |
| PHP | 2 |
| C言語 | 3 |
| PostgreSQL | 1 |
| Java | 3 |
| Ruby | 2 |
+------------+---------+
8 rows in set (0.01 sec)

mysql> SELECT * FROM list_b;
+---------+--------------------+
| TYPE_ID | TYPE |
+---------+--------------------+
| 1 | データベース |
| 2 | インタプリタ型言語 |
| 3 | コンパイラ型言語 |
+---------+--------------------+
上の二つを結合し下の結果で出したいんだがどんなクエリー発行すればいいの?
教えてくださいエロい人
mysql>????
+------------+---------+---------+--------------------+
| NAME | TYPE_ID | TYPE_ID | TYPE |
+------------+---------+---------+--------------------+
| MySQL | 1 | NULL | NULL |
| Perl | 2 | NULL | NULL |
| Oracle | 1 | NULL | NULL |
| PHP | 2 | NULL | NULL |
| C言語 | 3 | NULL | NULL |
| PostgreSQL | 1 | NULL | NULL |
| Java | 3 | NULL | NULL |
| Ruby | 2 | NULL | NULL |
| NULL | NULL | 1 | データベース |
| NULL | NULL | 2 | インタプリタ型言語 |
| NULL | NULL | 3 | コンパイラ型言語 |
+------------+---------+---------+--------------------+
11 rows in set (0.00 sec)


565 :NAME IS NULL:2011/09/02(金) 23:20:46.09 ID:???
ここって初質スレなの?
こういう質問ありなの?

566 :NAME IS NULL:2011/09/02(金) 23:24:49.18 ID:???
気が向いたら返答するかもねー

567 :NAME IS NULL:2011/09/02(金) 23:31:08.55 ID:???
俺はスルーで

568 :NAME IS NULL:2011/09/02(金) 23:51:17.44 ID:???
>>565
余裕でありだろ
質問する自由、回答する自由

569 :NAME IS NULL:2011/09/03(土) 00:19:44.22 ID:???
ここよりSQL質問スレで聞いたほうがいいと思われ

570 :NAME IS NULL:2011/09/03(土) 00:29:01.75 ID:???
>>568
MySQLとかほとんど関係ないし

571 :NAME IS NULL:2011/09/03(土) 00:33:52.06 ID:???
どうせお前らわかんねえんだろ


572 :NAME IS NULL:2011/09/03(土) 00:37:38.16 ID:???
煽って駄々こねても、だ〜め(はぁと

573 :NAME IS NULL:2011/09/03(土) 01:45:45.48 ID:???
バカを育てることに意義がある
そんなマヌケな方針のお方がいましたので、初心者が沸いているのです

574 :NAME IS NULL:2011/09/03(土) 01:48:48.13 ID:???
>>565
よく>>564を見てみな。そんなに簡単じゃないぞ。

575 :NAME IS NULL:2011/09/03(土) 02:24:35.03 ID:???
自己解決
お前らたいした事ねーなハゲp

left outer null=null
union
right ごにょごにょ
で出来た


576 :NAME IS NULL:2011/09/03(土) 02:56:14.36 ID:???
口だけ達者なおまえら役になすぎワロン

577 :NAME IS NULL:2011/09/03(土) 09:48:01.46 ID:???
>>564
十分な難問なんだが
初心者とか言って煽ってるやつはくたばっとけ

578 :NAME IS NULL:2011/09/03(土) 10:29:01.39 ID:???
難問というよりちょっと調べればわかることを調べずに聞いてるから
これだけ自分でやってやってみたけどうまくいかないなら分かるけど

579 :NAME IS NULL:2011/09/03(土) 10:58:12.35 ID:???
>>577
どこが?
普通にUNIONしてるだけにしか見えん

580 :NAME IS NULL:2011/09/03(土) 10:59:49.64 ID:???
あとUNION ALLしろよな

581 :sage:2011/09/03(土) 11:58:41.63 ID:+juhx5Y2
どーでもいいけどTYPE_ID が2つあるからどっちのテーブルから
データを持ってきてるのか良くわからない

582 :NAME IS NULL:2011/09/03(土) 12:29:35.31 ID:???
>>581
さすがにそれはわかるだろ・・・

583 :NAME IS NULL:2011/09/03(土) 20:01:57.68 ID:???
質問です。
今通販サイトを作っているんですが
何もいじってないのに突然データベースが表示されなくなりました。
昨日まではちゃんとではないですが表示されていました。
昨日までは表示されたりされなかったり不安定で、その時は更新を何回も押せば表示されました(表示されてもまた更新押すと消えたりする)
XAMPP使っています。Mysqlは起動してあります。


584 :NAME IS NULL:2011/09/03(土) 20:09:32.70 ID:???
モニターの電源入ってる?

585 :NAME IS NULL:2011/09/03(土) 21:55:10.15 ID:???
メガネ掛け忘れてない?

586 :NAME IS NULL:2011/09/03(土) 22:14:05.27 ID:???
更新を何回も押し忘れてない?

587 :NAME IS NULL:2011/09/03(土) 22:16:41.31 ID:???
データベースって表示されるものなのか?

588 :NAME IS NULL:2011/09/03(土) 22:16:59.90 ID:???
>>564といい>>583といい、ただの釣りだろ

589 :NAME IS NULL:2011/09/03(土) 22:40:13.41 ID:???
>>583ですが釣りじゃないですw
ブラウザで表示する時データが反映されないんです。
昨日までは更新連打してれば反映されましたw
まぁこの時点で何かおかしいですが・・・
やり方間違ってるのかなぁ

590 :NAME IS NULL:2011/09/03(土) 22:56:22.37 ID:???
連打が足りないんだと思う

591 :NAME IS NULL:2011/09/03(土) 23:01:42.45 ID:zd/KEFO9
連打しなければ更新が反映されない


www

592 :583:2011/09/03(土) 23:06:13.21 ID:???
全然ワロエナイwww
もうやめたいわー
でもやらないとダメだし、どうすればいいんだ全く・・
データベース使わないでやるしかないのか

593 :NAME IS NULL:2011/09/03(土) 23:07:53.44 ID:???
連打するとレンダリングされる…

ククッ

594 :NAME IS NULL:2011/09/03(土) 23:21:57.17 ID:???
MySQLの問題なのかプログラムのせいなのか切り分けしろよ、カス。

595 :583:2011/09/03(土) 23:27:39.40 ID:???
>>594
それがわかったら苦労しないっす


596 :NAME IS NULL:2011/09/03(土) 23:28:51.87 ID:???
>>592
DB使わなくってもそのうち表示されなくなるよ
あとそういう質問はここで聞け
http://hibari.2ch.net/test/read.cgi/php/1314692611/

597 :NAME IS NULL:2011/09/04(日) 00:30:30.04 ID:???
>>595
すれ違いだけど
Apacheのエラーログみたり、myphpadminでphpのsql文を試してみたりすれば問題を切り分けられると思うよ

598 :NAME IS NULL:2011/09/04(日) 01:15:22.76 ID:???
更新ボタンが壊れたんだろ
キーボード交換しれ

599 :NAME IS NULL:2011/09/04(日) 01:28:50.31 ID:???
それならむしろマウスの左ボタンではないかと

600 :NAME IS NULL:2011/09/04(日) 02:04:47.86 ID:???
ふつうF5キーだろ

601 :583:2011/09/04(日) 03:56:48.39 ID:???
またF5連打頑張ってきますね
いつか更新されるはず

602 :NAME IS NULL:2011/09/04(日) 15:19:03.24 ID:BEWeRh6S
相談させてください。ちょっと前まで動いてたmysqlが動かなくなりました
ログを確認するとmysql_upgradeするように指示が出てたんですが、upgradeしようとしても失敗します

[root@localhost ~]# mysql_upgrade
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck with default connection arguments
mysqlcheck: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect
FATAL ERROR: Upgrade failed

どうしたら良いんでしょうか?
つい数時間前までselect,insert,updateも出来ていて、それから今までの間にyum updateなどは一切してないのですが…

mysqlのエラーログは以下の通りです
70 110904 15:12:20 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
71 110904 15:12:20 InnoDB: Started; log sequence number 0 6872537
72 110904 15:12:20 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
73 110904 15:12:20 [ERROR] Column count of mysql.db is wrong. Expected 22, found 20. Created with MySQL 50045, now running 50152. Please use mysql_upgrade to fix this error.

603 :NAME IS NULL:2011/09/04(日) 15:28:52.59 ID:???
Please use mysql_upgrade to fix this error.


604 :NAME IS NULL:2011/09/04(日) 15:30:54.55 ID:???
mysql_upgradeコマンド実行する時にフルコントロールできるアカウントのユーザー名パスワードわたしんしやい
-hか--helpて付けりゃ何か説明出るでしょ

605 :NAME IS NULL:2011/09/04(日) 16:08:04.50 ID:???
>>602

> Created with MySQL 50045, now running 50152.
MySQLが5.0.45から5.1.52にアップグレードされてるぞ。
誰かがいじったんじゃないの

606 :583:2011/09/04(日) 16:09:53.67 ID:???
解決したあああああああああきたああああああああああ
SQLの書き方が間違ってたw
何もいじってないのですが・・・とかいってたけど弄ってたww
みなさんありがとう!!


607 :NAME IS NULL:2011/09/04(日) 16:43:55.56 ID:???
>>606
おめ。
ちゃんと報告してくれたのも好評価です。
こんだけ礼儀正しいのに厨扱いしてごめん。謝るわ。

608 :NAME IS NULL:2011/09/04(日) 17:03:57.71 ID:???
しかし、そんな危うさで通販サイトを作ってて大丈夫なのか?

609 :602:2011/09/04(日) 17:31:35.08 ID:???
>>604-605
ありがとうございます
REPAIR TABLEを繰り返したり七転八倒してmysql自体はターミナルからのmysqlコマンドで動くようになったものの
phpからの操作が出来ないままだったりいくつか問題残ったままだったんで
一つのリポジトリでmysql, mysql-server, php, php-mysqlと全部インストールし直しました
依存関係をちゃんと理解してなかったのが問題だったようです
今でもよくわからないですが…
ありがとうございました

>MySQLが5.0.45から5.1.52にアップグレードされてるぞ。
これ、確かにそうなんですがアップグレードした後も正常に動いてたんです
それが急に動かなくなって。原因は不明のままです、怖いなぁ

610 :NAME IS NULL:2011/09/04(日) 19:21:13.10 ID:???
むしろアップグレードしたあと動いていたほうがおかしいだろう

611 :583:2011/09/04(日) 21:36:41.90 ID:???
練習なので問題ないです
アップロードも販売もしませんw

612 :NAME IS NULL:2011/09/05(月) 09:32:47.24 ID:???
躓いているのでどなたか助けて頂けないでしょうか。

cシェルで、特定の一つのレコードの特定のカラムを取得するselect文を発行して、変数の中に格納したいのですが、
この時に、値が空文字だと変数の領域をオーバーする旨のエラーになってしまいます。
(ここでいう空文字とは、insert時に値を""と指定したものです。)

nullでもなく、スペースでもないこの値を取り扱うにはどうすれば良いでしょうか?

613 :NAME IS NULL:2011/09/05(月) 09:37:18.59 ID:???
数字のカラムにヌルがある場合ってこと?
で、変数がintとか

614 :NAME IS NULL:2011/09/05(月) 09:43:17.11 ID:???
>>612
C ShellではなくSQLで頑張る方針でどうか
SELECT CASE WHEN col1 = '' THEN '<EMPTY STRING>' ELSE col1 END FROM test1;

615 :612:2011/09/05(月) 13:47:44.58 ID:???
>>614
ぶらぼー!
お陰さまでなんとかできました!
ありがとうございました!

616 :NAME IS NULL:2011/09/06(火) 16:11:59.52 ID:vFZ6NMqY
全文検索について質問というか相談したいんですが、皆さんどうやって実装していますか?
まったく初心者で、tritonとかgloongaとかが調べたらでてきたものの、
説明にかいてあることがよくわからず、その質問をここでしても良いのかもわかりません
良いのでしょうか?
というか、みんな、全文検索はどうやっていますか?
単純な名前検索とかならともかく全文検索だと検索結果のリストの作り方などもどうすべきかわかりません
どのように勉強したら良いんでしょうか

617 :NAME IS NULL:2011/09/06(火) 18:35:43.84 ID:???
>>616
Googleでsite指定で検索する

618 :NAME IS NULL:2011/09/06(火) 18:36:17.19 ID:???
いまはApache Solrじゃない?
MySQL関係ないけど

619 :NAME IS NULL:2011/09/06(火) 19:32:40.23 ID:vFZ6NMqY
>>617
やっぱりそれが簡単ですよね
よっぽど更新性が高くてそれへの対応度を高めたい場合以外はgoogleで良いのかなぁ

>>618
こんなのあったんですね!
独立した検索用サーバーってのはいいなぁ
tritonnみてたらmysqlを専用のソースで再コンパイル+インスコしなきゃいけないそうで
面倒くさそうで参ってました

2人ともありがとうございました

620 :NAME IS NULL:2011/09/06(火) 21:12:52.22 ID:???
bigramプラグインでなんとか
ただ、5.1だけなんだよな


621 :NAME IS NULL:2011/09/06(火) 23:04:46.67 ID:???
tritonnとかsennaとかいろいろあるけど、mysqlのバージョンが限られてて自由度低いですよね
Apache Solrてのはそのへんの縛りないのかな期待して調べてみよう

622 :NAME IS NULL:2011/09/07(水) 08:13:55.93 ID:???
更新が少ない用途だとgroongaよりTritonnの方がいいな
マルチカラムで検索できたり、検索後にタグ付できたり、いろいろ気が利いてる

623 :NAME IS NULL:2011/09/08(木) 17:51:55.07 ID:???
クエリーを入力すると、テーブルのどこにインデックス春香教えてくれる
ソフトって、需要ある?

624 :NAME IS NULL:2011/09/08(木) 18:44:43.15 ID:???
MySQLならある
OracleはオプションのTuning Packでできる

625 :NAME IS NULL:2011/09/08(木) 18:58:06.92 ID:???
>>624
MySQLでは無いだろ。無いから作ってんのに。

・・・うそだよね? 無いよね?

626 :NAME IS NULL:2011/09/08(木) 19:13:42.46 ID:???
需要があるってことでは?

627 :624:2011/09/08(木) 19:59:03.68 ID:???
分かりづらくてすまん。
そういうツールはいま存在しない。需要はある。
スロークエリログを直接読み込めるようにするときっとみんな喜ぶ

628 :NAME IS NULL:2011/09/09(金) 08:37:29.17 ID:KBWgcLx7
少し質問なのですがURLを主キーにすると速度は遅くなりますか?

主キーはオートインクリメントのintを使ってユニーク・インデックスで
URLのカラムと別にするのとでは速度に違いはありますか?

629 :NAME IS NULL:2011/09/09(金) 09:01:32.24 ID:???
速度の質問する奴多いけど、それくらい自分で試せばいいと思うけどな。
どうせここで聞いたってMysqlの中の人がいるわけじゃなし、経験か想像の答えしか得られないんだから。

630 :NAME IS NULL:2011/09/09(金) 10:07:46.39 ID:???
InnoDBにINDEX長767バイトの制限があるので
URLにPRIMARY/UNIQUE INDEXはそもそも張れない場合がある

631 :NAME IS NULL:2011/09/09(金) 11:25:47.28 ID:???
それ以前にURLって変わったりなくなったりすることがあると思うけど、それを主キーにして良いの?

632 :NAME IS NULL:2011/09/09(金) 12:10:51.61 ID:KBWgcLx7
>>631
基本的に問題ないです無くなっても変わってもいいので
重複さえしなければ

それよりアクセス1万/dayくらいのサイトなのですがプログラムを
サイトにアップしたらサクラ鯖ですがすぐにテンポってしまいます

テスト環境では正常に動作してます

サクラのDBがダメ?
それとも設計が悪い?

633 :NAME IS NULL:2011/09/09(金) 12:35:17.02 ID:???
>テンポってしまいます
ってどういう意味?

634 :NAME IS NULL:2011/09/09(金) 12:46:57.05 ID:KBWgcLx7
>>633
英語でサービステンポラリー エラー?
というのがでます
サーバー10個くらい借りてるので違うDB使ってみたら動作しました
???ですね
いわゆるハズレサーバーだったということでしょうか

635 :NAME IS NULL:2011/09/09(金) 15:35:15.15 ID:???
CentOS Linux でインストールして起動すると失敗になるけど、
MySQL の再インストールどうしたらいいですかね?

636 :NAME IS NULL:2011/09/09(金) 18:03:09.23 ID:???
すれば?

637 :NAME IS NULL:2011/09/09(金) 18:21:51.06 ID:???
すってもうまくいかない

638 :NAME IS NULL:2011/09/09(金) 19:51:25.03 ID:dF3d8pnA
LinuxのlamppでMySQL5.5.8を使っています。
prod.sqlというファイルを
mysql -u root < prod.sql
で読み込んだのですが、文字化けしてしまいます。
mysqladminで確認してもやっぱり文字化けしています。

端末とvimはUTF-8を使っています。
そのprod.sqlを利用するphpコード中には
// 文字コード
$enc_disp = "EUC-JP";
$enc_db = "EUC-JP";
とあります。
これらをUTF-8に変えても、同じように文字化けします。
文字化けを解消する方法を教えてください。

639 :NAME IS NULL:2011/09/09(金) 19:59:23.63 ID:dF3d8pnA
このmysqlの設定だけは分かるようになりました:
show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /opt/lampp/share/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

データベース名は 'testdb' というんですが、
これの文字セットを調べるにはどうすればいいんですか?

640 :NAME IS NULL:2011/09/09(金) 20:10:15.51 ID:???
>>639
SHOW CREATE DATABASE testdb\G

・my.cnfに character_set_server=utf8 を入れて再起動
・DROP DATABASE testdb;
・CREATE DATABASE testdb CHARACTER SET utf8;

して、もう一度prod.sql流してみて

641 :638-639:2011/09/09(金) 20:11:33.86 ID:dF3d8pnA
>>640
ありがとうございます!
やってみますので、しばらくお待ちくださいm(__)m

642 :NAME IS NULL:2011/09/09(金) 20:51:39.98 ID:???
今更だと思われるでしょうが、Maatkitでいかがなんでしょうか?
検索しても日本語の情報がそれほど多く出てくるわけでもないですし
あまり使ってる人多くないのかなと思ったもので

もしMaatkitに変わる、今皆さんが使っているサードパーティ製のものが何かあれば教えて頂けないでしょうか?

643 :638-639:2011/09/09(金) 20:52:17.74 ID:dF3d8pnA
>>640

・my.cnfに character_set_server=utf8 を入れて再起動
入れてからlamppをstop/startして再起動しました

・DROP DATABASE testdb;
消えました

・CREATE DATABASE testdb CHARACTER SET utf8;
作られました、新しいデータベースはこれ↓です

show create database testdb \g
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| testdb | CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)

・・・しかし、今度は"PHP"しか表示されなくなりました。
select id, nam from prod order by id;
+----+------+
| id | nam |
+----+------+
| 1 | PHP |
| 2 | PHP |
| 3 | PHP |
| 4 | PHP |
| 5 | PHP |
+----+------+
5 rows in set (0.00 sec)
データ自体がそうなってしまっているようです。MySQLAdminでも同じでした。
prod.sqlからの抜粋はこうです:
INSERT INTO prod(nam) VALUES('PHPサンプル集');
INSERT INTO prod(nam) VALUES('PHPリファレンス');
INSERT INTO prod(nam) VALUES('PHPデータベース構築法');
INSERT INTO prod(nam) VALUES('PHPの基礎がわかる本');
INSERT INTO prod(nam) VALUES('PHP活用法');
どうしたらよいでしょうか?

644 :NAME IS NULL:2011/09/09(金) 21:11:22.32 ID:???
データベースが入ってるフォルダのdb.optに書いてあるよ

645 :638-639:2011/09/09(金) 21:21:32.33 ID:dF3d8pnA
db.optには

default-character-set=utf8
default-collation=utf8_general_ci

と書かれていました。
これはとりあえず表示するのには正しそうですか?

646 :NAME IS NULL:2011/09/09(金) 21:24:10.02 ID:???
>>642
Percona ToolkitというMaatkit後継がおととい出たばかり
http://www.mysqlperformanceblog.com/2011/09/07/percona-toolkit-1-0-1-released/


647 :NAME IS NULL:2011/09/09(金) 21:32:12.91 ID:???
>>643
うーんDB設定までは期待通りになってるんだけどな。

prod.sqlって自分で作ったのではなくて書籍の付録か何かなの?
End-to-EndでUTF-8に統一したいなあ

$ iconv -t UTF-8 prod.sql > prod_utf8.sql
とか

648 :NAME IS NULL:2011/09/09(金) 21:38:16.07 ID:???
>>646
笑w
一昨日出たばかりなんですか?www
いいタイミングで質問しましたw

自分はDBAではないのですが、学習でMaatkitが色々と便利そうだなと思ったのですが、全然情報がなくて、日本では人気ないのかなと思っておりました
@ITとか、特集があるかと期待しましたが無いようですし
皆さんはあまりこういったものは使用しないのでしょうか?
GoogleCode(GooglePatch?)など


649 :638-639:2011/09/09(金) 21:45:51.62 ID:dF3d8pnA
>>647
ありがとうございます。

iconv -t UTF-8 prod.sql > prod_utf8.sql

を実行すると

iconv: 位置 3 に不正な入力シーケンスがあります

とエラーらしきものが表示されました。
位置 3 ということは、UTF-8ですよね?
utf-8と小文字にしてみましたがダメでした。
man iconv読んでもちょっと分からないです・・・。

650 :638-639:2011/09/09(金) 21:49:09.22 ID:dF3d8pnA
>>647
書き忘れましたが、おっしゃる通り、
prod.sqlというのはPHPスーパーサンプルに付いてきた書籍の付録です。
これを利用するsellist.phpというのに

// 文字コード
$enc_disp = "EUC-JP";
$enc_db = "EUC-JP";

と書かれているので、元々はEUC-JPで書かれているのだと思います、分からないですけど。

651 :NAME IS NULL:2011/09/09(金) 21:49:21.47 ID:???
>>649
機密情報とかでなければprod.sqlをどこかにUPするんだ

652 :638-639:2011/09/09(金) 22:02:13.18 ID:???
>>651
そんなぁ、無茶言わないでくださいよぉ・・・(´・ω・`)

653 :638-639:2011/09/09(金) 22:33:45.90 ID:dF3d8pnA
文字セットにこんなに悩まされるとは思っていませんでした。
憂鬱です・・・英語で 目 欄 ・・・間違えた・・・メランコリーでしたっけ?

もう全部の文字セットをUTF-8に統一すればいいじゃないですか・・・
何故やらないのか不思議です・・・。

654 :NAME IS NULL:2011/09/09(金) 22:49:48.70 ID:k/DlnFyj
バックアップについて教えて下さい。

いつもdumpをして、sqlを保存しているのですが、
mysqlサービスを停止させた後に、dataフォルダ毎バックアップする方法の方が速いので、
できれば毎日のバックアップはその方法にしたいのですが、
この方法で問題ありませんか?

バックアップしたdataフォルダを全く別のPCにコピーさせてmysqlサービスを開始すれば、
問題が発生する場合があるかどうかが分からないため不安に思っています。

windows/mysql5.5環境です。どうぞ、宜しくお願いします。

655 :NAME IS NULL:2011/09/09(金) 22:57:10.09 ID:???
>>654
問題ありません
mysqlサービスを止めるタイミングがあるなら物理バックアップが一番平和

656 :638-639:2011/09/09(金) 22:59:03.93 ID:dF3d8pnA
>>651
反応が無いので・・・

http://firestorage.jp/download/e12463701a71f124f04076db44611a177f91abd4

657 :NAME IS NULL:2011/09/09(金) 23:04:25.29 ID:???
>>656
$ iconv -f EUC-JP -t UTF-8 prod.sql > prod_utf8.sql
でおk

658 :638-639:2011/09/09(金) 23:19:41.32 ID:dF3d8pnA
>>657
ありがとうございます。あと一歩のようです。
PHPを実行したところ、ドロップダウン・メニューに

     PHP?????

…と日本語の文字数だけハテナが表示されています。
データはどうなっているかと言いますと、

select id, nam from prod order by id;
+----+--------------------------------+
| id | nam |
+----+--------------------------------+
| 1 | PHPサンプル集 |
| 2 | PHPリファレンス |
| 3 | PHPデータベース構築法 |
| 4 | PHPの基礎がわかる本 |
| 5 | PHP活用法 |
+----+--------------------------------+
5 rows in set (0.00 sec)

…ちゃんと日本語になっています。MySQLAdminも同じです。

ブラウザIEの文字コードをUTF-8に変えたら全部文字化けして
F5を押すと自動判別されてからまたEUC-JPに戻ってPHP?????になりました。
PHPのコードの文字コードをUTF-8から元のEUC-JPにしても同じ結果です。
多分、もう一歩です。どうすればよいのでしょうか?

659 :638-639:2011/09/09(金) 23:26:46.92 ID:dF3d8pnA
ここからはもうPHPスレで訊いた方が良さそうでしょうか?
一応書いておきますと・・・

このsellist.phpはテーブルprodから読み出した情報を
ドロップダウン・メニューに表示するだけのコードのようです。
選んだからといって何かするわけではなさそうです。
ですから正しく表示されればこのコードの目的は果たされます。

// 取り出したデータを表示する
echo "<select name=\"menu1\">";
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
echo "<option value=\"".$row["id"]."\">".
cnv_enc($row["nam"], $enc_disp, $enc_db)."</option>";
}
echo "</select>";

cnv_encのところで上で設定した
// 文字コード
$enc_disp = "EUC-JP";
$enc_db = "EUC-JP";
を引数として与えていますね。
これが動いていないということでしょうか?

660 :638-639:2011/09/09(金) 23:35:19.60 ID:dF3d8pnA
お陰様でデータベースの方にはもう何も落ち度が無いことが分かりましたので、やはりPHPスレで訊いてきます。
(cnv_enc()というのはよく見るとユーザー定義関数でした・・・分解して一つ一つ見てみることにします)
答えてくださった皆さん、ありがとうございました!良い週末を!

661 :NAME IS NULL:2011/09/09(金) 23:41:45.90 ID:???
MySQLの話がひとつもない
荒らし認定

662 :NAME IS NULL:2011/09/10(土) 16:54:52.86 ID:???
MySQLの話してるじゃん一応

663 :NAME IS NULL:2011/09/10(土) 20:49:54.03 ID:LXtWlowA
すいません
mysqlターミナルを使ってMySQLサーバーにアクセスしたいです

どのようにするとよいでしょうか?

環境 mac

XAMPPを、インストールして、MySQLの動作を確認しました。

664 :NAME IS NULL:2011/09/10(土) 21:06:56.76 ID:???
>>663
くだスレで聞け
http://hibari.2ch.net/test/read.cgi/php/1314692611/l50

665 :NAME IS NULL:2011/09/11(日) 14:46:14.31 ID:???
create tableでは、c1 c2 c3...cnの順にカラムを登録したとします

create table t1 (
c1 int,
c2 int,
c3 int,
c4 int,
cn int
)

この時、登録した順番に取り出す、
select c1, c2, c3 from t1と、
バラバラに取り出す、
select c3, c1, c2 from t1では速度的に差は出るのでしょうか?
プログラム側で速度を計測しても差はわかりませんでした。
あとあと必要なカラムを追加するとき、

select c3, c5, c7 from t1から、
select c1, c3, c5, c7 from t1に変更するか、
select c3, c5, c7, c1 from t1にするか悩んでいます。
後者にしたほうがプログラムの変更が楽なのですが、
速度的には差は出ないという認識でよいでしょうか?

666 :NAME IS NULL:2011/09/11(日) 15:20:53.69 ID:???
>プログラム側で速度を計測しても差はわかりませんでした

そしたら、それで充分だと思うけど。
下らんこと悩んでいる暇があったらさっさとプログラム完成させたほうがいいよ

667 :NAME IS NULL:2011/09/11(日) 16:28:05.28 ID:???
>後者にしたほうがプログラムの変更が楽なのですが、

なんか馬鹿なことしてそう

668 :NAME IS NULL:2011/09/11(日) 17:23:29.74 ID:???
順番変わる方が面倒だろ
何だ?馬鹿なことって

669 :NAME IS NULL:2011/09/11(日) 17:41:57.46 ID:???
とりあえずSELECTのカラム順は性能に関係ないよ。
EXPLAINとってPLANが同じなら性能は同じとみなしてよし

ただし
「SELECT * をせずに必要な列だけSELECT c1, …する」
という点は大前提

670 :NAME IS NULL:2011/09/11(日) 18:22:39.44 ID:???
mysqlを入れて [mysqld]の中に
innodb_log_file_size=64M
innodb_buffer_pool_size=128M
と追記したら
mysqlが立ち上がらなくなりました。

どなたか分かる方いたら教えて下さい

671 :NAME IS NULL:2011/09/11(日) 18:26:32.57 ID:???
>>670
どうやらバッファーサイズのほうはあっても問題ないようです。
ログファイルサイズのほうはmy.cnfの中に書かれているとmysqlが立ち上がりません。

672 :665:2011/09/11(日) 18:59:23.68 ID:???
レスどうもありがとうございます
explainの見方がよくわからなくて困っていました
カラム順は関係ないとのことなので安心しました
どうもありがとうございます

673 :NAME IS NULL:2011/09/11(日) 19:14:33.80 ID:???
>>670
「innodb_log_file_size 変更」
ぐぐれ

674 :NAME IS NULL:2011/09/11(日) 22:17:42.95 ID:???
>>670
追記したのを消せばいいじゃん!

675 :NAME IS NULL:2011/09/12(月) 15:34:12.76 ID:???
自分の場合、
php の場合は、
$db = mysql_connect($db_host,$db_user,$db_passwd);
の後に、
mysql_query("SET NAMES utf8",$db); //クエリの文字コードを設定

を追加して、文字化けを解消できた。

また、プログラム上では、

$sql = "select * from table_hogehoge";
$sql = mb_convert_encoding($sql, "UTF-8", "SJIS");

などで対応。

676 :NAME IS NULL:2011/09/12(月) 16:41:47.31 ID:???
あと、自分でサーバーを立ち上げているのなら、
httpd.conf の修正も必要みたいだね。

#AddDefaultCharset ISO-8859-1
AddDefaultCharset off

677 :NAME IS NULL:2011/09/12(月) 17:04:54.53 ID:???
文字化け解消のためのSET NAMESはやめろとあれほど

678 :NAME IS NULL:2011/09/12(月) 17:10:08.16 ID:???
文字コード変換はSQL(SET NAMES)で行うのは危険なので
API関数のmysql_set_charsetを使え、と読んだことがあるのですが。

679 :NAME IS NULL:2011/09/12(月) 17:34:03.75 ID:???
//mysql_query("SET NAMES utf8",$db);
mysql_set_charset("utf8");

がってん。

SET NAMES ではなく、mysql_set_charsetを推奨って書いてるね。
http://jp.php.net/manual/ja/function.mysql-set-charset.php

680 :NAME IS NULL:2011/09/12(月) 17:34:59.69 ID:???
MySQLの転送量について聞きたいことがあります

a.DBが20M
a tableが20Mだとしてそのうちの一つのレコードの
1 hoge fuge hage
のhogeの部分を取り出した場合
転送量は20Mになるのでしょうか?それとも1 hoge fuge hageの分になるのでしょうか?それともhogeの分だけになるのでしょうか?

転送量だけだからhogeの分だけだと思うのですが

681 :NAME IS NULL:2011/09/12(月) 17:52:03.62 ID:???
>>680
1 fuge hage
については転送されないが、「hogeの分だけ」というほど単純でもない。

http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol
1.13 Result Set Header Packet
1.14 Field Packet
1.15 EOF Packet
1.16 Row Data Packet

を読めばいいと思うよ

682 :NAME IS NULL:2011/09/13(火) 01:45:25.77 ID:???
>>677
なんでだめなの?

683 :NAME IS NULL:2011/09/13(火) 03:56:24.23 ID:???
>>682
SET NAMES ではMySQLに対して文字コードの変更を指示できるけど、
PHPの内部関数 mysql_real_escape_string が解釈する文字コードは変更されない。
そのためSQLイジェクションの脆弱性が生じる。
詳しくはググって

684 :NAME IS NULL:2011/09/13(火) 20:07:53.89 ID:???
画像とかを保存する場合、MySQLのDBに保存するのか
もしくはファイルはどこかに置かれるようにして、そこへのリンクurlだけを保存
どちらがいい?
後者だと画像へ直接外部リンク張られるよね?

685 :NAME IS NULL:2011/09/13(火) 23:52:00.38 ID:???
ファイルはどこかに置かれるようにして、そこへのリンクurlだけを保存

686 :NAME IS NULL:2011/09/14(水) 05:06:09.95 ID:???
直リンを防ぎたいならDBに保存でもいいけど、直リンを防ぐ方法はいくらでもあるから
どっちでもいい。

687 :NAME IS NULL:2011/09/14(水) 10:51:13.18 ID:???
yry

688 :NAME IS NULL:2011/09/14(水) 15:01:52.24 ID:???
ディレクトリ変更や一時ファイルで対応など手法はあるね。

689 :NAME IS NULL:2011/09/14(水) 15:17:15.56 ID:???
どうでもいいよ。下らん。

690 :NAME IS NULL:2011/09/14(水) 16:05:16.33 ID:???
間にcgiはさんでリファ見ればいいだけ

691 :NAME IS NULL:2011/09/15(木) 01:09:13.52 ID:???
>>683
ありがとう
PDO使ってる分には関係ないってところか

692 :NAME IS NULL:2011/09/15(木) 22:46:58.61 ID:???
xampp使ってるんですがどんなにがんばってもERROR 1045のAccess Deniedが出てきてmysqlにアクセスできません
ぐぐって外国のフォーラムもみましたがよくわかりませんでした
よくわからないなりにmysqladminでみたところuserもhostもNo defaul valueとなっています
どうすればいいですか

693 :NAME IS NULL:2011/09/15(木) 22:58:02.35 ID:???
error 1045ってこれでしょ?
ttp://mysql.deikou.com/pages/000060.html


694 :NAME IS NULL:2011/09/15(木) 23:48:19.41 ID:???
なるほどありがとうございました

695 :NAME IS NULL:2011/09/17(土) 01:08:02.62 ID:???
お安い御用です。

696 :NAME IS NULL:2011/09/20(火) 00:49:38.33 ID:uKJl/+/o
indexの概念がイマイチわかりません。
遅くなる時、また再構築が必要なケースの認識があっているか教えてください。

遅くなる時
INSERT、DELETEを実行した時

再構築が必要
ALTER TABLEなどテーブルの構造に変更があった時

697 :NAME IS NULL:2011/09/20(火) 02:02:19.18 ID:???
MySQLのINDEXはALTER TABLEのあと再構築とかしなくていいよ
ていうかALTER TABLEのときにINDEXも再構築される

698 :NAME IS NULL:2011/09/20(火) 02:06:52.44 ID:uKJl/+/o
>>697
なるほど、了解しました。
ありがとうございます。

699 :NAME IS NULL:2011/09/20(火) 03:57:12.57 ID:???
お安い御用です。

700 :NAME IS NULL:2011/09/20(火) 09:56:46.47 ID:???
>>697
これは知らなかった。
有益な情報ありがとうございます。

701 :NAME IS NULL:2011/09/20(火) 12:33:21.33 ID:???
お安い御用です。

702 :NAME IS NULL:2011/09/20(火) 16:14:53.05 ID:???
というか、テーブルの構造が変わったら
INDEXも変えなきゃ意味がないでしょ

703 :NAME IS NULL:2011/09/20(火) 16:26:02.65 ID:???
そうとも限らない

704 :NAME IS NULL:2011/09/20(火) 18:57:50.06 ID:???
>>702
Oracleで半べそかいて来い

705 :NAME IS NULL:2011/09/20(火) 19:50:52.79 ID:???
ここってoracleスレだっけか

706 :NAME IS NULL:2011/09/21(水) 15:25:44.61 ID:???
Oracleが動いてるサーバーにMySQLを同居させることってできますか?
サーバーっていってもWindowsXP機でどちらのDBも月間1万件くらいのデータを扱う程度の規模。

707 :NAME IS NULL:2011/09/21(水) 15:38:36.05 ID:???
なぜできないと思うのかそれが聞きたい

708 :NAME IS NULL:2011/09/21(水) 19:23:33.59 ID:???
できるできないってより悪影響あるのかな。
こんなバカなことやってる人って他にいるのかな?

ってことです。

709 :NAME IS NULL:2011/09/21(水) 20:05:17.78 ID:???
SELECTするときにGROUP BYでまとめて、HAVINGで条件付けをしています。
HAVINGしたものと、していないもののCOUNTが等しい場合のみ結果を返すようにしたいのですが、
HAVINGしたものと、してないものを2つ書いてCOUNTするしかないのでしょうか?

710 :NAME IS NULL:2011/09/21(水) 20:35:37.82 ID:???
OracleとMySQLを同居させるくらい昔からよくあること。

711 :NAME IS NULL:2011/09/21(水) 20:36:08.50 ID:???
>>709
つか、それが等しくならない場合ってあるか?
どんなクエリ書いたんだ?

712 :NAME IS NULL:2011/09/21(水) 20:52:39.18 ID:???
>>708
そりゃ悪影響はあるよ、メモリを喰うとか。

713 :NAME IS NULL:2011/09/21(水) 21:19:21.09 ID:???
>>709
HAVINGのところでHAVINGで書いてる条件とCOUNTの条件を比較すればいいんじゃね

714 :708:2011/09/21(水) 22:25:04.38 ID:???
>711, 713
ありがとうございます。

SELECT id FROM Table1 WHERE id IN (SELECT tbl1_id FROM Table2 WHERE name = 'hoge')
GROUP BY num HAVING (SUM(num2) + 5) <= (SELECT base FROM Table2 WHERE id = tbl2_id));

こんな感じのSQLで、
Table1をnumでまとめて、num2の合計と任意の数の和がTable2のbase以下になるものをとり出しています。
このHavingの条件で限定する前のTable1のCount(id)と限定したあとのTable1のCount(id)が等しい時のみ、
Table1のidを返すようにしたいです

715 :NAME IS NULL:2011/09/21(水) 22:43:52.84 ID:???
また嘘SQLの犠牲者が…

716 :NAME IS NULL:2011/09/21(水) 23:04:50.10 ID:???
>>714

mysqlあんまり使わないから分からないけどそんな感じのクエリ通るのか?
SQLからだと取得したいデータの形がわからないけど
HAVINGのところで比較するのが難しいならCASE式でやってみたらどう

SELECT
CASE WHEN sex = (SUM(num2) + 5) <= (SELECT base FROM Table2 WHERE id = tbl2_id)) THEN id
ELSE NULL END
FROM Table1
WHERE id IN (SELECT tbl1_id FROM Table2 WHERE name = 'hoge')
GROUP BY num

みたいな感じで

717 :NAME IS NULL:2011/09/21(水) 23:07:51.46 ID:???
まちがえた

SELECT
CASE WHEN (SUM(num2) + 5) <= (SELECT base FROM Table2 WHERE id = tbl2_id)) THEN id
ELSE NULL END
FROM Table1
WHERE id IN (SELECT tbl1_id FROM Table2 WHERE name = 'hoge')
GROUP BY num

みたいな感じで


718 :NAME IS NULL:2011/09/22(木) 23:55:27.75 ID:???
percona-toolkit試した人いません?
自分には全然分かりませんでした
どんな感じで、利用方法など聞いてみたいです

719 :NAME IS NULL:2011/09/23(金) 04:31:22.59 ID:???
全然分からないんだから豚に真珠。
あきらめろ。

720 :NAME IS NULL:2011/09/23(金) 06:06:06.34 ID:???
ひどい

721 :NAME IS NULL:2011/09/23(金) 18:39:25.38 ID:???
外部キーを指定すると、カラムに格納できる値が親テーブルに格納されている
値に制限されると書いてあったのですが、実際にやってみるとどのような値でも
格納出来てしまいます。

指定方法がおかしいのか、何か別の理由があるのか教えて頂けないでしょうか。
よろしくお願いします。

722 :NAME IS NULL:2011/09/23(金) 18:50:40.06 ID:???
お安い御用です。

723 :NAME IS NULL:2011/09/23(金) 19:23:46.83 ID:???
全然分からないんだから豚に真珠。
あきらめろ。

724 :NAME IS NULL:2011/09/23(金) 20:16:12.22 ID:???
ひどい

725 :NAME IS NULL:2011/09/23(金) 20:27:01.33 ID:???
>>721
NOT NULLになってないんじゃないの?

726 :NAME IS NULL:2011/09/23(金) 23:27:25.70 ID:???
>>721
そんな都合のいいことが出来るわけないだろ

727 :NAME IS NULL:2011/09/23(金) 23:39:24.65 ID:???
>>721
MyISAMだと無視される

728 :NAME IS NULL:2011/09/24(土) 01:27:29.80 ID:???
そんなバカな

729 :NAME IS NULL:2011/09/24(土) 07:20:47.47 ID:???
調べてご覧よ。

730 :NAME IS NULL:2011/09/24(土) 13:03:31.60 ID:???
ひどい

731 :NAME IS NULL:2011/09/24(土) 15:20:03.52 ID:???
これが自然の掟だ。

732 :NAME IS NULL:2011/09/24(土) 15:41:32.94 ID:???
そんなバカな

733 :NAME IS NULL:2011/09/24(土) 17:13:13.98 ID:???
そんなバナナ

734 :NAME IS NULL:2011/09/24(土) 17:42:06.13 ID:???
丸ごとバナナ

735 :NAME IS NULL:2011/09/24(土) 20:01:27.34 ID:???
まるでバナナ

736 :NAME IS NULL:2011/09/24(土) 20:43:51.77 ID:tDBc0TKq
またとお思いでしょうが、MySQLのライセンスについて教えてください。
MySQLを会社のイントラネットのサーバーに入れて
Webを使って技術情報検索に使おうと思っています。

MySQLのGPLライセンスとしては
-----------------------------------
http://www.softagency.co.jp/products/mysql/license/
もしあなたがMySQLを使ったソフトウェアを開発し、他の人に配布しようとしている場合、
それは有料、無料、評価版、製品版にかかわらず、あなたの開発したソフトウエアをGNU GPLに従い
配布するつもりがなければ、コマーシャルライセンスの購入が必要となります。
------------------------------------------
とあるので、その検索ソフトウェア(PHPで書くつもりです)は
「欲しい人には渡さなければならない」わけですが
 手に入れた人が社外にばらまく事を禁止してはならない わけですかね?

(逆に言えば、社外にばらまいてもいいよ、と宣言すれば、GPLライセンスでMySQLを使っても
かまわないってことですかね?まぁそんな事するヤツはいないと信じてますがw)



737 :NAME IS NULL:2011/09/24(土) 21:27:12.19 ID:???
配布しなきゃいい。
あるいは、MySQLと一緒に配布せず純粋にPHPのコードのみなら
GPL以外のどんなライセンスにするのも自由だ。

738 :NAME IS NULL:2011/09/24(土) 22:31:54.04 ID:???
>その検索ソフトウェア(PHPで書くつもりです)は
>「欲しい人には渡さなければならない」わけですが

違うよ。
その検索ソフトを他者/他社に配布するかどうかは任意。

739 :NAME IS NULL:2011/09/24(土) 23:21:31.42 ID:???
>>738
しかし配布した相手にはソースコードを公開する義務があるわけだな

740 :NAME IS NULL:2011/09/25(日) 00:07:56.26 ID:???
どういう接続方法を採るかにもよる。
>>736のページは知っていてわざとなのか、ただ「使う」としか書いていない。
ライブラリとして接続する場合は、GPLに抵触する可能性があるから、CLが必要(であろう)。
が、ネットワーク接続のような使用方法であればGPLには抵触しないから、CLは必要ない。

741 :NAME IS NULL:2011/09/25(日) 00:10:29.27 ID:???
あ、ごめん。
後者は、CLを買う必要もないし、ソース公開する義務もない、ってことね。

742 :771:2011/09/25(日) 00:20:43.14 ID:???
さすがオラクル汚い

743 :NAME IS NULL:2011/09/25(日) 00:42:08.16 ID:???
>>740
すいません。ちょっと問題を変えます。

http://www.softagency.co.jp/products/mysql/license/
のフローチャートによれば
Webベースでデータベースの登録、クエリを行う場合は問題ないとして、
たとえばExcelVBAみたいなものでMySQLに接続するマクロをつくり、
日本のあちこちの事業所に「このマクロでうちのサーバーにアクセスしてね」
と、そのマクロを配布する場合は

あなたの開発したソフトウェアが動作するためにはMySQLが必要ですか
↓Y
そのソフトウェアを他の人に配布しますか?
↓Y
そのソフトウェアのソースコードを引き渡しますか?
↓Y
そのソフトウェアの改変と再配布を誰でも無制限に許可しますか?
↓Y
GPLでご利用になれます

となるので、
そのソフトウェアの改変と再配布を誰でも無制限に許可しますか?
に「はい」と答える為には、
「社外の人間に、『これ、うちの社で作ったマクロだけど、便利だからあげる』と言ってあげてもいいよ」
と言わないとダメなんですかね?



744 :NAME IS NULL:2011/09/25(日) 00:49:29.48 ID:???
>>743
そうです。受託開発ならまず間違いなく問題ありません。

745 :NAME IS NULL:2011/09/25(日) 01:21:44.65 ID:???
GPLを遵守してばら撒いてもいい、ということと
社員就業規則を遵守し会社の機密情報を漏らすな、っていうのを
両方伝えればいいんだよ

746 :NAME IS NULL:2011/09/25(日) 02:59:36.07 ID:???
うちの会社には機密情報は存在しません。
個人情報についても全て公開するのが会社の方針です。

747 :NAME IS NULL:2011/09/25(日) 03:00:15.68 ID:???
間違と問題って似てる

748 :NAME IS NULL:2011/09/25(日) 08:44:38.47 ID:???
だから、そのフローチャートは
>あなたの開発したソフトウェアが動作するためにはMySQLが必要ですか
初っ端のこの文章が曖昧過ぎて、フローが意味をなしてない。

GPLでは、もともとのプログラムに「改変」して二次配布する場合に、ソース公開の義務を伴うわけだから、
ただ単にGPLなソフトを使うプログラムについては、その義務はないし、ライセンスもGPLにする必要がない。

まあ、VBA経由ってことなら、ライブラリを直接リンクすることもないはずだから、問題ないでしょ。


749 :NAME IS NULL:2011/09/25(日) 09:01:11.70 ID:???
>>748
>GPLでは、もともとのプログラムに「改変」して二次配布する場合に、ソース公開の義務を伴うわけだから、
>ただ単にGPLなソフトを使うプログラムについては、その義務はないし、ライセンスもGPLにする必要がない。

全くもってそう思うのですが、ちゃんと問い合わせないとダメですかね?
なんかわざと曖昧にして、ミスリード誘っているような気もするw




750 :NAME IS NULL:2011/09/25(日) 09:03:35.90 ID:???
GPLを理解してないどころか日本語も理解できないのか…

751 :NAME IS NULL:2011/09/25(日) 09:37:24.33 ID:???
>>750
どの部分の日本語を指して言っているのか、詳しくプリーズ


752 :NAME IS NULL:2011/09/25(日) 10:15:49.36 ID:???
>>749
何度回答をもらっても信じないなら質問すんなよ。

753 :NAME IS NULL:2011/09/25(日) 12:19:47.34 ID:???
>>751
>>748が「動作するためにMySQLを必要としないソフトウェアである場合を弾く」ためのフローだと
理解してない事に対して言ったのよ

更にGPLを理解してないと言ったのは以下のように
> GPLでは、もともとのプログラムに「改変」して二次配布する場合に、ソース公開の義務を伴うわけだから、
「改変」と「ソースコードの要求」の二つの権利をごっちゃにしたような
ありもしない制約を説明していたからな

754 :NAME IS NULL:2011/09/25(日) 13:21:19.64 ID:???
a

755 :NAME IS NULL:2011/09/25(日) 13:54:25.65 ID:???
GPLとかそういう問題じゃないんじゃないの?

http://www-jp.mysql.com/about/legal/licensing/index.html
Web サイト、企業 IT、行政機関 IT での使用:
これらのお客様に対しては、包括的なサブスクリプションサービスの MySQL Enterprise を用意しています。

つまり、企業ITな人はMySQL Enterprise を使え ってはっきり書いてあるじゃん。



756 :NAME IS NULL:2011/09/25(日) 13:57:05.99 ID:???
http://d.hatena.ne.jp/kurosaka/20071214/p1
>、企業ユーザは100% MySQL AB社にライセンス費用を支払わなければならない感じ。

これが正しいんじゃないの?


757 :NAME IS NULL:2011/09/25(日) 14:03:14.90 ID:???
>>755
その文章は、「企業向けにMySQL Enterpriseを『用意して』いる」と書いてあるだけで、
「企業はMySQL Enterpriseの使用を義務付ける」とは書かれていない。
つまり企業でもMySQL Enterpriseを使用するかどうかは任意と読み取れる。

758 :NAME IS NULL:2011/09/25(日) 14:03:58.43 ID:???
>>755
書いてねーよ

759 :NAME IS NULL:2011/09/25(日) 14:04:56.21 ID:???
>>756
誰が書いたかもわからん個人のブログの記述を盲目的に信じるなって言ってんだろ

760 :NAME IS NULL:2011/09/25(日) 14:15:57.63 ID:???
>>759
横から失礼。
手元の本(誰が書いたかはわかっているw)にも
「企業内で使用するような場合はコマーシャルライセンスが必要となることがあります。」
と書いてある。どんな場合かはっきり書きたくはないらしいw


761 :NAME IS NULL:2011/09/25(日) 14:59:28.05 ID:???
>>760
この場合の「誰か」ってのは、名前とかそういうことじゃなくて、
MySQL(オラクル)の公式見解かどうかが重要ってこと。
それ以外の誰が何と発言しようと想像の域を出ないだろ。

762 :NAME IS NULL:2011/09/25(日) 16:10:40.55 ID:???
遅いクエリを、事前にキャッシュに入れておく方法ない?
データの更新は早朝の朝一のみなんで、出来ればバッチででもキャッシュに入れときたいんだが。

763 :771:2011/09/25(日) 16:48:56.36 ID:???
GPLスレと聞いて。
元のソフトウェアを改変する場合にのみソース公開は必要で、
使うだけならそんな事しなくて良いはずなんだが。

764 :NAME IS NULL:2011/09/25(日) 16:55:15.48 ID:???
それがどうした。そんなことみんなわかってるよ。

765 :NAME IS NULL:2011/09/25(日) 17:39:57.74 ID:???
>>763
http://www.softagency.co.jp/products/mysql/license/
の解読をするスレですw


766 :NAME IS NULL:2011/09/25(日) 17:40:24.71 ID:???
改変したかどうかは関係ない。
問題は(元のGPLソフトウェアと一体のものとして)配布するかどうか、だ。

767 :NAME IS NULL:2011/09/25(日) 17:42:27.78 ID:???
それがどうした。そんなことみんなわかってるよ。

768 :NAME IS NULL:2011/09/25(日) 17:50:41.11 ID:???
質問者が失踪したので終了しないか?
結局何を調べるのかわかんなくなったぞ。

769 :NAME IS NULL:2011/09/25(日) 17:52:59.74 ID:???
それがどうした。そんなことみんなわかってるよ。

770 :NAME IS NULL:2011/09/25(日) 18:04:56.26 ID:???
>>768
実は気になっていることなので、結論を知りたいのが正直なところ。
イントラネットで使う場合、どう転んでも商用ライセンスなんていらないだろ
と思っていたんだが、正直自信なくなってきたw

GPL汚染に関しての問題とは思うんだが
>そのソフトウェアを他の人に配布しますか?

この設問の書き方はズルイと思うんだよな。


771 :NAME IS NULL:2011/09/25(日) 18:12:36.46 ID:???
ずるいというか、そのくらい自分で判断できない奴は
おとなしくコマーシャルライセンス買っとけって話だな。

772 :NAME IS NULL:2011/09/25(日) 18:29:21.58 ID:???
わざと曖昧にしておくのもオラクルの商売のやり方


773 :NAME IS NULL:2011/09/25(日) 19:11:19.36 ID:???
ただのスタンドアローンサーバとして使うだけなら、何も心配することはない。
そもそも、ライブラリのリンクについても、「改変」に当たるかどうか微妙な問題だ。
これについて、GPL違反で裁判に訴えたところで勝てるかどうか怪しい。
もちろん、面倒除けにCLを買うというのは、使う側の勝手であるが。

774 :NAME IS NULL:2011/09/25(日) 19:39:46.21 ID:???
wikipediaに
「* MySQLを改造するわけではなく、プロセス間通信として、MySQLに接続し、利用する場合は、
そのソフトウェア自体はGPL以外のライセンスで配布して良い。」

という記述があると聞いて、おーと思ったが

http://ja.wikipedia.org/w/index.php?title=MySQL&diff=29314853&oldid=29223151

で削除されている。

お察し下さい。


775 :NAME IS NULL:2011/09/25(日) 20:02:49.27 ID:???
>>774
これはたぶん間違って消しちゃったんだな。
あとで戻しといてあげよう。

776 :NAME IS NULL:2011/09/25(日) 20:03:29.11 ID:???
-
* MySQLを改造するわけではなく、プロセス間通信として、MySQLに接続し、利用する場合は、そのソフトウェア自体はGPL以外のライセンスで配布して良い。

-
* 自社開発でMySQLを改造し、自社のWebサーバで利用する場合には、ソースコードの開示は行わなくて良い。GPLによるソースコードの開示を求める権利を有するのは、ソフトウエアを入手したものという解釈による。Webサービス利用者にはこれは当てはまらない。

これらがダメなら、Linux上のプロプラなソフトはみーんなアウトだ。
もちろん、Oracleもだw

777 :NAME IS NULL:2011/09/25(日) 20:21:23.31 ID:???
>>775
ライセンスに関する出典を必要とする箇所を記述。)

で消したので、出典を明記しないとダメよん


778 :NAME IS NULL:2011/09/25(日) 20:49:05.60 ID:???
>>777
出展はGPLにしとくよ。

779 :NAME IS NULL:2011/09/25(日) 21:02:31.40 ID:???
GPLの規定がどうなっているかが問題なんじゃなくて、
どのような場合にGPLが適用されるか、オラクルの説明が明確でないのが問題なんだろ

780 :NAME IS NULL:2011/09/25(日) 21:06:55.57 ID:???
デュアルライセンスだからGPLを選べばGPLが適用されるが?

781 :NAME IS NULL:2011/09/25(日) 21:59:30.01 ID:???
>>779
GPLの方を使えばGPLが適用されるので心配ゴム用

782 :NAME IS NULL:2011/09/25(日) 22:00:53.53 ID:???
そうなんだがGPLを選択するために満たすべき条件が曖昧なんだろ

783 :NAME IS NULL:2011/09/25(日) 22:34:10.02 ID:???
こいつは何を問題にしてるんだ?
GPLを選択するために満たすべき条件はGPLに従うことであって、
それ以上でもそれ以下でもないが?

784 :NAME IS NULL:2011/09/25(日) 23:15:50.79 ID:???
>>783
GPLのMySQLに接続するプログラム(VBでもPythonでもなんでもいいけど)は
GPLじゃなきゃダメ(配布するなら、そのソースの無制限の再配布を認める)
っていう意味に読めるような文言をMySQLのオフィシャル代理店が言っているので
もめている。



785 :NAME IS NULL:2011/09/25(日) 23:20:18.50 ID:???
そもそもMySQLに接続するプログラムの配布条件にまでMySQLが口を出すのがおかしな話だよな。
MySQLと同時配布しようがしまいが、MySQLとは独立したプログラムのライセンス形態は
MySQLには関係無いと思うけどな。
例えばOSのAPIを利用するアプリのライセンス形態までOS側が口を出すなんて聞いたことがない。

786 :NAME IS NULL:2011/09/26(月) 19:57:58.68 ID:???
>>784
もめているというより、GPLをよく理解せず、その代理店の書いたいいかげんな
文章を勝手に解釈してわめいている奴が一人いるだけだな。

787 :sage:2011/09/26(月) 20:41:24.72 ID:NnYmgY1c
>785
だがそれがMySQLのライセンスなのです。
http://dev.mysql.com/doc/refman/5.6/en/introduction.html
にはGPLって書いているけど、
http://www.mysql.com/about/legal/licensing/oem/
を読むと、商用ソフトとMySQLを組み合わせて配布(combine and distribute)するなら
商用ライセンスが必要とあります。

788 :NAME IS NULL:2011/09/26(月) 20:41:38.38 ID:???
>>786
そもそも代理店がいいじゃげんな文章を書いちゃダメでしょう(苦笑)


789 :NAME IS NULL:2011/09/26(月) 20:44:53.13 ID:???
>>787
MySQLは自分でダウンロードしてインストールしてね

って書いておけばOKなん?


790 :NAME IS NULL:2011/09/26(月) 20:49:22.25 ID:???
MySQLへのFOSSライセンスなPHPは
http://www-jp.mysql.com/about/legal/licensing/foss-exception/
PHP License 3.0/3.01 なんだ罠


791 :NAME IS NULL:2011/09/26(月) 21:52:28.59 ID:???
>>784
WindowsもGPLになるとかありえないでしょ。問題ないよ。

792 :787:2011/09/26(月) 22:11:12.78 ID:???
>789
私はOracleじゃないんで確実なことはわからないです。
が、そのページには商用ディストリビュータとOSSプロジェクトの両方のニーズを
満たすべくデュアルライセンスでMySQLを提供しているとあり、
OSSプロジェクトのほうはアプリをGPLで配布することが前提となっています。
そちらに該当しないなら商用ライセンスが必要だろうというのが私の見解です。
配布しなきゃOKなのかもしれないですが、ライセンス違反だと叩かれて評判落とす
リスクは避けたいし。
それにMySQLも今やOracleの所有物ということで有償じゃないと使えない拡張も出てきてます。
http://blogs.oracle.com/MySQL/entry/new_commercial_extensions_for_mysql
というわけで私が選ぶならMySQLではなくPostgreSQLにします。

793 :NAME IS NULL:2011/09/27(火) 00:15:47.12 ID:???
いやいまどきPostgreは無いだろ・・・
グローバル的にも性能的にも・・・

794 :NAME IS NULL:2011/09/27(火) 00:26:12.73 ID:???
>>793
MySQLのライセンスがアレだから、企業ではPostgreに流れているのは事実(当社比)


795 :NAME IS NULL:2011/09/27(火) 01:06:41.60 ID:???
まあいいんじゃない?
ばかがMySQLのライセンスが…と定期的に騒ぎ立てる頻度が減れば

796 :NAME IS NULL:2011/09/27(火) 01:38:04.55 ID:???
>>793
Postgreって性能低いの?
少し前まではMySQLより上かと思ってたけど・・・

797 :NAME IS NULL:2011/09/27(火) 01:52:49.28 ID:???
Postgreのが機能多くて速度遅かったでしょ
最近はほぼ同じってかMySQLがストレージエンジンごとに性格変わるから一概に評価出来ない

798 :NAME IS NULL:2011/09/27(火) 02:53:47.81 ID:???
てことは、最近のpostgresはMySQLと速度は同等で機能は上ってこと?

799 :NAME IS NULL:2011/09/27(火) 04:52:30.15 ID:lyJNJV9x
すみません、質問させてください
ubuntu10.10で、MySQLを使用しているのですが、
sudo /etc/init.d/mysql start としても、
start: Job is already running: mysql と出て起動しなくなりました。
ps auxw | grep "mysql" などしても、mysqldは起動していません。

・・・どうすれば、起動するようになるでしょうか・・・

800 :NAME IS NULL:2011/09/27(火) 07:45:08.41 ID:???
>>799
たぶん/etc/init.d/mysql内でロックファイル作っていてそれが残っているんじゃないの?
/etc/init.d/mysqlの中身を見てロックファイル名を調べて消してみたら?

801 :NAME IS NULL:2011/09/27(火) 09:50:04.42 ID:???
MySQL.comのWebサイトに不正なコード 闇市場でroot権限も販売か
http://www.itmedia.co.jp/enterprise/articles/1109/27/news027.html

802 :NAME IS NULL:2011/09/27(火) 09:56:14.32 ID:???
>>792
なんなんだ、こいつはw
だいたい、MySQLの場合は、GPL版とCL版でものが違うじゃないか。

803 :NAME IS NULL:2011/09/27(火) 12:01:01.70 ID:???
>>801
そういや昨日>>790のURLを開いたらなぜかJAVAが起動しておかしいと思った。
感染したのかな?

804 :NAME IS NULL:2011/09/27(火) 13:58:13.69 ID:???
昨日マニュアル見たけど
プラグインとJavaScriptは切ってた。
こういうとき何のアナウンスもないものなの?

805 :NAME IS NULL:2011/09/27(火) 15:14:28.42 ID:???
企業の体質によるだろ

806 :NAME IS NULL:2011/09/27(火) 21:29:39.35 ID:???
>>801
やべぇ、最近頻繁に訪れていたから感染してるかも・・・
Windowsの場合、MSEssensialしか入れてないけどやっぱ感染してるかな?
まぁLinuxで訪れてるんだけどやっぱ駄目ですかね?
特にウィルス対策ソフトは導入していませんが

807 :NAME IS NULL:2011/09/27(火) 22:08:14.63 ID:???
JavaとかFlashの慨知脆弱性だろ?多分
Windowsの各プラグインが最新版なら大丈夫じゃね?

808 :NAME IS NULL:2011/09/27(火) 22:29:59.70 ID:???
慨知ってなんだ・・・?

809 :NAME IS NULL:2011/09/27(火) 22:39:12.63 ID:???
おおざっぱに知ってんだろ。

810 :NAME IS NULL:2011/09/28(水) 00:23:42.00 ID:???
お前ら

一回問い合わせろ
で結果を晴れ

又聞きや妄想はイラン
実際のソースがないと信じない


811 :NAME IS NULL:2011/09/28(水) 00:37:35.11 ID:???
とりあえずコレがおおもと?
ttp://blog.armorize.com/2011/09/mysqlcom-hacked-infecting-visitors-with.html

812 :NAME IS NULL:2011/09/28(水) 01:43:57.53 ID:???
>>808
「慨知」でググると真面目そうなサイトでも使われてるのが恐い。
2ch用語の「ガイシュツ」の悪影響でしょうか。

>>809
「慨」は「憎らしい」とか「いまいましい」という意味みたいです。
「おおざっぱ」なら「概知」ですかね。

813 :NAME IS NULL:2011/09/28(水) 19:16:49.91 ID:AOJXD0O8
プログラム板で聞こうか迷ったのですが質問させてください

mixiで新着のコメントがあった場合、
コメント(1) みたいな表示で新着コメント数が表示され、コメントを確認すると
その表示が消えています
これはどうやって実現するのが良いでしょうか
DBのコメント用のテーブルに checkedカラムを用意してデフォルトを0として、
閲覧時(select時)にchecked=1としてupdateするくらいしか思いつかないですが
他にどんなやり方があるでしょうか?

また、上記の方法だとするとクエリを2つ実行するってことですよね?
トランザクションさせることになるんでしょうか
まとめて一つのクエリでコメント一覧の引き出し+updateなんて出来ないですよね?

mysql5を使っています、ご意見お願いします

814 :NAME IS NULL:2011/09/28(水) 19:57:42.34 ID:???
読んだ最新コメントの日時を記録、かな?
次回は、その日時より新しいコメントがいくつあるか、と。

よくわからん。

でも、そういうのはMySQL特有のことではないから、
ム板とか、この板でもDB設計スレとかの方が適切じゃなかろか。

815 :NAME IS NULL:2011/09/28(水) 20:39:14.11 ID:???
>>813
そのコメントを見る可能性のある(例えば)100人のうち一人でも見たら
表示済みとしてしまっていいの?w

普通そういうクラ側でどう扱うか、というだけの問題ならクッキーとかでやればいいんじゃないの

816 :NAME IS NULL:2011/09/28(水) 20:39:38.16 ID:???
>>814
なるほど、そういう発想はなかったです!
勧めていただいたスレで質問し直してみます、ありがとうございました

817 :813:2011/09/28(水) 20:44:05.35 ID:???
>>815
あ、説明不足ですみません
mixiなどの会員機能前提で、その会員ユーザー向けのコメントなのでその人だけが確認すればOKなんです
しかし今>>814さんの仕様を考えたら、コメントが複数ある場合、全部確認してなくても
一つだけ確認しただけで未読フラグが落ちることになりそう…
難しい、やっぱり個別にフラグ持たせるしかないのかな。何個もクエリ実行させるのは嫌なんだけどなぁ

818 :NAME IS NULL:2011/09/29(木) 09:06:53.99 ID:???
table A (
  name_id autoincrement,  #key
  name   varchar(50)   #名前
);

table B (
  id   autoimcrement,  #key
  friend int,       #味方ID
  enemy  int       #敵ID
);


friendもenemyも同じAマスターを参照しています。
外部ジョインで
select 味方の名前, 敵の名前 from A left join B on ???? where B.id = ?
と書きたいのですがうまくいきません。
どうよに書けばいいでしょうか?





819 :NAME IS NULL:2011/09/29(木) 09:21:11.23 ID:???
SELECT friendtable.name, enemytable.name
FROM A AS friendtable, A AS enemytable, B
WHERE B.id = ? AND B.friend = friendtable.name_id AND B.enemy = enemytable.name_id

じゃあかんの?

820 :NAME IS NULL:2011/09/29(木) 09:46:56.59 ID:???
>>819
ありがとうございます。
join句がありませんが、これは外部結合となるのでしょうか?あるいは内部結合となるのでしょうか?

なぜこんな質問をするのかと言いますと、
別のテーブルを参照させる場合は常にjoin句を使用するものと思い込んでいて
join句を使わないでも表現できることは知っていたのですが、このように書くべきという考えに至りませんでした。





821 :NAME IS NULL:2011/09/29(木) 10:13:56.25 ID:???
WHEREんとこでjoinされてるよ。内部結合。

にしても、場合に拠るだろうけど、818だけしか見てない者としては、
friendとenemyは別テーブルに分けたい気持ちがむらむらと。

822 :NAME IS NULL:2011/09/29(木) 10:28:30.50 ID:???
>>821
ありがとうございました。


823 :NAME IS NULL:2011/09/29(木) 10:39:38.81 ID:???
>>820
内部結合になる
外部結合したいときは
WHERE B.id = ? AND B.friend = friendtable.name_id(+) AND B.enemy = enemytable.name_id(+)
と、私ならする(本当はJOIN句使ったほうがいいんだろうけど、こっちのが見やすいし慣れてる)

MySQLで動くかどうかは知らんw
動くの?

824 :NAME IS NULL:2011/09/29(木) 12:15:16.95 ID:???
(+)
↑これはオラクル方言だと思う。

825 :NAME IS NULL:2011/09/29(木) 15:10:10.65 ID:0dZz+iVY
phpmyadminがいろいろとめんどくさいんだけど、
phpmyadminに代わってオススメのもんってみなさんありますか?

826 :NAME IS NULL:2011/09/29(木) 16:37:46.37 ID:???
有料でよければnavicat
一応無料版もあるけど機能制限はされてる
でも無料版でも十分かもしれない

827 :NAME IS NULL:2011/09/29(木) 17:29:39.46 ID:???
家で無料版のnavicat使ってるよ
かなり便利

828 :NAME IS NULL:2011/09/29(木) 19:06:42.99 ID:???
自分はSequelPro.

829 :NAME IS NULL:2011/09/29(木) 20:18:22.04 ID:???
ソースコードからLinuxにインストールすると、デフォルトではmysql.sockは/tmp内に存在し、my.cnfもそうなっております
で、この場合は一般ユーザhogeでも端末にてコマンドラインで
$ mysql -u root -p
等とするとアクセスできていたのですが、わけあって
./configureにて--with-unix-socket-path=/var/lib/mysql/mysql.sockを付けmy.cnfも変えたらrootユーザ以外はアクセスできなくなりました
hogeユーザでアクセスすると、
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)
となります
srwxrwxrwx. 1 mysql mysql 0 mysql.sock
でパーミッションの問題だと思い、hogeをmysqlグループに入れたり、
setfacl -m u:hoge:rwx /var/lib/mysql/mysql.sock
等としたのですがダメでした
どのようにすればhogeユーザにてmysqlにアクセス出来るようになるのでしょうか?


830 :NAME IS NULL:2011/09/29(木) 20:21:21.12 ID:???
まずは/var/lib/mysql/*.errを見てみたほうがいい。

831 :NAME IS NULL:2011/09/29(木) 23:57:45.10 ID:???
navicatは金払ってでも買うべし。
コレなしでは仕事できん。

832 :NAME IS NULL:2011/09/30(金) 01:23:20.29 ID:???
じゃぁしなくていいよ
弘法筆を選ばず

833 :825:2011/09/30(金) 01:29:08.40 ID:QSvmWJiP
みんなありがとう
navicatが評判だけど、個人ではあっても一応駆け出しの商用だから
まだ今の段階ではフリーだと助かります
よろしかったらフリーのおすすめを語ってください

834 :NAME IS NULL:2011/09/30(金) 03:01:16.66 ID:???
フリーのソフトの情報をタダで手に入れようとは虫が良すぎる

835 :NAME IS NULL:2011/09/30(金) 08:09:15.16 ID:???
navicatみたけどsqlもちゃんと使えるのかな
Mysql workbench の方がよくないかな

836 :NAME IS NULL:2011/09/30(金) 10:40:38.84 ID:???
shellとmysqlコマンドがあれば何でも出来るよ

837 :NAME IS NULL:2011/09/30(金) 14:44:13.51 ID:???
>>835
無料版でも使える。有料版だとER図書くみたいな感じでSQL作れるのが便利。

838 :NAME IS NULL:2011/09/30(金) 19:56:54.30 ID:???
navicatくらい会社で買ってもらえるでしょ?
フリーがいいとかって、どんだけ貧乏な会社なの?
評価版があるんだし、評価してよかったら買えよ

839 :NAME IS NULL:2011/09/30(金) 20:32:46.17 ID:???
>個人ではあっても一応駆け出しの商用
つまりSOHOやら起業まもないって事だろ


840 :NAME IS NULL:2011/09/30(金) 20:55:57.39 ID:???
2chに書き込んで、真偽の定かで無い文字を追いかける起業…

841 :NAME IS NULL:2011/09/30(金) 20:58:44.31 ID:???
SOHOだろーと便利なものは買えといいたい。
嫌ならフリーのもあるんだからそれを使いな。

842 :NAME IS NULL:2011/09/30(金) 21:06:54.88 ID:???
金が無いし、フリーソフトを自分で試すのも面倒だからここで聞くとか
そんなヤツやphpMyAdmin使ってればいいじゃないか

843 :NAME IS NULL:2011/09/30(金) 22:07:03.75 ID:???
あれはあれで便利なんだが
ファイル1本で済むのがあれば便利だよな

844 :NAME IS NULL:2011/09/30(金) 22:29:27.99 ID:???
MySQL WorkBenchは、なぜ不人気なのか?

845 :NAME IS NULL:2011/09/30(金) 22:49:19.15 ID:???
>>844
ださい
インストールがめんどい
使い勝手が悪い
遅い
たまに固まる

846 :NAME IS NULL:2011/09/30(金) 22:49:34.47 ID:???
知らん

847 :NAME IS NULL:2011/09/30(金) 22:51:58.50 ID:???
MySQL Workbenchいいよ!
フリーだし
今のところ不満はない

848 :NAME IS NULL:2011/09/30(金) 23:18:20.48 ID:???
Workbenchはexeのあるディレクトリにいろいろ放り込みすぎ
あと画面描画がチラつくとか時々2回押さないと反応しないとか

849 :NAME IS NULL:2011/10/01(土) 00:10:22.67 ID:???
Workbench
使い方がわからん

850 :NAME IS NULL:2011/10/01(土) 07:58:57.20 ID:???
あっそ

851 :NAME IS NULL:2011/10/01(土) 08:44:04.42 ID:ltbhW3+b
別の場所にデータベースがある場合のマウント方法を教えてください

データベースはデフォルトの /var/lib/mysql/ にあるのですが、
データベース「mydata」を作成し、/var/lib/mysql/ から /home/hogehoge/ に移動。
/var/lib/mysql には、/home/hogehoge/mydata のシンボリックリンクを作ったのですが、
うまく読み込めませんでした・・・

デフォルトの/var/lib/mysql から変更せずに、別場所に移動したデータベースはどのようにすればうまく読み込めるでしょうか?

852 :NAME IS NULL:2011/10/01(土) 09:01:36.26 ID:???
OSのmysqlユーザが/home/hogehogeにアクセスできないんじゃないの
恒久対処にすると危ないのでいかんけど
$ chmod -R 777 /home/hogehoge
してみるとか

853 :851:2011/10/01(土) 09:27:12.79 ID:???
>>852
返信ありがとうございます

hogehoge自体は755で、
その下に、mydataディレクトリが保存されてる状態です。
mydataディレクトリは、所有者はmysqlで、パーミッション700
権限的には問題ないと思うのですが・・・

854 :NAME IS NULL:2011/10/01(土) 10:35:42.15 ID:???
MySQLって1秒間に100回更新されるような状況でも大丈夫なんでしょうか?
SQLiteとかでは不可能なのですが

855 :NAME IS NULL:2011/10/01(土) 10:38:39.45 ID:???
1000回だろうが1万回だろうがハードウェアの処理能力が追いつけば問題ないだろ

856 :NAME IS NULL:2011/10/01(土) 10:52:37.67 ID:???
処理中に他の処理が働いても大丈夫とかそういうことか?

857 :NAME IS NULL:2011/10/01(土) 11:34:18.08 ID:???
>>854
最短の更新間隔を設定できなかったっけ?

858 :851:2011/10/01(土) 17:36:28.11 ID:???
すみません!
自己解決できました
ありがとうございました

859 :NAME IS NULL:2011/10/01(土) 20:23:30.23 ID:???
どうやって解決したのか書いたら?

860 :NAME IS NULL:2011/10/01(土) 21:11:03.17 ID:???
いるよな、質問とか相談しに来たのに相手に一言もしゃべらせないで、
一歩的にマシンガントークして、そのうち満足して帰って行くやつ。

861 :851:2011/10/01(土) 21:49:30.60 ID:???
解決方法は、AppArmorの権限設定でした
全員の環境に当てはまるとは限らないと思いますけど、
ubuntuではデフォルトでAppArmorの設定をしないとアクセスできないようになってますね

862 :NAME IS NULL:2011/10/01(土) 21:49:34.00 ID:???
>>860
問題解決にはうってつけの方法なんだよな。
相手に質問するために状況を把握しまとめる過程で
原因を見つけることは多い。
本来はまずテディベアに語りかけるべきなんだけど
その点2chは淫乱テディベアなのでうってつけだ。

863 :NAME IS NULL:2011/10/01(土) 22:03:32.05 ID:???
AppArmorが原因だったのか。
参考になったけど参考にならんな

864 :NAME IS NULL:2011/10/01(土) 22:35:07.06 ID:???
>>862
何故そこでテディベア?
日本人なら別の物だと思うが?

865 :NAME IS NULL:2011/10/01(土) 23:18:10.70 ID:???
>>864
確かに。日本人ならグルーミーか赤カブトだね。

866 :NAME IS NULL:2011/10/03(月) 14:18:12.22 ID:???
CREATE TABLEのときの「KEY `hoge` (`hoge`)」とは何でしょうか?

PRIMARY KEY (`id`)
UNIQUE KEY `username` (`username`)
などはわかりますが「KEY」の意味がわかりません

867 :NAME IS NULL:2011/10/03(月) 14:46:03.79 ID:???
>>866
パーティショニングじゃなくて?
「KEY `hoge` (`hoge`)」だけでなく create table 文の全文を書き出してみなよ

868 :NAME IS NULL:2011/10/03(月) 14:50:54.90 ID:???
>>867
調べていたら「パーティショニング」という単語も出てきましたが
何か違うような気がします。以下CREATE TABLE文です

CREATE TABLE `tbl_users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(128) NOT NULL,
`email` varchar(128) NOT NULL,
`activkey` varchar(128) NOT NULL DEFAULT '',
`createtime` int(10) NOT NULL DEFAULT '0',
`lastvisit` int(10) NOT NULL DEFAULT '0',
`superuser` int(1) NOT NULL DEFAULT '0',
`status` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`),
KEY `status` (`status`),
KEY `superuser` (`superuser`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;


869 :NAME IS NULL:2011/10/03(月) 14:56:54.05 ID:???
>>868
あぁ、そりゃただのINDEXだね。マヌアルにも書いてあるよ。
http://dev.mysql.com/doc/refman/5.1/ja/create-table.html
「KEY は通常 INDEX の同義語です。」

870 :NAME IS NULL:2011/10/03(月) 15:05:32.95 ID:???
理解しました。リンクまでありがとうございます。

KEY `varname` (`varname`,`widget`,`visible`)
では上記は、複合インデックスってことですか?


871 :NAME IS NULL:2011/10/03(月) 15:15:28.02 ID:???
そのとおり。

872 :NAME IS NULL:2011/10/03(月) 15:16:43.14 ID:???
助かりました。ありがとうございました!

873 :NAME IS NULL:2011/10/05(水) 09:41:25.03 ID:???
お安い御用です。

874 :NAME IS NULL:2011/10/05(水) 23:40:34.71 ID:???
すごい素人な質問をさせてください。

文字列を格納するのに、charとかvarcharがありますが、
個人的には文字列は全部text型でいいのではないかと思うんですが、
間違いでしょうか?
こういう場合はcharを使うとか、この場合はvarcharを使うべきとかいったような使いどころについて教えていただけますでしょうか。


875 :NAME IS NULL:2011/10/05(水) 23:48:22.67 ID:???
>>874
間違いではないよ。
サイズ指定するとその幅をあらかじめ確保したり
それ以上格納できなくなったりするから、計算しやすく
DBサイズ固定化したり動作を早くしたりできるだけ。

876 :>>874:2011/10/06(木) 00:39:46.79 ID:???
>>875
ありがとうございます、とても参考になりました。


877 :NAME IS NULL:2011/10/06(木) 04:21:20.44 ID:???
実際に挿入する文字数に最適化したほうがいいだろ。
varcharとtext、インデックスつけても同じように扱われる?

878 :NAME IS NULL:2011/10/06(木) 04:38:02.06 ID:???
ある種のフラグのような固定されたサイズのカラムにtext使うのは如何かと。


879 :NAME IS NULL:2011/10/06(木) 10:50:11.61 ID:???
10年以上前ならともかく、今のシステムで固定長って意味あるのかねぇ

880 :NAME IS NULL:2011/10/06(木) 10:57:34.23 ID:???
一応、あるんじゃね?
絶対固定長とわかっていて、わざわざ可変長を使うメリットはないだろ。

881 :NAME IS NULL:2011/10/06(木) 12:04:00.79 ID:???
顧客コードとか商品コードとか固定長のほうがプログラム側が楽になると思うけど

882 :NAME IS NULL:2011/10/06(木) 12:44:31.01 ID:???
>>881
DBがハックされたりバグったときのことを考えてプログラム側に自衛の対策をしとくのは基本中の基本。
データを固定長と決め付けてプログラム側が楽になるなんて考えるのは素人の発想。

883 :NAME IS NULL:2011/10/06(木) 13:29:56.86 ID:???
本当のプロは冗長な設計はしない

884 :NAME IS NULL:2011/10/06(木) 13:32:58.22 ID:???
>>882
>DBがハックされたりバグったときのことを考えてプログラム側に自衛の対策をしとくのは基本中の基本。
可変長だとどういう風に有効な対策になるの?

885 :NAME IS NULL:2011/10/06(木) 13:45:50.31 ID:???
最大長の変更がありそうな物以外だと無駄な事の方が多い気がするんだけど

886 :NAME IS NULL:2011/10/06(木) 13:58:46.78 ID:???
そりや可変長のが無駄なんだけど、
固定長でも頭をスペースとか0で埋めるのは変わらないし、
ヌルチェックは昨今の言語ならライブラリ用意されてるし
再利用性を鑑みて冗長な設計、作成が昨今のトレンド

固定長はCOBOL向け?

887 :NAME IS NULL:2011/10/06(木) 14:14:37.03 ID:???
>再利用性を鑑みて冗長な設計、作成が昨今のトレンド
こんなの幻想に過ぎないだろ

888 :NAME IS NULL:2011/10/06(木) 14:34:23.32 ID:???
>>883
セキュリティ対策を軽視するのはプロとは言えない

889 :NAME IS NULL:2011/10/06(木) 14:51:25.33 ID:???
セキュリティ対策と冗長な設計の関係を詳しく


890 :NAME IS NULL:2011/10/06(木) 15:22:48.50 ID:???
セキュリティ対策は冗長な設計とは言わないだろう
むしろ必然

891 :NAME IS NULL:2011/10/06(木) 16:52:00.97 ID:???
セキュリティは対策しても無駄・・・最後は人間のモラルに行き着く。
人間の教育や待遇にお金を使うのがもっとも効果的である。

と死んだじ〜ちゃんが言ってた。

892 :NAME IS NULL:2011/10/06(木) 17:01:37.90 ID:???
それは内部の人のうっかりミスや裏切りによる情報漏えいとかの話であって
外部からの攻撃には教育は関係ないんじゃなかろうか。

893 :NAME IS NULL:2011/10/06(木) 17:03:19.56 ID:???
東京電力みたいなやつだな

894 :NAME IS NULL:2011/10/06(木) 18:08:38.57 ID:???
東京電力を馬鹿にする奴は泣かす

895 :NAME IS NULL:2011/10/06(木) 18:11:00.82 ID:???
>>891
教育の改善で治安が保てるなら警察は不要。
人民は教育しても無駄だから社会秩序は実力行使で維持すべきである。

と死んだじ〜ちゃんが言ってた。

896 :NAME IS NULL:2011/10/06(木) 18:52:57.68 ID:???
教育のない警察官が多くいたら治安は思いっきり悪くなる。
警察官には教育と高給が必要である。

と死んだじ〜ちゃんが言ってた。

897 :NAME IS NULL:2011/10/06(木) 19:14:24.18 ID:???
規則を遵守しない警察官には見せしめに厳罰を与えれば抑止効果となる。
一般大衆に対しても同様であるから公開処刑を導入すべきである。

と死んだじ〜ちゃんが言ってた。

898 :NAME IS NULL:2011/10/06(木) 21:44:36.62 ID:???
とりあえず、全部varcharでおk

とは、死んだばーちゃんは言ってなかったな。

899 :NAME IS NULL:2011/10/08(土) 15:41:53.18 ID:???
ばーちゃんは嘘つきだから信用するな。
嘘つきは泥棒の始まりといいますから。

900 :NAME IS NULL:2011/10/08(土) 18:30:21.77 ID:???
おまえらったらどうでもいい部分に突っかかるよなwwww

901 :NAME IS NULL:2011/10/08(土) 18:58:16.63 ID:???
こういうことをどうでもいいと考えるのは悪いことです。

902 :NAME IS NULL:2011/10/09(日) 13:43:54.09 ID:KZLSnT9p
すいません質問です。

INSERT文がエラーもなくクエリOKになるんですが
データを見てみるとINSERTされていません。。

特定のテーブルだけこうなるんですが
なにが原因か分かる方いませんでしょうか

903 :NAME IS NULL:2011/10/09(日) 13:53:08.51 ID:???
Insert文が使用してるデータを疑ってみたら?

904 :NAME IS NULL:2011/10/09(日) 13:54:31.21 ID:???
コミットしてないとか。

905 :NAME IS NULL:2011/10/09(日) 14:00:02.29 ID:???
>>903
昨日の昼までは問題なくINSERTされていたのですが
昼以降INSERTされなくなっているんです。
テーブルは変更してないのでSQLは問題ないはずなんですが・・。

>>904
してますます

906 :NAME IS NULL:2011/10/09(日) 14:22:47.93 ID:???
昨日の昼までできたとか言われても知るかよ

907 :NAME IS NULL:2011/10/09(日) 14:28:18.89 ID:???
>>902
・DBが壊れた(HDD、メモリの故障)→ ハードをチェックして修理しDB再構築
・メモリ異常でロード中のMySQLが異常動作→ ハード修理、MySQL再起動
・プログラムのミス(SQL文生成ミス)→ デバッグして生成されたSQL文を確認、MySQLのエラーメッセージを確認
・勘違い


908 :902:2011/10/09(日) 14:39:32.92 ID:???
>>906
ですよねですよね。

>>907
ハードはテストしてみましたが問題なさそうです。
SQLはデバックして実行直前のSQLを直接実行しましたが
クエリおkだったので問題ないっぽいんですが・・。
クエリおkなのにデータはいってないってどゆこと・・。

909 :NAME IS NULL:2011/10/09(日) 14:58:31.08 ID:???
もうディスク一杯とか。

910 :NAME IS NULL:2011/10/09(日) 15:17:03.27 ID:???
ごちゃごちゃ言っとらんと、そのInsert文とデータをサンプルで良いから晒せっての
それとそのテーブルの定義、strict-modeの設定とか

911 :902:2011/10/09(日) 15:21:27.31 ID:???
定義です。
CREATE TABLE `t_A` (
`AID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`B` int(10) unsigned NOT NULL,
`C` tinyint(3) unsigned NOT NULL,
`D` smallint(5) unsigned NOT NULL,
`E` datetime NOT NULL,
`F` tinyint(3) unsigned NOT NULL,
`G` tinyint(3) unsigned DEFAULT '0',
`H` varchar(10) DEFAULT '',
`I` varchar(500) DEFAULT '',
`J` datetime DEFAULT '0000-00-00 00:00:00',
`K` datetime DEFAULT '0000-00-00 00:00:00',
`L` smallint(5) unsigned DEFAULT '0',
PRIMARY KEY (`AID`)
) ENGINE=InnoDB AUTO_INCREMENT=1102 DEFAULT CHARSET=utf8



912 :NAME IS NULL:2011/10/09(日) 15:29:36.87 ID:???
>>902
INSERT IGNORE INTO
      ↑
      これがついてるとエラー無視するよ

913 :902:2011/10/09(日) 15:43:50.50 ID:???
ああ。データベース再インスコしてるんでちょっと時間かかります・・。

>>912
ついてないですです。

今気づいたんですがAUTO_INCREMENT=1102って実データより進んでますね・・
なんでだろー・・

914 :NAME IS NULL:2011/10/09(日) 16:34:34.56 ID:???
なんの言語かわからないけど、まずsqlのまえにprintかなにかでinsertしてる変数を出力してみたら

915 :NAME IS NULL:2011/10/09(日) 17:15:47.00 ID:???
発行されるINSERT文は出力して別で実行してみてもうまくいかないんじゃないの?

916 :902:2011/10/09(日) 17:37:52.86 ID:???
INSERT文

insert into aionz.t_打電 (B,C,D,E,F,G,H,I,J,K,L) values(
00000920,
1,
1,
'2011-10-09 17:22:11',
10,
8,
'',
'\r\n',
now(),
now(),
1
)

917 :902:2011/10/09(日) 17:41:03.05 ID:???
TruncateしてからCSVにしといたデータを1件ずつInsert
ここまでは問題なくInsertできるのに
システムで1回でもInsertするとその後は同じ症状になる。

どっかで変なSQL発行してんのかなぁ・・
SQL発行してるとこ全部見直すかぁ・・

918 :NAME IS NULL:2011/10/09(日) 18:27:56.62 ID:???
わかった。
INSERT文を発行してない という驚愕のオチだこれ。

919 :902:2011/10/09(日) 18:29:57.09 ID:???
oh..新発見

truncateしてテーブル空っぽにして
システム動かしたらちゃんとInsertされてる・・

容量・・・?とか・・・?
MySqlって容量はOSとかストレージに依存でしたよね?

ちょっとずつデータ増やして実験してみます

920 :902:2011/10/09(日) 18:42:29.24 ID:???
わかっちゃいました・・・。
あの・・・WorkBench使ってるんですが・・・・その・・・
どうやらWorkBenchってデータ表示が1000件までっぽい・・・

Descで表示したらデータちゃんと入ってますやん・・・・・・・

ごめんなさいごめんなさいごめんなさい米絵七笹示唆さしあああああああああああああああああああああああ
ふざけんなあああああああああああおれの1日を返せええええええええええええええええええええええええええええええ

921 :NAME IS NULL:2011/10/09(日) 19:18:19.36 ID:???
WorkBenchでデータの確認をしているのですが
1000件目以降データが入ってないみたいなんです

って感じで最初に付け加えておくともっと早かっただろうに・・・

922 :NAME IS NULL:2011/10/09(日) 19:31:12.34 ID:???
     .∩_∩ ミ ギャーッハッハッハッ!
 o/⌒(. ;´∀`)つ 
  と_)__つノ  ☆ バンバン




923 :NAME IS NULL:2011/10/09(日) 20:42:11.60 ID:???
やった!当たったぜ

924 :NAME IS NULL:2011/10/09(日) 21:16:04.63 ID:???
まぁ大抵そういうもの
気にスンナ

925 :NAME IS NULL:2011/10/09(日) 22:04:08.23 ID:???
エスパーする前に
「意図した結果になっていないことをどのように確認したか?」
って聞けばいいのね。
勉強になるわー

926 :NAME IS NULL:2011/10/09(日) 22:05:12.81 ID:???
それではエスパー失格です

927 :NAME IS NULL:2011/10/09(日) 23:10:20.04 ID:???
>>925
そこをピンポイントで想像するのがエスパーだろ

928 :NAME IS NULL:2011/10/10(月) 00:55:57.23 ID:???
これ正解出来てたらもうジェダイレベルだろ。

929 :NAME IS NULL:2011/10/10(月) 00:59:33.67 ID:???
事実正解した人がいるじゃないか→>>923

930 :NAME IS NULL:2011/10/10(月) 01:21:17.24 ID:???
後からならどうとでも言える

931 :NAME IS NULL:2011/10/10(月) 01:30:12.55 ID:???
>>930
そのセリフこそ負け犬の遠吠えに聞こえる

932 :NAME IS NULL:2011/10/10(月) 03:06:17.27 ID:???
月曜日から日曜日
0時から24時までを
true falseのbooleanフィールドを用意するとしたら
1つのテーブルの中に
@7 x 24 = 合計168フィールド+リレーションキー
を用意したほうがいいですか?

それとも
A日ごとの24フィールド + 1(曜日) + 1(リレーションキー)の合計26フィールド

Bまたは時間ごとの
1(時間)フィールド+1(曜日)+1(リレーションキー)
の3フィールド

@は一つのテーブルで簡潔できるがフィールド数多すぎ

Bはレコードが増えすぎる


どれが一番現実的ですか?


933 :NAME IS NULL:2011/10/10(月) 03:31:47.73 ID:???
なにがしたいのかがわからんけどCharでいれてSubstringって手もある。

用途がわかればもうちょっと答えようもあるお

934 :NAME IS NULL:2011/10/10(月) 03:39:59.03 ID:???
>>933
ユーザー(パートさん)ごとの24時間体制スケジュールを作ろうと思ってます

出勤できる曜日の時間帯は1(true)
出来ない日は0(false)

月 火 水 木 金 土 日
0 0
1 1
...
23 23
24 24
※ここでの数字は時間帯で、それぞれにチェックボックスがある

みたいな表にアクセスしてもらって、
そこでチェックを入れてもらって
どの曜日のどの時間は1か
というものを管理したいです。

935 :NAME IS NULL:2011/10/10(月) 06:55:50.99 ID:???
DBのお作法としてはB

936 :NAME IS NULL:2011/10/10(月) 08:41:55.73 ID:???
DBにする必要がないだろ・・・パート職員は何人いるんだよ?
どうしてもって言うなら一番で十分だと思うが。

937 :NAME IS NULL:2011/10/10(月) 09:12:36.24 ID:???
>>932
Bかな。

保存日数 * 24 * 人数

多けりゃ履歴を消せばいい

938 :NAME IS NULL:2011/10/10(月) 11:31:22.62 ID:???
>>934
別にフィールド数もレコード数も多すぎはしないだろ
プログラミングが楽な方法にしろよ

939 :NAME IS NULL:2011/10/10(月) 22:54:49.06 ID:???
全角の英数字を半角になおしたいです。
replace関数で一文字一文字変換するしか思いつきませんが、
他に簡単な方法はないでしょうか?


940 :NAME IS NULL:2011/10/10(月) 23:18:04.05 ID:???
プログラム側でやっておけばいいと思うが

941 :NAME IS NULL:2011/10/10(月) 23:24:39.01 ID:???
>>932が真偽値でテーブルつくるってユーザーごとにテーブルつくる気なのかなと思ってオカンがはしった

942 :NAME IS NULL:2011/10/11(火) 01:17:05.35 ID:???
>>939
もし、条件として全角半角を区別せずに検索したということならutf8で
WHERE a COLLATE utf8_unicode_ci LIKE '%アイウエオ%';
フィールドがutf8ではない場合はCONVERTして
WHERE CONVERT(a USING utf8) COLLATE utf8_unicode_ci LIKE '%アイウエオ%';
こんな感じでいけると思うよ
条件だけじゃなかったら>>940

943 :NAME IS NULL:2011/10/11(火) 22:59:54.53 ID:GnT2+shh
質問です。

mysqlのトランザクションは、開始してから一分ぐらいでタイムアウトするかと思うんですが、
1分以上かかるようなSQLでトランザクションを使いたい、という場合、
どうするべきなんでしょうか?


944 :NAME IS NULL:2011/10/11(火) 23:49:27.22 ID:???
>>940 >>942
ご回答ありがとうございます。全角から半角にupdateで
変更できたらとおもっていましたが、mysql側ではできない
みたいですね。プログラム側で行ってみます。
ありがとうございました。

945 :NAME IS NULL:2011/10/12(水) 01:15:21.88 ID:???
>>943
トランザクションはタイムアウトしないぞ。
ロック待ちのことなら最初に設定すればよい

mysql> set innodb_lock_wait_timeout = 1000;
Query OK, 0 rows affected (0.00 sec)

946 :NAME IS NULL:2011/10/12(水) 15:51:29.65 ID:???
MySQL初心者です。
id time name score の4つのカラムがあるテーブルから
以下の条件のデータを取得したいのです。

1.スコアが低い順で並べる(スコア=クリアタイムのため)
2.同じスコアがあれば、rankの値が並ぶ(2位が2人とか)
3.同じ名前であれば、最新のスコアと最も良いスコアの以外を省く
4.現在から24時間以上古いものは省く

timeはunixtimeで、名前は文字列、スコアはただの数値です。
すべてMySQLでできることなのではないかなとおもって実践しているのですが
経験不足なため、そこはPHPでやったほうがいいなど、根本的な指摘などあったら
そちらも含めてご伝授いただきたいです。

よろしくお願いいたします。

947 :NAME IS NULL:2011/10/12(水) 16:02:26.02 ID:???
>>946
このへんを見て。(要登録)
http://codezine.jp/article/detail/3107?p=3

948 :NAME IS NULL:2011/10/12(水) 22:40:36.51 ID:???
>>947
MySqlで分析関数あるのかーと思ってみたけどやっぱないのか。
select の中でサブクエリってどうなの?っていつも思うんだけどどうなの処理速度的に。

イメージでは1件に対して1回SQL発行するからすごい処理時間かかりそうなんだけど・・
そのへんどうなの教えてエロい人

949 :NAME IS NULL:2011/10/12(水) 23:35:19.50 ID:???
質問です。

データベースを更新するときは、普通にトランザクションを使いますが、
参照する場合もトランザクションって使うものなのでしょうか?
時間のかかるデータ集計のSQLを実行しようと思っているのですが、
その間に更新されても影響がないようにしたいのです。

参照する場合もトランザクションを使う場合、終了する場合はコミットですか?ロールバックですか?
基本的な質問ですみませんが、よろしくご教示お願いいたします。m(_ _)m


950 :NAME IS NULL:2011/10/12(水) 23:49:51.63 ID:???
>>949
データ集計が1つのSQLならトランザクションいらない。
複数のSQLを駆使する必要があるなら最初に
START TRANSACTION WITH CONSISTENT SNAPSHOT;
する。
最後はコミット/ロールバックどちらでもよい。

951 :NAME IS NULL:2011/10/13(木) 03:04:12.54 ID:???
わからんー。たすけてくれー。

# mysql -u ユーザー名 -p -h ホスト名 DB名 < c:\mysql\data\insert.sql

すると

bash: c:mysqldatainsert.sql: そのようなファイルやディレクトリはありません

て言われるー

mysql> use DB名
Database changed

mysql> SOURCE c:\mysql\data\insert.sql

すると

ERROR:
Failed to open file 'c:\mysql\data\insert.sql', error: 2

て言われるー。でもcドライブのmysqlフォルダ無いのdataフォルダ内にinsert.sqlは確実にある。

.sqlファイルを読み込ませたいだけなんやー。なんがダメなんやー。
文字コードはutf8にして改行コードもLFで統一してるー。
後何を試せばよいですか皆さん助けてー。とりあえず風呂いって眠気冷まし的亜MS宇。

952 :NAME IS NULL:2011/10/13(木) 03:57:02.67 ID:???
>>951
>bash: c:mysqldatainsert.sql

ディレクトリ構成からするとWindowsで使ってるように見えるんだけど、DOSプロンプトじゃなくてbashということはCygwinかMSYSあたりで使ってる?

だとしたら、Cygwinなら

/cygdrive/c/mysql/data/insert.sql

のような形にすればいけるかも。

953 :NAME IS NULL:2011/10/13(木) 04:18:51.89 ID:???
>>952
基本情報ごっそり抜けて済みません。
自分はwinXPprofetnolで操作してまして、アップロード希望先のサーバは
DTIで借りてるserversman@vpsです。操作はteraterm様で行っています。
teratermの代わりにCygwinを使うの早速やってみます。ありがとうございます。
Cygwinて昔、何かで触って以来です。自信んっしん。


954 :952:2011/10/13(木) 04:45:20.33 ID:???
>>953

つまり
・SQLファイル = 自PCのデスクトップ
・DB = VPS
・VPSへの接続 = Teraterm
ですよね。

それだとCygwin使っても状況は変わらない。

mysql> SOURCE c:¥mysql¥data¥insert.sql
はTeraterm上の(つまりVPS上の)ファイルを見に行くわけだから当然該当ファイルは無いわけだし、

# mysql -u ユーザー名 -p -h ホスト名 DB名 < c:¥mysql¥data¥insert.sql
も先頭が#なところからしてTeraterm上(=VPS)で行ってるだろうから、これもだめ。


955 :NAME IS NULL:2011/10/13(木) 04:49:17.19 ID:???
ものすごい基礎の基礎を見逃していてお恥ずかしいというか
先ずsqlファイルをどうにかしてvpsサーバへ送り込まないとならんわけですね
そう。それがffftpで何故か送れなくて(重すぎる?)アレなのでした。
ちょっと寝て起きたら移送方法をちゃんと調べます。展開は間違ってない富田。
どうもありがとう。

956 :952:2011/10/13(木) 04:51:47.57 ID:???
>>953
というわけで、恐らく一番簡単な正解は
「SQLファイルをVPSにアップロード」ではないかと。

VPSに
/home/{953のユーザ名}/insert.sql
の形でアップロードして、

# mysql -u ユーザー名 -p -h ホスト名 DB名 < /home/{953のユーザ名}/insert.sql

でいけると思う。
要は、サーバ側で作業するならサーバ側にSQLファイル置こうねって事です。

WindowsにMySQLクライアントインストールしてるなら、「DOSプロンプト上から(つまり自端末から)」
mysql -u ユーザー名 -p -h ホスト名 DB名 < c:¥mysql¥data¥insert.sql
すれば行けると思うけど、自分はやったことない。



957 :952:2011/10/13(木) 05:00:25.41 ID:???
あーそうですね、955 の理解であってると思いますw

serversmanかFFFTPに固有の事情があるのかもしれないけど、自分はさくらVPSでマカーなのでその辺はよくわからないや。
軽いファイルや空ファイルでチェックするのが早そうだけど、この辺はMySQLの話題ではなくなるのでこの辺で。




958 :NAME IS NULL:2011/10/13(木) 16:43:18.88 ID:???
serversmanは自分で設定しないかぎりftpd動いてないだろ
scpしろ

959 :NAME IS NULL:2011/10/13(木) 19:46:17.43 ID:???
Datetime型のフィールドについて、現在より30分前のものという条件でセレクトしたいときはなにを使うべきでしょうか?

960 :NAME IS NULL:2011/10/13(木) 22:20:14.73 ID:???
> なにを使うべきでしょうか?

どういう意味?

961 :NAME IS NULL:2011/10/13(木) 23:29:49.52 ID:???
>>959
WHEREを使って30分前を指定してあげればいい。

>>960
こうやって回答してあげるのが楽しいんだ。

962 :>>949:2011/10/14(金) 00:38:48.89 ID:???
>>950
ありがとうございます!


963 :NAME IS NULL:2011/10/14(金) 00:58:18.63 ID:???
お安い御用です。

964 :NAME IS NULL:2011/10/14(金) 11:42:27.21 ID:???
次スレの季節

965 :NAME IS NULL:2011/10/14(金) 17:59:16.90 ID:???
>>959
ヒント:time_add(), between, now()

966 :NAME IS NULL:2011/10/14(金) 20:21:57.26 ID:???
>>959
30分前ってことは、現在時からジャスト30分0秒前、ってことだよね。

967 :NAME IS NULL:2011/10/14(金) 21:06:34.14 ID:bpCxU2Us
商品Aが複数カテゴリ(別テーブルにて定義、それをJOIN)に入ってる場合に
こんな感じで帰ってくるんだけどこれでいいの?初めての設計でよくわからない。

itemId ... categoryId
A ... 4
A ... 5
A ... 6

見た目上は商品名とかの ... が何度も繰り返しされてるようで気持ち悪い。
内部的に何らかの最適化が行われてるといいんだけど、他にいい方法があるのかな?

それと、PHPで利用する場合にこのレコードを順に走査していって、前回と同じIDなら
そのIDに対してカテゴリを追加って具合で大丈夫?

968 :NAME IS NULL:2011/10/14(金) 22:42:02.24 ID:???
>>967
DB設計としては合ってる

969 :NAME IS NULL:2011/10/15(土) 00:07:10.62 ID:???
あってない。
DB設計を勉強しましょう

970 :NAME IS NULL:2011/10/15(土) 00:09:19.70 ID:???
PHPで順に操作とかアホのやること

971 :NAME IS NULL:2011/10/15(土) 00:15:02.00 ID:???
PHPで順に捜査とか天才のやること

972 :NAME IS NULL:2011/10/15(土) 00:19:06.26 ID:???
多対多ならこの構成でいいんじゃないの?


973 :NAME IS NULL:2011/10/15(土) 00:49:52.46 ID:???
DB設計でならあってる

974 :NAME IS NULL:2011/10/15(土) 01:57:06.43 ID:???
見た感じ多対多じゃなくて1対多じゃね?

975 :NAME IS NULL:2011/10/15(土) 02:53:00.03 ID:???
用途がまったく想像できますん

976 :NAME IS NULL:2011/10/15(土) 04:08:26.76 ID:???
あんたに想像してもらいたくない

977 :NAME IS NULL:2011/10/15(土) 08:51:15.28 ID:???
>>967
とあるものが複数カテゴリに属してるなら、そうなって当たり前だろ。

978 :NAME IS NULL:2011/10/15(土) 11:29:45.03 ID:???
当たり前かどうかは当人の価値観に依存する

979 :NAME IS NULL:2011/10/15(土) 12:44:19.61 ID:???
じゃあ定石で

980 :NAME IS NULL:2011/10/15(土) 13:23:04.59 ID:???
>>978
エゴだよそれは!

981 :NAME IS NULL:2011/10/15(土) 13:23:57.55 ID:???
>>979
囲碁だよそれは!

982 :NAME IS NULL:2011/10/15(土) 17:13:01.24 ID:???
>>979
うちの上司、定石って名前

983 :NAME IS NULL:2011/10/15(土) 17:36:40.88 ID:???
うちのは力石

984 :NAME IS NULL:2011/10/16(日) 00:51:29.64 ID:???
SNSサイトを作っているのですが、DBに投稿した日記(Text)の冒頭部分のみを取り出すにはどうすればいいでしょうか
レコード登録時に冒頭部分のみのカラムを作るのも効率が悪い気がしてきて・・


985 :NAME IS NULL:2011/10/16(日) 01:08:39.27 ID:???
>>984
LEFTとか使えば

986 :NAME IS NULL:2011/10/16(日) 04:33:08.68 ID:???
>>985
LEFT関数中々便利ですね
Textを全文取り込んで文字列操作するよりもメモリが節約できそうです
ありがとうございます

987 :NAME IS NULL:2011/10/16(日) 10:23:50.69 ID:???
お安い御用です。

988 :NAME IS NULL:2011/10/16(日) 16:00:22.56 ID:???
>>983
エコだよそれは!

989 :NAME IS NULL:2011/10/17(月) 11:47:51.56 ID:???
id         int
category_id   int
post_date     datetime
comment     varchar(255)
count       int           5.1 MyISAM

100万件以上あるテーブルで、
数種類あるカテゴリ別に月単位でcountの多い順に20件集計したいのですが、
どこにインデックスをつけたらいいですか?

試してみたところcategory_idとcountの複合インデックスが一番早かったのですが、
もっと早くなるいい付け方はないでしょうか

990 :NAME IS NULL:2011/10/17(月) 12:31:52.03 ID:???
サマリ作る

991 :NAME IS NULL:2011/10/17(月) 13:55:34.01 ID:???
>>989
yyyymmってカラムを追加して
(category_id, yyyymm, count)というインデックスを作り、

SELECT ... FROM ttt
WHERE category_id = aaa AND yyyymm = bbb
ORDER BY count DESC LIMIT 20;

をcategory_id分繰り返すのが速い。
けど先月分まで確定してるならあらかじめサマリ作っておけばいい

992 :989:2011/10/17(月) 16:35:11.66 ID:???
ありがとうございます。試してみます。

993 :NAME IS NULL:2011/10/17(月) 19:37:54.55 ID:???
お安い御用です。

994 :NAME IS NULL:2011/10/17(月) 21:53:50.84 ID:???
次スレまだ?

995 :NAME IS NULL:2011/10/17(月) 22:34:26.88 ID:???
このスレで終了します。

996 :NAME IS NULL:2011/10/18(火) 13:37:28.52 ID:???
次はオラクルに統合だな

997 :NAME IS NULL:2011/10/18(火) 15:28:11.52 ID:???
お安い御用です。

998 :NAME IS NULL:2011/10/18(火) 18:45:05.84 ID:???
oracleのexpressedition入れたら、めちゃ重たくなったんで、それは嫌

999 :NAME IS NULL:2011/10/18(火) 19:55:18.22 ID:???
次スレ

MySQL 総合 Part21
http://hibari.2ch.net/test/read.cgi/db/1318935267/

1000 :NAME IS NULL:2011/10/18(火) 19:55:56.15 ID:???


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

234 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)