トップページ⇒tech
647コメント186KB

MySQLってどうよ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
語ってくれ
0147デフォルトの名無しさんNGNG
テーブルやったと思う。
0148デフォルトの名無しさんNGNG
>147
これから使おうと思ってこのスレ読んでます。
テーブル単位なんですか?ちょっと大きすぎません?
0149デフォルトの名無しさんNGNG
>>148 仕様だからしようがない
0150デフォルトの名無しさんNGNG
>149 ウマイ!! 一点!
http://ponponponta.com/tentori/tentori.html かんけいないけど、おもしろい。
0151デフォルトの名無しさんNGNG
>150
http://plaza2.mbn.or.jp/~jinma/tentori/
こんなのもあるよ。
0152137NGNG
>> 148
InnoDB使えばいいんでない?

フリーのDBMSにどこまで期待するかによるけど、洒落にならんOLTPとか
走らせるつもりなら最初から商用DBMS検討した方が結果的には安く上がると思う。
漏れは研究で使うデータをMyISAMに突っ込んで使ってるけど、データの追加は
単純なバッチをぶん回すだけなんでロックの単位はどうでもよかったりする。
応答も早いし、管理は楽だしで漏れにはMySQLで充分。
0153デフォルトの名無しさんNGNG
>>148
>>149
http://www.mysql.com/products/mysql-4.0/index.html

[Other features available from MySQL 4.0.0]
The table handler InnoDB is now offered as a a feature of the standard
MySQL server, including full support for transactions and row-level locking.
0154デフォルトの名無しさんNGNG
お試しで使うなら DB2 開発者版の方が良いじゃん。
あれだけで十分実運用に耐えられる品質ゴホゴホ
0155小僧NGNG
社内システムとして昨年から使ってます。あ、でも社内システム
と言っても、工数0なんですけどね。会社で自由に使えるサーバ
がWindowsしかないのでWindowsで動くバージョンがあり、かつ
フリー(商用利用でなければ)のDBを捜したら、MySQLがあった
のでつかってます。小さな規模なので、マイクロソフトのSQLサ
ーバと同じエンジン使っているMSDE(だっけ?)とかも有ったの
ですが、始めのころに割り当てられていたマシンがWindows95の
遅いましんだったので、MySQLを選んだ次第です。トランザクシ
ョンが普通に扱えないのが最初は気がかりでしたが、LOCK TABLES
で問題になるようなことは無いです、今のところ。PostgreSQLに
比べるととてもシンプルに全てが出来ているので、メンテナンス
なんかが楽でいいです。
この前までPHP4と組み合わせていたのですが、JSPとかXML、XSLTを
使いたかったので、Resin + 横浜BaykitのXi + JDBCで今は作ってます。


0156デフォルトの名無しさんNGNG
>>155
Win95はいってる遅いマシンをLinuxとかに
いれかえるのはどうよ?
0157小僧NGNG
>>156
あ、ご心配なく。最近ようやくXPがまともに動くマシンが来たので、相当
安定性と速度が上がりましたので。以前は初代セレロン300MHz+メモリ64M
+Win95....正直DB使うにはあり得ない構成だったです。これにApatch入れ
て・・・今想像するだけでゾっとする構成でしたよまったく。世の中には
Win95でしか動かないアプリを仕事で使わないといけないところもありま
してね、つらいですよねそういう場合って。あ、ちなみにコード書いてる
マシンはPC-9821Xa20だったりするし、しかもメモリ32Mだったりして。
あまりにもハングしまくるので、自前でSIMM挿して64Mにしてなんとか
って感じで作ってます。
WindowsNT系のマシンからmysqlクライアントでサーバに接続すると、
打ち込んだコマンドがヒストリ機能でカーソルキーの上下で出てくる
んですが、Win95からだとそれが効かないし、SQLをコピーペーストすると
全角文字だけ消されちゃうしで、もう手がつりそうになるっすよ。だから
今はTelnetでXPに入って、その中からmysql使ってます。コマンド打ち間
違うとBeep音が鳴ってしまうので、XPで仕事やってる人がビックリするん
で、家間違えだけには注意しないといけないですけどね。



0158デフォルトの名無しさんNGNG
プロバにDB鯖は置けないけど、
自宅鯖で稼働しているMySQL鯖に外からつなぎたいのですが…

