私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part18
mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
初心者質問ですみません。
VistaにMySqlのODBCをインストールしようとしています。
mysql-connector-odbc-5.1.6-win32.msiを実行した時は特にエラーもなく終わるのですが、
ODBCアドミニストレータでDSNを追加しようとすると「ドライバのセットアッププログラムが
見つかりません」「レジストリでコンポーネントが見つかりません」というエラーになります。
(レジストリエディタにはMySQL AB\MySQL Connector/ODBC 5.1 というのはあります)
気になったのが、ODBCアドミニストレータでドライバを選択するリストで
"MySQL ODBC 5.1 Driver"の情報が名前以外表示されていないことです。
考えられる原因は何で、どうすればDSNを追加できるようになるのでしょうか?
VistaにMySqlのODBCをインストールしようとしています。
mysql-connector-odbc-5.1.6-win32.msiを実行した時は特にエラーもなく終わるのですが、
ODBCアドミニストレータでDSNを追加しようとすると「ドライバのセットアッププログラムが
見つかりません」「レジストリでコンポーネントが見つかりません」というエラーになります。
(レジストリエディタにはMySQL AB\MySQL Connector/ODBC 5.1 というのはあります)
気になったのが、ODBCアドミニストレータでドライバを選択するリストで
"MySQL ODBC 5.1 Driver"の情報が名前以外表示されていないことです。
考えられる原因は何で、どうすればDSNを追加できるようになるのでしょうか?
追記です。
レジストリエディタを見たところ、ODBC\ODBCINST.INI配下にMySQL ODBC 5.1 Driver
というのがあるのですが、オープンエラーになって内容が見れません。
この配下にdllファイルの設定ができるようなので、ここが更新されれば
上手くいくような気がするのですが…
レジストリエディタを見たところ、ODBC\ODBCINST.INI配下にMySQL ODBC 5.1 Driver
というのがあるのですが、オープンエラーになって内容が見れません。
この配下にdllファイルの設定ができるようなので、ここが更新されれば
上手くいくような気がするのですが…
ソース共通だからダウンロードしてくれば商用版ビルドできるよ
ログイン時のメッセージが変わります
ログイン時のメッセージが変わります
http://www.softagency.co.jp/products/mysql/mysql_enterprise/
http://www.softagency.co.jp/products/mysql/price/
高いね・・・
Basicなんて殆ど意味が無いような気もするけど
http://www.softagency.co.jp/products/mysql/price/
高いね・・・
Basicなんて殆ど意味が無いような気もするけど
そうかなぁ、1台だけだとまぁって感じだけど数台ともなるとコストも馬鹿にならないし
もう一人コード書きを雇おうか、ってときの選択肢なんだからこんなもんだろ。
BASICは、サポート代ってより子守代か。
BASICは、サポート代ってより子守代か。
XAMPPをインストールしましたが
5.1.41の日本語化がわかりません
googleで検索してもやりかたがいまひとつ理解できませんでした
5.0.41はできました
my.cnfからmy.iniになってるし、どなたかわかるかたいませんか?
5.1.41の日本語化がわかりません
googleで検索してもやりかたがいまひとつ理解できませんでした
5.0.41はできました
my.cnfからmy.iniになってるし、どなたかわかるかたいませんか?
文字列 '1:00' は 60秒、'1:00:00' は3600秒と解釈させるにはどうしたらいいでしょうか。
select time_to_sec('1:00');
とすると、3600となってしまいますが、これを 60 と解釈してくれるオプションがあればいいのですが。
select time_to_sec('1:00');
とすると、3600となってしまいますが、これを 60 と解釈してくれるオプションがあればいいのですが。
CentOSのMySQLを5.0系から5.1.49にアップデートしました。
そして、service restart mysqldとしたところ、起動せず、ログに以下の記録が残っていました。
100726 18:54:05 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
100726 18:54:50 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
100726 18:54:50 [Note] Plugin 'InnoDB' is disabled.
/usr/libexec/mysqld: Table 'mysql.plugin' doesn't exist
100726 18:54:50 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100726 18:54:50 [ERROR] /usr/libexec/mysqld: unknown option '--skip-bdb'
100726 18:54:50 [ERROR] Aborting
100726 18:54:50 [Note] /usr/libexec/mysqld: Shutdown complete
100726 18:54:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
書いてある通りに、mysql_upgradeをやってみたのですが、
mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect
とでて、起動しませんでした。
どうすれば起動するようになりますか?
そして、service restart mysqldとしたところ、起動せず、ログに以下の記録が残っていました。
100726 18:54:05 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
100726 18:54:50 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
100726 18:54:50 [Note] Plugin 'InnoDB' is disabled.
/usr/libexec/mysqld: Table 'mysql.plugin' doesn't exist
100726 18:54:50 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100726 18:54:50 [ERROR] /usr/libexec/mysqld: unknown option '--skip-bdb'
100726 18:54:50 [ERROR] Aborting
100726 18:54:50 [Note] /usr/libexec/mysqld: Shutdown complete
100726 18:54:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
書いてある通りに、mysql_upgradeをやってみたのですが、
mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect
とでて、起動しませんでした。
どうすれば起動するようになりますか?
更新・参照ともによく使いテーブルがあり、
そのサイズが現在5GBあります。
今後も増える見込みで、10G、20Gと増えていくのですが、
このような場合、テーブルを分けた方が宜しいでしょうか?
具体的には、同じ構造のテーブルに、データのサブカテゴリー別に振り分けるようなイメージです。
DELETE、INSERTを繰り返すため、定期的な最適化が必要で、その為には一つ一つのテーブルが小さい方がメンテナンスを細かく行なうことができるので、メリットがあります。
それと、今後サイズが更に増えた場合、処理速度が落ちないか心配です。
アドバイスを頂けたら幸いです。どうぞ宜しくお願いします。
そのサイズが現在5GBあります。
今後も増える見込みで、10G、20Gと増えていくのですが、
このような場合、テーブルを分けた方が宜しいでしょうか?
具体的には、同じ構造のテーブルに、データのサブカテゴリー別に振り分けるようなイメージです。
DELETE、INSERTを繰り返すため、定期的な最適化が必要で、その為には一つ一つのテーブルが小さい方がメンテナンスを細かく行なうことができるので、メリットがあります。
それと、今後サイズが更に増えた場合、処理速度が落ちないか心配です。
アドバイスを頂けたら幸いです。どうぞ宜しくお願いします。
履歴データとかで、もう参照しないデータなら別テーブルに分ければいいと思うが、
参照するデータを別テーブルに分けて、どうやって運用していくつもり?
メリット以上にデメリットが多いんじゃないの?
参照するデータを別テーブルに分けて、どうやって運用していくつもり?
メリット以上にデメリットが多いんじゃないの?
できました。スマートになりました。
あとは速度的な問題ですが、検証してみたいと思います。
あとは速度的な問題ですが、検証してみたいと思います。
もうひとつお願いします。
SELECT a,b,c FROM table1 where EXISTS (SELECT * from table2 where a=hogehoge)
これは
テーブル table1 のカラムa と テーブル table2 のカラムhogehogeが合致するものを検索
でよかったでしょうか。
よろしくお願いします。
SELECT a,b,c FROM table1 where EXISTS (SELECT * from table2 where a=hogehoge)
これは
テーブル table1 のカラムa と テーブル table2 のカラムhogehogeが合致するものを検索
でよかったでしょうか。
よろしくお願いします。
× SELECT a,b,c FROM table1 where EXISTS (SELECT * from table2 where a=hogehoge)
◯ SELECT a,b,c FROM table1 where EXISTS (SELECT * from table2 where hogehoge=a)
に訂正します。
◯ SELECT a,b,c FROM table1 where EXISTS (SELECT * from table2 where hogehoge=a)
に訂正します。
>>132
評価式の左右がどっちとかRDBMSには関係ないよ
評価式の左右がどっちとかRDBMSには関係ないよ
>>134
オプティマイザに関係してくるでしょ
オプティマイザに関係してくるでしょ
>>136
いやー少なくとも今のバージョンは関係ないと思う
オプティマイザは最初に推移律が成立するものを
ゴリゴリ書き換えて、左右もそのときに直すはず
だけど証拠がないので時間があったらソース確認してみる
いやー少なくとも今のバージョンは関係ないと思う
オプティマイザは最初に推移律が成立するものを
ゴリゴリ書き換えて、左右もそのときに直すはず
だけど証拠がないので時間があったらソース確認してみる
>>131
頂いた内容を拝見しましたが、とても便利な機能ですね。
長く使っていましたが、初耳でした。もしかしてMySQLの開発者の方でしょうか?
大変助かりました。早速来週から使ってみようと思います。
これからも、ご活躍を願っております。
頂いた内容を拝見しましたが、とても便利な機能ですね。
長く使っていましたが、初耳でした。もしかしてMySQLの開発者の方でしょうか?
大変助かりました。早速来週から使ってみようと思います。
これからも、ご活躍を願っております。
初歩的ですみません。
ユーザ情報のテーブルを作成し、フィールドにパスワードの項目を追加したのですが、
SHOW FIELDS FROM [テーブル名];
としたときに、パスワードの列を****のように表示させることはできるのでしょうか?
ぐぐってもMySQLの管理者パスワード関係のものばかりで、うまくヒットしないもので・・・。
ユーザ情報のテーブルを作成し、フィールドにパスワードの項目を追加したのですが、
SHOW FIELDS FROM [テーブル名];
としたときに、パスワードの列を****のように表示させることはできるのでしょうか?
ぐぐってもMySQLの管理者パスワード関係のものばかりで、うまくヒットしないもので・・・。
基本的にはINNER JOINって遅いんですかね?
普通に抽出したものをperlなりphpなりで仕分けしたほうが断然早かったです。
SQLの書き方が悪いのかなぁ
普通に抽出したものをperlなりphpなりで仕分けしたほうが断然早かったです。
SQLの書き方が悪いのかなぁ
INNER JOIN *** ON (a = b)
これだと a=b の条件にマッチしたものをjoinしますが
逆にa = bが成立した場合はjoinしないという方法はありませんでしょうか
!=だとインデックスが使われないので悩んでます
これだと a=b の条件にマッチしたものをjoinしますが
逆にa = bが成立した場合はjoinしないという方法はありませんでしょうか
!=だとインデックスが使われないので悩んでます
いろいろ調べましたらjoinが遅いのではなくて
その後のorder byが遅いのがわかりました。
joinしたものにはインデックスが適用されてないということですね。
joinする前に予めソートしておけばと思うのですが
そのような事は可能でしょうか。
やり方を教えていただけると嬉しいです。
その後のorder byが遅いのがわかりました。
joinしたものにはインデックスが適用されてないということですね。
joinする前に予めソートしておけばと思うのですが
そのような事は可能でしょうか。
やり方を教えていただけると嬉しいです。
効果はあるみたいだよ。 >>143
http://nippondanji.blogspot.com/2009/03/using-filesort.html
ことによっちゃあ数百倍早いんだってさ。
http://www.flatz.jp/archives/2199
http://nippondanji.blogspot.com/2009/03/using-filesort.html
ことによっちゃあ数百倍早いんだってさ。
http://www.flatz.jp/archives/2199
>>142-143
INNER JOIN *** ON (a != b)
これってCROSS JOINしてその大部分の結果を使うのとおなじことでしょ。
そうすると結合に関しては、インデックスは使わないというより使う意味が
ないんじゃないかな。
情報が少ないからエスパー混じるけど、ORDER BYで複数テーブルの
フィールドしているのが原因かと。
>>144読めば分かるけどテーブルを跨いでソートする場合、結合した大き
な結果セットをソートするから遅くなる。
一時テーブル(a, b)を作って、これにインデックスを張っておく。ORDER BY
はこの一時テーブルのを指定して、この一時テーブルに対して結合するように
すれば軽くなるかもしれない。
INNER JOIN *** ON (a != b)
これってCROSS JOINしてその大部分の結果を使うのとおなじことでしょ。
そうすると結合に関しては、インデックスは使わないというより使う意味が
ないんじゃないかな。
情報が少ないからエスパー混じるけど、ORDER BYで複数テーブルの
フィールドしているのが原因かと。
>>144読めば分かるけどテーブルを跨いでソートする場合、結合した大き
な結果セットをソートするから遅くなる。
一時テーブル(a, b)を作って、これにインデックスを張っておく。ORDER BY
はこの一時テーブルのを指定して、この一時テーブルに対して結合するように
すれば軽くなるかもしれない。
アドバイスありがとうございます。
しかしながらやはりjoinよりexists(select~の方が
100倍以上早かったです。
SQLむずかすい;;(同じ結果を抽出するSQLを下に書きました)
(遅い)
SELECT a,b,c FROM t1
INNER JOIN chk ON (Yid = Wid and Mid = '$id')
where a = '1' and b = '2'
order by Time DESC
↓
速い
SELECT a,b,c FROM t1
where
EXISTS (SELECT * from chk where chk.Mid='$id' and chk.Yid = t1.c) and
EXISTS (SELECT * from t1 where a = '1 and b = '1')
order by Time DESC
しかしながらやはりjoinよりexists(select~の方が
100倍以上早かったです。
SQLむずかすい;;(同じ結果を抽出するSQLを下に書きました)
(遅い)
SELECT a,b,c FROM t1
INNER JOIN chk ON (Yid = Wid and Mid = '$id')
where a = '1' and b = '2'
order by Time DESC
↓
速い
SELECT a,b,c FROM t1
where
EXISTS (SELECT * from chk where chk.Mid='$id' and chk.Yid = t1.c) and
EXISTS (SELECT * from t1 where a = '1 and b = '1')
order by Time DESC
訂正します
速い
SELECT a,b,c FROM t1
where
EXISTS (SELECT * from chk where chk.Mid='$id' and chk.Yid = t1.c) and
a = '1 and b = '2'
order by Time DESC
でした。場合によっては1000倍違いました。
速い
SELECT a,b,c FROM t1
where
EXISTS (SELECT * from chk where chk.Mid='$id' and chk.Yid = t1.c) and
a = '1 and b = '2'
order by Time DESC
でした。場合によっては1000倍違いました。
手打ち間違いしてしました。
見にくいので再度張りました。何度もすみません。
(遅い)
SELECT a,b,c FROM t1
INNER JOIN chk ON (Yid = t1.c and Mid = '$id')
where a = '1' and b = '2'
order by Time DESC
↓
速い
SELECT a,b,c FROM t1
where
EXISTS (SELECT * from chk where chk.Mid='$id' and chk.Yid = t1.c) and
where a = '1 and b = '2'
order by Time DESC
見にくいので再度張りました。何度もすみません。
(遅い)
SELECT a,b,c FROM t1
INNER JOIN chk ON (Yid = t1.c and Mid = '$id')
where a = '1' and b = '2'
order by Time DESC
↓
速い
SELECT a,b,c FROM t1
where
EXISTS (SELECT * from chk where chk.Mid='$id' and chk.Yid = t1.c) and
where a = '1 and b = '2'
order by Time DESC
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- MySQL 総合 Part12 (1001) - [94%] - 2008/1/30 17:34 ○
- MySQL 総合 Part13 (996) - [94%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part15 (1001) - [94%] - 2009/4/20 12:15 ☆
- MySQL 総合 Part17 (1001) - [94%] - 2010/6/10 20:47 ○
- MySQL 総合 Part19 (982) - [94%] - 2011/6/9 2:33
- MySQL 総合 Part26 (860) - [89%] - 2023/2/2 9:30
- MySQL 総合 Part20 (995) - [89%] - 2011/10/17 4:48
- MySQL 総合 Part21 (1001) - [89%] - 2011/12/25 22:16
- MySQL 総合 Part22 (1001) - [89%] - 2012/7/10 16:45
- MySQL 総合 Part23 (992) - [89%] - 2013/8/11 17:00
- MySQL 総合 Part24 (1010) - [89%] - 2015/2/14 4:46
- MySQL 総合 Part25 (947) - [89%] - 2017/6/18 6:30
- MySQL vs PostgreSQL Part2 (941) - [31%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について