自宅鯖(Win)では、ActivePerlにDBIモジュールやらなんやら入れて
perlからアクセスできるようになったのですが、
プロバ(FreeBSD)ではモジュールが用意されていなくて、
落としてきたソースをコンパイルしなきゃならなくて…
PREFIX=/home/〜で導入ディレクトリ指定したけど標準のところへ
入れようとしてこけてしまう (;´Д`)

自宅でFreeBSD環境作ってコンパイルして必要なものだけ上げれば
いけますでしょうか?
0159デフォルトの名無しさんNGNG
>>158
自宅鯖にDBを操作するスクリプトおいといて、
プロバにそのスクリプトとソケットでやりとりする
スクリプトを置く。
0160158NGNG
>159
おおお、その手をすっかり忘れてました。
さっそくやってみます。
0161デフォルトの名無しさんNGNG
レコードロックできないようだけど、
みんなテーブルロック使ってるの?
0162デフォルトの名無しさんNGNG
>>161
ここを読め。
http://www.softagency.co.jp/mysql/Manual/html/manual.ja_MySQL_Optimization.html#Table_locking
0163デフォルトの名無しさんNGNG
InnoDB よく売れているみたいだねぇ。
Innobase Oy sales in January to May 2002 exceeded projections by 83 %.
だってさ。
0164デフォルトの名無しさんNGNG
linux で CのAPIを使用としていますが、
コンパイルで”undefined reference to `mysql_init'”
となります。
コンパイルオプションに”-L/usr/lib/mysql -lmysqlclient -lm -lnsl”
を付け、ファイルも有るんですが、何が悪いんでしょうか?
0165デフォルトの名無しさん NGNG
os:win98
mysql:3.23.49
cコンパイラ:ボーランド・BCC5.5.1

の環境でCからmysqlに接続しようとしてるのですが・・・。
インクルードファイル"mysql_com.h"の115行目で、
「宣言部に;がない」とのコンパイルエラーが出ます。
mysql_com.h自体にはmysqlをインストールしてから手は加えてませんでしたし、
実際に見てみてもそれらしい場所でゃ見当たりません。
何か心辺りあります??
0166デフォルトの名無しさんNGNG
仕事でOracle、DB2、SQL Server、PostgreSQLと使ったが、
PostgreSQLはDB2、SQL Serverよりは良さげな感じだった。
MySQLは実際のところ、どうなんだろ? 検討する価値有?
0167小僧NGNG
>>166

MAXの方じゃないと普通のコミット、ロールバックができないので、
一般的なRDBMS感覚だとつらいかも。でーも、LOCKコマンドとか
マニュアルで説明しているような方法でトランザクション処理を回避
することもできるので、頭を柔らかくできればキビキビ動くスポーツ
カーのようなDBだと思います。あと、全体的に使うまでの手間とか
管理が簡潔なので、僕はとても好きです。

0168デフォルトの名無しさんNGNG
>>167
同意
0169166NGNG
>>167
ありがとー。仕事では辛そうなので、自宅サーバの方で
使ってみます。
0170デフォルトの名無しさんNGNG
MySQLのJDBCで、

PreparedStatement #setDate(int parameterIndex, Date x, Calendar cal)
ResultSet#getDate(int columnIndex, Calendar cal)

が機能するものってないでしょうか?

gweMysqlはこのメソッドを受け付けてくれるけど処理してくれない(泣)
mm mysqlに至っては、実装すらしていない...
0171デフォルトの名無しさんNGNG
ODBC経由でMySQLに接続した場合、mysqladmin -u root -p processlistで
セッションを確認するとUserがODBCになっているんだけどそういうものですか?
ODBCなんてユーザ作成していないのに・・・・
ODBCユーザの権限ってどうなっているのでしょうか?
わかる人がいれば教えてください。

0172165NGNG
自己解決しました。
WINDOWS.Hをインクルードしてなかったのが原因でした。

>〉164
リンク時に直接ライブラリ・ファイルを指定してやったら、うまい事行くかと。
0173デフォルトの名無しさんNGNG
age
0174デフォルトの名無しさんNGNG
>>167
なんかトランザクションがないって思いこんでいる人も多いけど、
InnoDB table や BerkeleyDB table にすれば、トランザクションも
使えるし、たとえトランザクションを使わない場合でも明示的に lock
する必要はなくなるぞ。

しかも、InnoDB だとトランザクション使っても performance がそれほど
落ちないどころか、上がる場合すらある。
http://www.innodb.com/bench.html

とはいえ、web 用の user information DB だとか BBS の backend 用 DB
とか、商品ページ表示用 DB に使うのならいいけど、勘定系の DB には
ちょっと使えないっていうのは確かだけど。
0175デフォルトの名無しさんNGNG
>>174
トランザクションがあれば勘定系でも使えそうだけど、
どのへんがきびしいの?
0176デフォルトの名無しさんNGNG
>>175
トランザクションがあれば勘定系でもつかえるのか!!!!!

じゃあMSDEでもダイジョウブだね。
0177デフォルトの名無しさんNGNG
>>170
gweMysqlですが、ちゃんと実装してみましょうか? (^^)
0178デフォルトの名無しさんNGNG
>>176
MSDEでOKじゃん。
ダメなの?
であればその理由を述べよ。
0179デフォルトの名無しさんNGNG
>>176
感情系に使うの?( ´_ゝ`)フーン
0180170NGNG
>>177
是非お願いします。
面倒が減って助かります。
0181デフォルトの名無しさんNGNG
>>180
考えてみるけど...
そもそも、Calendarを引数で使わなくても、Calendar引数が不要なsetXXXメソッドで代用できない?
0182デフォルトの名無しさんNGNG
mysqlで、あるユーザがあるDBに対し、
LAN内(192.168.0.%)及びlocalhostからの接続をしたいのですが、
権限等どのように設定するのがいいんでしょうか?
user@localhost と [email protected].%を完全に別物として考えれば分かるん
ですが、管理が二重になってしまうのがどうにかならない物かと悩んでおります。
0183デフォルトの名無しさんNGNG
>>182
localhostはそのIP以外なの?
だったら当然分けるしかないだろ。
0184デフォルトの名無しさんNGNG
>>183
いえ、localhostは内側なんですが、192.168.0.%のユーザだけを
作ってもlocalhostで接続すると蹴られます。
-h localhostでは無く、-h 192.168.0.9 として接続するとOKですが、
これだと、Unix socketsによるlocalhost接続の利点が無くなってしまうので
できれば避けたいです。

とは言っても権限テーブルにレコードが一つ増えるだけなので、たいして
問題ないといえば無いんですが、、
0185デフォルトの名無しさんNGNG
user@%にしてIPでの制限はコンピュータの接続制限にやらせるとか。
ホストをlocalhostにしたいなら192.168.0.%で入れるわけがない。
0186デフォルトの名無しさんNGNG
MySQL MLの過去ログげとー
……なんかウィルス尽きらしいメールまで拾えた。
[mysql 05238] の patch.exe はヤバイ?
0187170NGNG
>>181
次の場合に問題があると考えていますが、どうでしょう?

DBがJSTで、アプリがGMTの場合、
DBは1970-01-01 09:00:00.0ならば、アプリは1970-01-01 00:00:00.0でなければならない。
しかし、java.sql.Date系の生成は、アプリのディフォルトTimeZoneに依存する。
よって、ResultSetから1970-01-01 09:00:00.0を変換して取得する術がない。
0188デフォルトの名無しさんNGNG
ごめん、mysqlのwindows版で、コマンドとかを失敗したら、ビープ音がなんですが、

これをとめる方法ってないっすか???
0189DB@DBDBDNGNG
MYSQLとCを組み合わせてプログラムをするときにどんな
書籍,WEBページを参考にしますか?
0190デフォルトの名無しさんNGNG
>>189
別にMySQLのドキュメントを参考するだけじゃないの?
0191デフォルトの名無しさんNGNG
age
0192PostgreSQL使いNGNG
>92
@ITに記事あったよ。http://www.atmarkit.co.jp から探してみ。
0193PostgreSQL使いNGNG
あ、しまった。全然遅レス…。鬱氏…。
0194デフォルトの名無しさんNGNG
まぁ〜だmysql4、stableでないの?
0195デフォルトの名無しさんNGNG
質問いいでしょうか?
mysqlでテーブルを作ってデータを入れ込みました.
このテーブルに使われているデータ要領がどのくらいか
しらべるSQLコマンドはありますか?
ちなみにレンタルサーバ上のDBです.
0196ageNGNG
age
0197デフォルトの名無しさんNGNG
このスレ人気無いな。
0198デフォルトの名無しさんNGNG
MySQLのドライバーってmmの方はResultSet#updateXxx()
に対応しているけど、gweは対応してないよね。

この機能があるかないかではかなり違う気がするんだけど。
0199デフォルトの名無しさんNGNG
私は今まで更新は全てSQLで行ってまして、ResultSet#updateXxx()は
使ったことないんですが、どういう場面でその機能を使うのでしょうか?
0200デフォルトの名無しさんNGNG
>>199
RowSetが絡み始めるとかなり違うよ。
0201デフォルトの名無しさんNGNG
>> 198
gweMysql JDBC Driver の 更新可能なResultSetですが、随分前に実装
を開始したのですが、仕事が忙しくなりすぎて、作業が止まってます。
そんなに、需要が無いだろうと思っているのですが、どうなんでしょ?
0202デフォルトの名無しさんNGNG
[email protected]
メボムかも〜ん
0203198NGNG
>>200
RowSetは便利そうですね。(使ったことはないですけど)
RowSetについてちょっとAPIのJavaDocを見てみたのですが、
これってコネクションはRowSet自身が取得しに行くのですか?
DataSourceから取得したコネクションは使えないのでしょうか?
また、RowSetのインスタンスはどの様に生成するのでしょうか?
質問ばかりで済みません。

>>201
もしかしてDriverの開発者さんですか?
もしそうであれば、応援してますのでこれからも頑張って下さい。
更新可能なResultSetですが、私もどの様な場面で使うのか
が分かりませんでした。
0204デフォルトの名無しさんNGNG
>> 203
>> もしかしてDriverの開発者さんですか?
そうです。がんばります。(^^)
0205デフォルトの名無しさんNGNG
>> 203
>>これってコネクションはRowSet自身が取得しに行くのですか?
>>DataSourceから取得したコネクションは使えないのでしょうか?
RowSetはinterfaceのみ規定していますから、絶対言い切れないですが、
一般的には、DriverManager経由か、JNDI経由で、何かしらのConnectionを
取得すると思います。

>>また、RowSetのインスタンスはどの様に生成するのでしょうか?
具体的なクラス名を使用して、new gweMysqlRowSet() とするとか、
Class.forName("gwe.sql.gweMysqlRowSet").newInstance() と
することになるのではないでしょうか
0206デフォルトの名無しさんNGNG
lookupするんだよ。
0207デフォルトの名無しさんNGNG
MySQLは名前がかっこ悪い。
マイコンピュータとか、マイネットワークを連想させる。
0208デフォルトの名無しさんNGNG
PostgreSQLはカコイイ
0209デフォルトの名無しさんNGNG
>> 198
gweMysqlのResultSetで、ResultSet.CONCUR_UPDATABLE に対応したよ。(^^)
0210 NGNG
MySQLってストアドみたいな機能ってないよね?
0211デフォルトの名無しさんNGNG
ここはしお韓か?
0212デフォルトの名無しさんNGNG
>> 200
javax.sql.RowSet で、updateXxx() を使うというのは、よく分かりま
せんが、果たして使えるのでしょうか?
具体的な使用方法を教えていただけませでしょうか?
0213デフォルトの名無しさんNGNG
>>210
ないね。
やりたきゃ自前でWEBサービス走らせてスマートクライアントからSOAPで、といってみるテスト。
0214デフォルトの名無しさんNGNG
>>212
たしかRowSetってConnection切っても、
updateXxx()をできるんじゃなかったけ?
0215デフォルトの名無しさんNGNG
なんかgwe、異様に機能upしていない?
0216デフォルトの名無しさんNGNG
>>214
RowSetをネットワーク間で転送して、そこでupdateXxx()するということ?
このときには、どこに接続して更新するの?
0217デフォルトの名無しさんNGNG
>>215
がんばってます。(^^)
0218デフォルトの名無しさんNGNG
>>216
1.4のAPIを見たら?
0219デフォルトの名無しさんNGNG
>>218
引用したようなことだと思いますが、gweに実装してみましょうか?
再接続するタイミングとか、再切断するタイミングとか、トランザクション
の制御とか、どうなんでしょ? 実装依存かな?
--- 引用 -------
Such a rowset is called a disconnected rowset. A disconnected rowset
may make changes to its data while it is disconnected and then send
the changes back to the original source of the data, but it must
reestablish a connection to do so.
--- 引用 -------
0220デフォルトの名無しさんNGNG
>>219
マジっすか? RowSet実装!?
すごすぎます!

http://developer.java.sun.com/developer/Books/JDBCTutorial/chapter5.html
http://java.sun.com/products/jdbc/jdbc20.stdext.pdf
あたりが参考になるかと
0221デフォルトの名無しさんNGNG
>>220
RowSetはすでにgweMysql Driverで実装してます。
今回はさらにUPDATABLEなRowSet実装にしようかと思っております。
0222デフォルトの名無しさんNGNG
基本情報受ける香具師、SQL勉強したか?
俺全然やってNEEYO!
0223デフォルトの名無しさんNGNG
基本情報のSQLなんて勉強しなくても問題ないでしょう。
0224デフォルトの名無しさんNGNG
すみません。質問させていただけないでしょうか。

winmysqladminを実行するとサービスが開始されます。
それはいいのですが、アイコン右クリックで「Stop the Service」をすると、
サービスが自動起動になってしまいます。これをやめるには、右クリックで
「Remove the Service」とすればよいようです。
しかし、これを毎回繰り返すのは鬱です。
「Stop the Service」をしてもサービスが自動起動にならない方法って
あるのでしょうか。

よろしくお願いします。
0225デフォルトの名無しさんNGNG
>>220
gwe.sql.gweMysqlRowSet を UPDATABLEなRowSet実装にしました。
0226220NGNG
幸せになりました

しかし、gweの実装で結構しっかりしてる
Connction Poolingのあたりもしかりやってあるし
Connector/Jは、結構つらい

DataSourceのjndi経由って実際みんな使ってるんでしょうか?
RowSetが使いたいので、jndiでやってますが、
基本的にはDriverManagerの方が多いんでしょうね

Jakarta、DBCPのGenericDataSourceみたいな実装って
ドライバーレベルでは反則なんでしょうか? やっぱり
0227デフォルトの名無しさんNGNG
>>220
Connector/J(旧MM.MYSQL)の作者(Markさん)も、かなり私に触発されて
コードを改善しているみたいですね。
以前、Markさんに開発に参加しないかと誘われましたが、ソースが汚い
ので、お断りしました。(^^;
0228デフォルトの名無しさんNGNG
gwe最高です。
これからも開発頑張って下さい。
0229デフォルトの名無しさんNGNG
ドライバ作者さんがいらっしゃるようなので質問があります。

別スレッドにConnectionを渡し、クエリーを発行します。
クエリー実行中に、Connectionを任意にclose()した場合ってどうなります?

なんか同期化のコードがないような気がするので。
0230デフォルトの名無しさんNGNG
複数のワーカースレッドでConnectionを共有する場合(スタンドアロンなど)、
任意に止めたいので、メインスレッドでclose()すると、
それぞれのワーカーで例外をキャッチできないのでしょうか?
0231デフォルトの名無しさんNGNG
>>229
別スレッドからいきなりclose()を呼ぶことはあまりないでしょうが、
あえて呼ぶなら、クエリー発行側のスレッドでSQLExceptionが発生する
と思います。
0232デフォルトの名無しさんNGNG
>>229
同期化のコードって、具体的にはどのような同期化でしょうか?
(何かを)同期化することで、クエリー中は別スレッドからのclose()メソッドの
コールがブロックされるような動作のことでしょうか?
0233デフォルトの名無しさんNGNG
MySQLってOracleで言うUnion文書ける?
バージョンが古いのかな?
0234デフォルトの名無しさんNGNG
>>231
Thread#stop()で止めれない状況だったので、close()で止めたかったわけです。
Socket#close()のように。

試すと確かにクエリー発行側スレッドでSQLExceptionが発生します。
しかし、複数のスレッドでConnectionを共有した場合不定のようです。
0235デフォルトの名無しさんNGNG
>>234
>>複数のスレッドでConnectionを共有した場合
フツーはこんなことしないと思いますが。。。。。。(^^;;;;;;
0236デフォルトの名無しさんNGNG
普通だよ。
0237デフォルトの名無しさんNGNG
>>236
共有すると何かいいことあるんでしょうか?
また、共有しなければならない理由とかも教えていただけますか?
0238 NGNG
MyConには 負けます(謎)
0239デフォルトの名無しさんNGNG
Connection処理用のスレッドを作って、処理を集中して任せた方がいいと思うが。
0240デフォルトの名無しさんNGNG
>>234
なぜ複数のスレッドでConnectionを共有しているのでしょうか?
0241デフォルトの名無しさんNGNG
Apache + PHP + MySQL + ZOOPS
これ最強!!!
MySQL、どーして日本で流行らんかねぃ〜。
Winでも使えるからいっぺんだまされたと思って使ってみ。
あと、ZOOPSモナ。
0242デフォルトの名無しさんNGNG
>>241
ZOOPS って何すか?
0243デフォルトの名無しさんNGNG
XOOPSでないかな。
0244デフォルトの名無しさんNGNG
>>241
はやらんよ。
SQL、貧弱すぎ
0245 NGNG
>>241

ああ〜〜 だまされたー だまされたー
0246デフォルトの名無しさんNGNG
〉〉245
騙されてない、騙されてない。
使える、使える(ワラ
■ このスレッドは過去ログ倉庫に格納されています