MySQL 5.0at DB
MySQL 5.0 - 暇つぶし2ch204:NAME IS NULL
06/12/21 17:21:34 .net
インスコして、mysqladmin ping実行しても10061エラーばっかり/(^o^)\
サービス見ても 自動 開始 で実行されてる/(^o^)\
どなたか御指摘お願いします
MySQL 5.1

205:204
06/12/21 17:37:44 .net
追記
mysqladmin ping -u root -p
Enterpass:root
mysqld is alive
と、上記のようにはできました。
また、mysqlshowでもエラーが返ってきます
/(^o^)\ナンテコッタイ

206:NAME IS NULL
06/12/21 21:47:53 1hv/v4KN.net
>>204
Verを書けよ

207:sage
06/12/22 12:31:40 .net
質問です。
MySQL5.0系をwin環境で使用しています。
DBの用途はMTブログのみです。
MySQLをインスコしてデフォルトのキャラクターセットで使用していましたが、phpmyadminで文字化けする為文字を2バイト文字の使用できるutfやeucに変更しようと頑張ってます。
もし変更出来たとして、変更前に書き込まれてるデータの文字は変換出来るのでしょうか?
変換されないとすれば、新たにデータベースをutfなどで作り、元のデータをインポートすれば表示されるものなのでしょうか?
何分MySQL初心者なものでして、ご教授願えれば幸いです(´・ω・`)

208:NAME IS NULL
06/12/23 21:51:45 .net
自動的に変換されない
全部自分で直す

209:NAME IS NULL
07/01/02 13:43:54 .net
>>204
つまり、rootでログインしてたら実行できるけど、ログインしていない状況では
エラーになる、ということで悩んでるの?それなら、MySQLは正常に動いてると思う。
逆に、その状態が異常だと何処で教わった?


210:NAME IS NULL
07/01/02 13:45:38 .net
>>203
まず、ネットワーク経由でのアクセスを許可してるよね?

211:NAME IS NULL
07/01/03 00:35:03 .net
>>208
たいした量じゃなかったんでMTのデータテキストで書き出し
新しいDBにしてから読み込みで解決です。
時間かかったwww
おかげで年越しです。

212:NAME IS NULL
07/01/03 00:36:33 .net
>>208
上の柿>>207です。
名乗るの忘れてました(^_^.)

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


214:NAME IS NULL
07/01/28 23:28:51 .net
>>213
mysql-5.0.33フォルダをデスクトップに置いてコンパイルした結果をもう一度
教えてくださいw


215:NAME IS NULL
07/02/12 22:50:10 .net
てすつ

216:NAME IS NULL
07/02/25 18:30:11 .net
>>214
なぜデスクトップ?

217:NAME IS NULL
07/05/11 01:34:05 hJ+hqO0q.net
ムーバブルタイプ、MySQLでやろうとしたらこんなん出ましたw
Data too long for column 'template_text' at row 1


218:NAME IS NULL
07/05/14 23:43:26 LAW+Ghic.net
ヴァージョン4と5の違いって何ですか?そんなに違うものですか??


219:NAME IS NULL
07/05/15 02:12:52 .net
ガッテム!

220:NAME IS NULL
07/05/25 08:20:15 .net
>>218
全然違う。
ネットで調べればすぐわかる。
つか、なんで今さらそんな話を。。。

221:NAME IS NULL
07/05/25 09:26:25 .net
>>218
うちの嫁と隣の嫁ぐらいの違いがある

222:NAME IS NULL
07/05/25 21:44:21 .net
そうですか!>>221さんは両方とも使ったことが
あるんですね! どっちがよかったですか?

223:NAME IS NULL
07/05/26 01:54:20 .net
隣の嫁

224:NAME IS NULL
07/05/27 07:05:15 .net
ジーザス!

225:NAME IS NULL
07/05/28 13:18:51 .net
複数カラムのJOINって無理ですか?
id,flg,reason
id,koyo,kousei,kenkou
の二つを合体させたいんですが、
flgは無し、アリ、申請中で、reasonは理由です。


226:NAME IS NULL
07/05/30 21:38:43 .net
>>225
>複数カラムのJOINって無理ですか?
なにを聞きたいのか、全然わからん。
わからんが、とりあえず答をぶっぱなしてやる。
つ LEFT OUTER JOIN

227:NAME IS NULL
07/06/12 02:31:24 .net
5.0.41にしたらアプリケーションがことごとく動かなくなった。
いろいろ試してみたら5.0.27より後のバージョンでNGになってる。
大幅な仕様変更があったんでしょうか。


228:NAME IS NULL
07/06/13 20:32:35 xGJFXDYi.net
>>222
隣の芝生は青く見える。

229:NAME IS NULL
07/06/13 20:45:56 xGJFXDYi.net
スレ違いかもしれんが、10年以上前に秋葉原で購入した
マハーポーシャのパソコンにNetBSDインストールして
MySQL5.2を入れて見ようと考えてます。バージョンが安定してないのと
ハードのスペックが余りにも古いのでデータベースがきちんと
動いてくれるのか不安です。

用途は、8000人分の個人情報を管理することです。

230:NAME IS NULL
07/06/14 00:58:03 .net
>>229
スペックで考える前に
8000人分の個人情報を預かる責任として考えろ


231:NAME IS NULL
07/06/17 18:01:16 .net
>>229
警察から連絡があったでしょ?OSが不正コピーかどうかの確認。

232:NAME IS NULL
07/06/25 02:34:50 .net
マハーポージャってなに?
オウムのやつ?

233:NAME IS NULL
07/06/29 22:17:20 tyr8Qbwe.net
すみません。
MySQL 5.0.41 をインストールしたのですが、
my.ini を編集しようとして、開こうとしても、他のプロセスによって書き込みが禁止されていますといわれて、編集できません。
mysqladmin -uroot -p**** shutdown
で、シャットダウンを済ませたのですが、それでも書き込みが禁止されています。
my.ini はどうやって編集するのでしょうか。


234:233
07/06/29 23:14:10 .net
自己解決しました。
Vistaの変なセキュリティ機能の所為でした。
ファイルの上書きでなんとか書き換えました。


235:NAME IS NULL
07/07/25 11:21:25 .net
MySQLに接続するために
日本語サーバー対応版 libmysql.dll
を探しているのですがSoft Agencyのサイトからは
ダウンロードできなくなってるみたいです。。
どこか別のサイトでダウンロードできるところはないでしょうか?

236:NAME IS NULL
07/07/29 22:56:25 .net
公式の奴はあかんの?

237:NAME IS NULL
07/08/21 05:36:17 .net
スレリンク(geinin板:90番)

238:NAME IS NULL
07/09/21 20:48:56 .net
すいません、教えてください。
gcc (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
e:\MySQL\bin\mysql.exe Ver 14.12 Distrib 5.0.37, for Win64 (unknown)
です。
以下のような簡単なプログラムを書いてコンパイルしたところ
undefined reference to`_mysq_init'といわれてしまいました。
何が足りないのでしょうか。
====================ソース=========================
#include<stdio.h>
#include"mysql.h"
int main()
{
MYSQL *mysql;
if(mysql_init(mysql)==NULL)
{
fprintf(stderr,"Cannot init MySQL");
return 1;
}
return 0;
}
==================コンパイルオプション==================
gcc -Ie:/MySQL/include \
-Le:/MySQL/include \
-Le:/MySQL/lib/opt \
-lmysqlclient \
-llibmysql \
test.c


239:238
07/09/21 20:52:29 .net
すいません。
コンパイルオプションに変な改行が入ってますが、
無いものとして考えてください。

240:NAME IS NULL
07/09/29 00:15:26 .net
つ-lzlib

241:NAME IS NULL
07/09/29 13:55:54 .net
test.cよりあとに、-lつける
-lの順番と位置には意味があるので

242:238
07/09/29 19:28:09 .net
>>240-241
レスありがとうございます。
test.cよりあとに-lをつけたのですが駄目でした。
ライブラリの順番もいろいろ入れ替えてみたのですが。
ところでstringsでmysqlclient.libをみてみたら
以下のようになったのですが、_mysql_init@4の@4とは何なのでしょう?
bash-3.1$ strings mysqlclient.lib | grep mysql_init
_mysql_init@4
_mysql_init_character_set
_mysql_init@4
_mysql_init_character_set
_mysql_init@4
_mysql_init@4
_mysql_init_character_set


243:NAME IS NULL
07/09/30 00:42:51 .net
_関数名@数字なら、stdcallの関数で、数字は引数のバイト数
stdcallの関数って教えないと駄目じゃないかな。

244:238
07/09/30 20:29:21 .net
>>243
レスありがとうございます。
mysql.hを覗いてみたところ以下のようになっていました。
#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */
#undef WIN
#undef _WIN
#undef _WIN32
#undef _WIN64
#undef __WIN__
#endif
#if !defined(__WIN__)
#define STDCALL
#else
#define STDCALL __stdcall
#endif
実はCygwinでやっているのですが、Cygwinだと__stdcallが取り除かれるようです。
リンクするライブラリを間違えているということでしょうか。
ためしに無理やり__stdcallを付けてみたら山のようにリンクエラーがでました。


245:238
07/10/02 07:12:07 .net
環境をCygwin&gccからコマンドプロンプト&VCに変えたら
上手くいったのでとりあえずこれでやることにします。
レスありがとうございました。

246:NAME IS NULL
07/10/10 02:46:28 .net
mysql-test-run 及び make testは失敗するのがデフォルトですか?
CentOSのmysql-5.0.48.src.rpmからrpmbuildでrebuildしたんですが、make testの段でエラーになります。
specの中身は、
CFLAGS="-O2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv"
CXXFLAGS="$CFLAGS -fno-rtti -fno-exceptions"
CC=gcc(ver3.4.6-8) CXX=g++(ver3.4.6.8)
./configure --with-readline --with-openssl --without-debug --enable-shared --with-bench --localstatedir=/var/lib/mysql \
--with-unix-socket-path=/var/lib/mysql/mysql.sock --with-mysqld-user="mysql" --with-extra-charsets=all \
--with-innodb --with-ndbcluster --with-berkeley-db --enable-local-infile --enable-largefile --enable-thread-safe-client \
--disable-dependency-tracking --with-named-thread-libs="-lpthread"
とこうなってます。
で、%build(make)セクションは問題なく進んでいるようですが、make testに入ってから、
Logging: mysql-test-run.pl
MySQL Version 5.0.48
Skipping ndbcluster, mysqld not compiled with ndbcluster
Skipping SSL, mysqld not compiled with SSL
Using MTR_BUILD_THREAD = 0
Using MASTER_MYPORT = 9306
Using MASTER_MYPORT1 = 9307
Using SLAVE_MYPORT = 9308
Using SLAVE_MYPORT1 = 9309
Using SLAVE_MYPORT2 = 9310
Using IM_PORT = 9312
Using IM_MYSQLD1_PORT = 9313
Using IM_MYSQLD2_PORT = 9314
Killing Possible Leftover Processes
Removing Stale Files
Creating Directories
Installing Master Database
Installing Master Database
Installing Slave1 Database
mysql-test-run: WARNING: running this script as _root_ will cause some tests to be skipped
=======================================================
Starting Tests in the 'main' suite
TEST RESULT TIME (ms)
-------------------------------------------------------
mysql-test-run: WARNING: Process 8991 died
alias [ fail ]
ERROR: Failed to start master mysqld 0
Aborting: alias failed in default mode. To continue, re-run with '--force'.
Stopping All Servers
mysql-test-run: WARNING: caught exit of unknown child -1
mysql-test-run: WARNING: Forcing kill of process 8991
と出て、いきなりFaild出ています。

247:246
07/10/10 02:46:59 .net
そこで、src.rpm中のtar.gzを、自分で展開して、
CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static
(mysql4.1マニュアルにあったまんま)から、makeしてみたんですが、
・item_cmpfunc.cc:861: 警告: converting of negative value `-0x000000001' to `ulonglong'
・sql_show.cc:1467: 警告: キャストによってポインタから異なるサイズの整数となります。
上の二件警告がでて、コンパイル自体は通るんですが、で、make testとしたら、上と全く同じエラーがでます。
とりあえずmake installして、./script/mysql_install_dbしてから、./bin/mysqld_safe & で起動して、
./bin/mysql -u root で入って、select,create table,insert,delete 等は一応動いてるようです。
でもそこで mysql-test/mysql-test-runしてみるとやはり上記のエラーが・・・。
途中でこけるんではなくて、いきなり一発目のテストからこけてる。
ちなみに --force オプションつきでやってみると、ものの見事に全てのテストが Faildします。
その時、別のターミナルからtopでプロセス監視してると、mysqld<defunct>が二個くらい出てきては
数秒したら消えるの繰り返しでした。
’Failed to start master mysqld 0’とあるので、テスト用のmysqldが正常に起動できてない(ゾンビプロセス化)
ような気がしますが、mysql-ABや、MLで’Failed to start master mysqld 0’とか’mysql-test-run’とかで
検索かけても、マニュアルには「全てのテストは通ります。」としか書かれてないし、
ggったところ一件だけ同じ症状(ver5.0.41だけど)があったんですが、
そこにも「通る気配がないので、make installして起動さしますた。」ってことになってます。
こちらの皆さんは、ソースからmakeしてmake testとか、script/mysql-test-runとかちゃんと通りますか?
あと、rpmからの時は、起動してるとき ps -A | grep mysql で mysqld_safe と mysqld の二つしか
プロセスHitしないのに、ソースからmake install して ./bin/mysqld_safe した時は、mysqldプロセスが
八匹くらい常駐してるんですが、これも正常なんですか??

248:NAME IS NULL
07/10/11 07:49:24 .net
rpmbuildでのtest全失敗はやったことある。
> mysqld<defunct>が二個くらい出てきては
> 数秒したら消えるの繰り返しでした。
いっしょいっしょ。
iptablesで塞いでるからかなーとか考えて
そのときは深く追求しないで寝てしまった。
あと
関係ないけど5.0.48は大バグがあるから使っちゃだめ。
| MySQL Enterprise 5.0.48 Binaries Withdrawn
| After the recently released MySQL Enterprise 5.0.48 binaries
| were made available for download, it was discovered that they
| are affected by Bug #31001.
|
| Because of this, it was decided that MySQL Enterprise 5.0.48
| binaries should be withdrawn from the MySQL Enterprise Server
| download page, and they have now been removed. The previously
| released MRU, MySQL 5.0.46, has been made available in its place.

249:NAME IS NULL
07/10/11 11:09:38 .net
お返事ありがとうございます。
そうですか。
本スレ?でも書いたんですが、5.0.48.src.rpmからではなくて、本家の5.0.45.tar.gzからmakeしても、全く同じ症状がでてます。
ちなみにtop監視してて気づいたこと、mysqld<defunct>以外にndb-なんちゃらってのが出てきては消えを繰り返してたので、
クラスターエンジン(?)がらみかなーとかとも考えてみたんですが、よくわかりません。
> あと
> 関係ないけど5.0.48は大バグがあるから使っちゃだめ。
うはー、さっきBug#31001をチラッと見に行きましたが、かなり重大っぽいですね。
CentOSのrpmにはいくつかPatchがあたってるようなので、ちょっと調べてみます。

250:248
07/10/12 02:23:20 .net
--with-mysqld-ldflags=-all-static
これがついてるとNPTLじゃなくてLinuxThreadになるらしい。
なのでtopとかでスレッド数のぶんプロセスがあがってしまう。
mysql-test-run.plは調べ中だけどrootでやると確実に失敗する模様。
元々mysqldはセキュリティ上root権限ではあがらないため。
明示的に--user=rootとすればあがるのでmysql-test-run.plに
パッチをあてて実験中。
SRPMのリビルドの過程ではmake testはしないのが普通なのかなあ。
あらかじめ
| export MYSQL_RPMBUILD_TEST=no
するとmake testを飛ばすみたいね。

251:248
07/10/12 03:19:03 .net
> 明示的に--user=rootとすればあがるのでmysql-test-run.plに
> パッチをあてて実験中。
test通った。ので原因確定。
結論として、
MySQLのSRPMはrootでなくて一般ユーザでrpmbuildすべし。
一般ユーザでrpmbuildしたらパッチなくてもtest通った。
参考 URLリンク(memo.blogdns.net)
ねる

252:290
07/10/12 04:30:42 obmx5Aip.net
>>250,251
わざわざ検証ありがとうございます。
実はこっちでもちょっと前に、一般ユーザーでテスト通りました。
mysql-test/var/log/master.errに
’Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!’
ってあったんで、マニュアルの"Security"部分眺めながら、--user=rootでやっみたんですが、それでもFailedになったんで、
sudo -u mysqlでやって、今までとは違うエラー内容(mysql-test/var/以下にファイル作れません)でたので、
chmod 775 -R mysql-test/でやってみてテスト進みました。
ぬわんてこった~~!!って真剣思った。
rpmbuildかける時はずっとrootでやってたんで、まさに灯台本暗しとゆうかなんとゆうか・・・。
> --with-mysqld-ldflags=-all-static
> これがついてるとNPTLじゃなくてLinuxThreadになるらしい。
> なのでtopとかでスレッド数のぶんプロセスがあがってしまう。
これは知らなかった。これもサンクスです。
あと、Centの5.0.48には、当該のPatch当たってなかった。
さすがにorder by desc と asc で並びが同じ(w)ってのはまずいですね。(myisamはちゃんとなるみたいだけど)
これから一般ユーザーでrpmbuild試してみようと思いましたが、眠いので明日にします。

253:246
07/10/12 04:34:39 .net
すいません。>>252は246の間違いです。
しかもあげてしまった・・・orz。

254:NAME IS NULL
07/10/15 23:16:50 .net
mysqlの文字列の型で、charとvarcharとtextとありますが、
それぞれ、どのような文字列の場合に使用するものなのでしょうか?
たとえば、高速化をはかりたい場合はcharで、ディスクの容量を節約したい場合は、varcharで
といった具体に目的に応じて、使用する型を選ぶと思うのですが、
その判断方法を教えていただきたく、ごきょうじゅお願い致します。

255:NAME IS NULL
07/10/16 00:49:25 .net
固定長・・・・・・・・CHAR
可変長・・・・・・・・VARCHAR
256文字以上・・・TEXT
でいいんじゃね?

256:NAME IS NULL
07/10/16 01:08:26 .net
MySQLのVARCHARは64KB入るよ。
CHARは余った末尾は空白埋めされる。
VARCHRは空白埋めされない、末尾に空白を入れても削られる。
TEXTは空白埋めされないけど、末尾に入れた空白はそのまま残る。
なので
CHAR:何か固定桁のIDを入れる
VARCHAR:何かの名前を入れる(末尾の空白はいらない!)
TEXT:文章を入れる(末尾に空白を残したい人がいるかもしれない!)
っていうのがお作法じゃね?
性能差はたぶん測定不可能だと思う。

257:NAME IS NULL
07/10/16 02:18:07 .net
>>256
5.0からvarcharの末尾空白は削られなくなったというような話をどっかで聞いたような気がする。


258:NAME IS NULL
07/10/16 02:44:26 .net
ほんとだorz
しらんかった

259:>>254
07/10/16 23:55:06 .net
ありがとうございます。
結局、varcharとtextはでもどっちでもよいという話ですね。

260:NAME IS NULL
07/10/17 00:40:12 .net
MySQLって、primary keyをselectすると、
そのレコードの全てのカラムのデータをひっぱってくるという話を
聞いたことがあるのですが、これは事実でしょうか?
事実とした場合、4000文字程度のデータが入るカラムをtext型として
データベースに追加することを考えた場合、
既存のテーブルに追加すると性能が落ちる気がするので、
同じprimaryキーの別のテーブルを新しく作成して、
そこにtextのカラムを追加したほうがいいのかなと考えたのですが、
この考え方はあっていますでしょうか?
よろしくごきょうじゅお願いします。


261:NAME IS NULL
07/10/17 01:14:53 .net
>>260
URLリンク(www.mysql-ucj2007.jp)
セッションJ25の下の資料のP13~15、17~18を読めばいいんじゃない?
興味があったらセッションJ14のP18~19も読めばいいと思うよ。


262:NAME IS NULL
07/10/17 14:38:27 .net
>>260
たぶんいろいろ勘違いしてると思われ。


263:>>260
07/10/18 00:48:15 .net
>>261
ありがとうございます。読んでみますm(_ _)m

264:ビューについて質問
07/11/01 03:08:57 .net
変則的な使い方だと思うのですが、ビューについて質問させてください。
<条件>
共通のカラムをもった別のテーブルを2つ以上用意する。
(カラムは共通のもの以外にもある可能性がある。例として共通カラム:ID,NAME)
<質問1>
これらのビューを作成するときには、
create or replace view view_name as select ID,NAME from * where 条件式;
で作成可能でしょうか?
<質問2>
上記SQL文でビューに組み込まれるテーブルは少なくともID,NAMEカラムを持っていることが条件となり、
ID,NAMEカラムの片方だけを持つテーブル→ビューには組み込まれない。
ID,NAMEカラム以外にもカラムを持つテーブル→ビューに組み込まれる。
となるのでしょうか?
<質問3>
元のテーブルのデータがUPDATE,INSERT等で更新し、ビューを意図的に更新しない時ビ
MySQLではビューの検索ではどのような挙動になるのでしょうか?
具体的には、
NAMEフィールドが更新された→検索に引っかかるのは更新前の文字列か更新後の文字列か?
レコードが削除された→検索には削除されたレコードも引っかかるのか?
以上です。
よろしくお願いします

265:NAME IS NULL
07/11/01 16:54:00 .net
いいからマニュアル読めよ。
URLリンク(dev.mysql.com)
1はできん。
3は意味不明。
VIEWってなんだか理解してる?


266:QBfqIVLh
07/11/13 06:03:32 .net
kMOIOg <a href="URLリンク(qktiebmtyoyx.com) [url=URLリンク(koqpvsirptcc.com) [link=URLリンク(lhokxhsphplc.com) URLリンク(ozgxkrnwwczo.com)

267:ZDunVynZK
07/11/19 12:39:45 .net
Hi! Nice site! <a href=URLリンク(ozzyosbournemusic.blogspot.com) >hi </a> [URL=URLリンク(ozzyosbournemusic.blogspot.com) ] lol wut???[/URL] URLリンク(ozzyosbournemusic.blogspot.com)


268:jYRufUEttFbXqOmQDLW
07/11/20 21:35:04 .net
AqyHQz <a href="URLリンク(yoqqrkalkrud.com) [url=URLリンク(vdkyeaqetvrq.com) [link=URLリンク(aheagorqsotp.com) URLリンク(atpwdxejmkva.com)

269:TIFuLtsDDsbaCAhszE
07/11/22 22:50:13 .net
URLリンク(gkinyn.cn) mp3 dmusic downloads ipod

270:oHQIyyzKxHaoHVU
07/11/23 23:02:05 .net
URLリンク(ksrajt.cn) Olympia green fuels
URLリンク(ksrajt.cn) Dj green lantern
URLリンク(ksrajt.cn) Cello design rug
URLリンク(ksrajt.cn) Web design ribble valley
URLリンク(ksrajt.cn) Crane river fish study

271:QLkqzusunZSiKx
07/11/24 00:48:42 .net
URLリンク(ktmyve.cn) Escort monique new york
URLリンク(ktmyve.cn) Laser vaginal rejuvenation new york
URLリンク(ktmyve.cn) Fetish restaurant new york
URLリンク(ktmyve.cn) Pda cube x serial rubik pocket pc
URLリンク(ktmyve.cn) Ear piece for blackjack pda

272:NAME IS NULL
08/02/13 21:21:47 .net
5がいかに人気が無いか分かるな


273:NAME IS NULL
08/02/14 01:10:13 .net
MySQL5系からトリガという機能が追加されたらしいのですが、
このトリガって具体的にどのようなシチュエーションで利用されるものなのでしょうか?
(#トリガの説明聞いただけでは、いまいち何の役にたつのかわからないのです。。)


274:NAME IS NULL
08/02/14 01:45:58 .net
>>273
サマリテーブルの更新。

275:NAME IS NULL
08/02/14 01:58:44 .net
>>273
このへん読んでみたらどうか
URLリンク(www.techscore.com)

276:NAME IS NULL
08/02/14 10:49:17 .net
QueryBrowserで、右側のテーブル名ダブルクリックすると、上のクエリ窓に
SELECT * FROM [テーブル名] [テーブル名のイニシャル]
が出ますよね?
それで、ある一部のテーブル名だけ
SELECT * FROM '[テーブル名]' [テーブル名のイニシャル]
とシングルクオートで囲まれて出てきます。
このせいでアプリケーションでの検索ができません。
何が原因でしょうか?テーブル作成時もほかのテーブルと同じように作ったのですが・・・

277:>>273
08/02/15 00:04:23 .net
>>274
>>275
ありがとうございます

278:KbYTMrLzTv
08/03/22 05:55:00 .net
v8NGgX <a href="URLリンク(vfmgfkqvuyub.com)">vfmgfkqvuyub</a>, [url=URLリンク(wylrgaydxuvp.com) [link=URLリンク(cljwxffwlhfp.com) URLリンク(ldpsnlauqwzc.com)

279:frDFQeby
08/03/24 11:15:17 .net
MRgoyb <a href="URLリンク(efuiqwatnglf.com)">efuiqwatnglf</a>, [url=URLリンク(zwmqqnuyvkyz.com) [link=URLリンク(aenphnyjgyvo.com) URLリンク(npmlelkodlnx.com)

280:NAME IS NULL
08/04/01 02:32:51 S2Hxl9dE.net
DELETE FROM userlist;してしまった…。バックアップが見つからないorz

281:NAME IS NULL
08/05/07 15:09:18 lgbIt4VH.net
自宅のパソコンでPHPやJavaを勉強してるんだけど。
MySQLにPHPやJavaから接続したいんだけど、
PHP用のデータベースはEUC-JP、Java用のデータベースはWindows-31Jにしたいんだけど
データベース作成のときのCREATE DATABASE構文でCHARACTER SET CP932 とかUJISとかに
すればひとつのMySQLの中で別々の文字コードを持ったデータベースってできるの?
教えてえろい人。

282:NAME IS NULL
08/05/07 16:33:19 .net
でけるよ

283:NAME IS NULL
08/05/07 20:05:47 NtT1LWDm.net
thx >>282
明日やってみるYO!!!

284:NAME IS NULL
08/05/08 01:32:56 .net
shutdownして再び動かそうとしたら
プロセス残ってるよとか言う意味のエラーが出て起動できねえ糞

285:NAME IS NULL
08/05/08 01:58:43 .net
>>284
pid ファイルが残ってるんじゃないの

286:NAME IS NULL
08/05/08 02:07:58 .net
>>285
pidファイル探したが見つからなくて途方に暮れてる

287:286
08/05/08 02:08:34 .net
リブートしたら治るかなあ

288:NAME IS NULL
08/05/08 02:31:43 .net
>>286
OS は?

289:286
08/05/08 02:54:58 .net
linuxです
MySQL3と4を共存させてます

290:NAME IS NULL
08/05/08 04:02:33 .net
strace してみて、エラーメッセージ直前でどんなシステムコールを発行しているか
見てみると良いかもね。特に fstat とか open 辺りを中心に。pid ファイルなら
それで見つかると思う。
あとは普通に mysqld のエラーログを端から眺めてみるとか。

291:286
08/05/08 16:22:54 .net
それっぽいpidファイル見つかったけど中身のプロセスidは
psで確認してみたら動いてるっぽいし…(すでにmysql3が動いてるのでそれの?)

292:286
08/05/08 16:26:43 .net
言い忘れてましたがすでにMySQL3は動いています
起動できないのはMySQL4です

293:NAME IS NULL
08/05/08 17:00:06 .net
>>292
新しいほう(v4)のcnfで、data_dir、pidの場所、mysql.sockの場所、bindするPort
全て異なる設定にする。

294:286
08/05/08 17:26:53 .net
>/var/lib/mysql4/bin/mysqld_safe -u root -p -P3307 --defaults-file=/var/lib/mysql4/data/my.cnf --pid-file=/var/lib/mysql4/data/mysql4.pid --datadir=/var/lib/mysql4
>Starting mysqld daemon with databases from /var/lib/mysql4
>STOPPING server from pid file /var/lib/mysql4/data/mysql4.pid
>080508 17:25:20 mysqld ended
orz...

295:286
08/05/08 17:48:37 .net
MySQL4はあきらめてで5を入れて試してみます。
回答してくれた方ありがとうございました。

296:NAME IS NULL
08/05/08 18:08:56 .net
>>295
> /var/lib/mysql4/bin/mysqld_safe ・・・・
のところの、-u root いらない。(ってか、確かroot権限でmysqldは起動できないはず)
あと、--defaults-file= 指定するなら、その後ろ側にある各種コマンドラインオプションも.cnfに書いてしまえ。
もうひとつ、予想だけど、/var/lib/mysql4 はほんとにdatadirかな?/var/lib/mysql/dataではなくて?

297:286
08/05/08 19:30:41 .net
>もうひとつ、予想だけど、/var/lib/mysql4?はほんとにdatadirかな?/var/lib/mysql/dataではなくて?
そのとおりでした。/var/lib/mysql4/dataでした
ただ、そのへんを直しても同じエラーでこけるっす・・・

298:NAME IS NULL
08/05/08 20:00:48 .net
>>297
もう少しエスパーしてみる。
そのPathからして、多分ソースから、--prefix=/var/lib/mysql4 としてコンパイル&インストールしたんだと思われるけど、
まず、動いてるほうのmysql3を止めてから、4のほうを起動出来るか試してみる。(cnfは二つ目起動させる設定で)
それで起動出来なければ、単独とか2つ同時起動とか関係ない。そもそも起動の仕方が間違ってる。
で、予想としては、mysql権限テーブルが作成されていないとか、datadir以下のパーミッション絡みかな。
ここら辺は詳しくは、本家のmanualなりdocument見てくれ。
ここいらがわかってないと、5.0入れても多分起動できない。
逆に、上の段階で起動出来てしまったら、原因ようわからん。(オレではお手上げ)
ちなみに、ウチの環境で、>>293の通り即席でやってみたら、2つ同時起動はできた。(v4とv5でだけど)
ちゃんと別々に動作してるのも、ps と それぞれにconsolから接続して確認した。

299:286
08/05/08 22:11:46 .net
すみません、上司と相談した結果MySQL4をアンインストしてMySQL5を入れることになりました
それでmysqld_safeで無事起動できました
結局大本の問題は解決できませんでしたが色々相談に乗ってくださってありがとうございました

300:NAME IS NULL
08/06/02 21:37:17 .net
エスパーですまん。
なにがなんだかわからん。

同じテーブルをアクセスしているが
PHP経由は大丈夫で
突然、JDBC でおかしくなった。
昨日までOKだった。
OS再起動までした。
以下、mysql.log

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

301:NAME IS NULL
08/06/02 21:44:48 .net
経過
他のJDBC アプリでログが出力されていたので
アプリのソースってことがわかりました。
しかし、ゴミになるってことはなに?ソースを追うしかないのか?

302:NAME IS NULL
08/06/02 22:30:25 .net
自己れす 解決
connect まではログにでているので、select 文を べた書きにしてうまく流れたので
元に戻して 確認。
jdbc のバージョンがでるところからおかしくなっていたのでJDBCなのか?
そうなのか?

303:NAME IS NULL
08/06/07 04:02:12 .net
質問させて下さい。
これまで、Linux上で動作させていたphpスクリプトをWindowsに以降しようとしているのですが
phpからMySQLにINSERT文を行ったのですが、文字化けしてしまいます。
どうすれば直りますでしょうか?
・WindowsXP(Pro)
・php-5.2.5-Win32.zip
・mysql-5.0.45-win32
1※
mysql> SET CHARACTER SET SJIS;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'character_set%';
| Variable_name | Value
| character_set_client | sjis
| character_set_connection | latin1
| character_set_database | latin1
| character_set_filesystem | binary
| character_set_results | sjis
| character_set_server | latin1
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\c


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

あと、追加で質問させて頂きたいのですが、コマンドラインからMySQLを再起動するには
何というコマンドを実行すればよいのでしょうか?ぐぐっても中々ヒットしませんでした。
因みに、GUIツールとして MySQL Query Browserを使用しているのですがここから再起動とかも出来る
のでしょうか?


305:NAME IS NULL
08/06/07 06:46:22 .net
>>303,304
まず、my.iniの設定から見直してみよう。
その show variables の結果から、サーバがLatin1で起動されてるのが分かる。
create databaseやcreate table時の指定が分からんからなんともだが、そのまま作成したとしたなら、
仮に、"set names cp932"したところで、変更されるのは"connection"と"client"のみ。
なので、mysqldがデータを受け取った時に、内部の保存コードである"latin1"に変換をかけてしまう。
そこで、当然cp932(ms-sjis)はlatin1にマップ出来ないので文字列が壊れる。
回避策は、以下の件とも絡むので後述。
> コマンドラインからMySQLを再起動するには
の件だけど、恐らく、>>303のpathから見て、インストーラでデフォルト設定でinstallしたんだろうけど、
それだと多分、Windowsのサービスに登録されてるはず。その場合はDos窓から、
nat start mysql (mysql5かも?) で起動、
net stop mysql (同上) で停止。
多分自動起動になってると思われるから、Winを立ち上げると同時に起動してるはず。
コントロールパネル→管理ツール→サービスからでも起動、停止が行える。
(QueryBrowser等GUIツールは使ったことないんで、ようわからん。すまん)
起動だけなら、install_pathのmysqld-nt.exeをダブルクリックか、Dos窓から、直接そのmysqd-nt.exeを叩けばよい。
停止は、install_path/bin/mysqladmin shutdown で。

306:305
08/06/07 06:46:57 .net
続き
で、その起動時にオプションで、設定ファイル(my.ini)を読み込ませたり、charset他各種設定オプションを渡したりできる。
サービス登録の場合も、上記の「管理ツール」→「サービス」から、起動時のコマンドラインオプションを設定できる。
なので、charset等適切に編集したmy.iniを読み込ますように起動させればよい。
具体的な設定方法などは、本家のManual等を参照してくれ。
ちなみにWin版のバイナリ版phpは、php_mysql.dllがlatin1でコンパイルされてるので、
上記のことをやってなお、接続時に全てのクエリの前に "set names cp932" 等の処置が必要。
又は、上記の設定ファイル中で書くやり方もある。
それでは、がんばってくれ。

307:306
08/06/07 06:54:54 .net
ごめん。一つうそついてしまった。
php_mysql.dllじゃなくて、正確にはmysqlに付属のlibmysql.dllが、
デフォルトコードLatin1でコンパイルされているの間違い。
(まあ、phpバンドルのlibmysql,dllも同じことなんだけど)

308:303
08/06/07 15:37:12 .net
>>305さん
ご丁寧にレスありがとございます。
色々とお教え頂いた様に試してみたのですが相変わらず、文字化けしてしまします。

1.my.ini
[client]
default-character-set=sjis
[mysql]
default-character-set=sjis
[mysqld]
default-character-set=sjis
skip-character-set-client-handshake

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


309:303
08/06/07 15:43:13 .net
続きです。
3.php内部での文字コードの設定部分
mysql_query("SET NAMES sjis");
4.phpでテーブルより取得した値をsjisに変換した上で画面に出力
while($row = mysql_fetch_array($rs))
{
  /* 内部文字エンコーディングからSJISに変換 */
  $str = $row["NAME"];
  print("文字チェック1:[ ".$str." ] <br/>");
  $str = mb_convert_encoding($str, "SJIS");
  print("文字チェック2:[ ".$str." ] <br/>");
↓出力結果
文字チェック1:[ ?????l ]
文字チェック2:[ ?????l ]



310:303
08/06/07 17:57:02 .net
自己解決しました。
・・・MySQLってなかなか一癖ありますね。。。
思わぬ落とし穴がありました。


311:NAME IS NULL
08/06/08 04:27:00 .net
>>310
どう解決したかを書かないと意味がないだろ。
自分がよければそれでいいのかい?
とりあえず文字コードを多重変換して嵌ってたんだろうと推測しとく。

312:NAME IS NULL
08/06/08 15:15:06 .net
>>311
良いよ
だって自己解決したんだし。


313:NAME IS NULL
08/06/13 12:07:29 .net
質問です。
PHPとMySQLの連携を考えており、DBに接続して
PHPから表示させることは出来ました。
SELECT文についての質問ですが、今現在以下の通りになっています。
SELECT * FROM wp_posts WHERE ID = 30 OR ID = 190 OR ID = 170 ORDER BY ID DESC
これをPHPでwhileを使って縦に順番に表示すると、
ID=190、ID=170、ID=30の順番で書き出されました。
この表示する順番を、一番上からID=30、ID=190、ID=170と、
SELECT文に記述されたIDの順番通りに表示するには、どうすればよいでしょうか?
なにかいい案がある方、いらっしゃいましたらご教示下さい。

314:NAME IS NULL
08/06/13 12:35:19 .net
select * from wp_posts order by (case ID when 30 then -3 when 190 then -2 when 170 then -1 else ID end) asc;

315:NAME IS NULL
08/06/21 20:46:10 .net
union使えば?

316:NAME IS NULL
08/07/12 01:40:35 .net
MySQLはXen上では使えないんですか?
CentOSのDomU上でMySQL5を使っておりますが、
Buffer I/O error とやらが大量に出てきて、ファイルシステムが落ちます。
再現するのはMySQLが動いている時だけなので、MySQLが原因とみて間違いないと思います。
ディスクもディスクイメージも壊れていませんが。。。メソメソ

317:NAME IS NULL
08/07/13 22:11:33 .net
>>316
configureのときに--skip-bdbだったかな。

318:316
08/07/14 00:34:32 .net
>>317
ありがとう。試してみる。

319:NAME IS NULL
08/07/14 20:39:43 .net
PAM-MySQL の導入を検討しているのですが、
(see: URLリンク(pam-mysql.sourceforge.net))
crypt の値として平文、crypt(3)、PASSWORD()、MD5() を選択できるのですが、
平文は論外として、どの選択がよりセキュアなのでしょうか?

320:NAME IS NULL
08/07/15 22:00:56 .net
>>319です。自分でも調べてみようかと思いソースを覗いてみたら crypt=4 (or "sha1") で
SHA1 が使えたみたいなのでこれを使ってみることにします。
# と思ったら Web に書いてないだけで README に書いてあったorz

321:NAME IS NULL
08/08/02 18:51:16 ag3OZJze.net
4に戻したいですぅ


322:NAME IS NULL
08/09/06 16:57:02 .net
gooでも質問したのですがこちらでも質問させてください。
CentOS 4.6 に MySQL 5.0系をインストールして
port 80番で運用したいと考えています。
ところが、ポート80を指定して起動させると
以下のエラーになり、起動できませんでした。
mysqld started
InnoDB: Started; log sequence number 0 43655
[ERROR] Can't start server: Bind on TCP/IP port: Permission denied
[ERROR] Do you already have another mysqld server running on port: 80 ?
[ERROR] Aborting
80番を使用する http は停止させており、
iptables を停止させてもダメでした。
別のシステムで CentOS をインストールした直後のものに
MySQL をインストールしても同じ状態でした。
ちなみにMySQL 4.1 系では同じ条件下の環境で
my.cnf の[mysqld] で「 port = 80 」を
指定するだけで起動できました。
MySQL は CentOS のサイトからSRPMパッケージを取得し、
i686オプションを指定してリビルドしたものを使用しています。

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

サーバの環境は以下の通りです。
CentOS 4.6
MySQL 5.0.54(SRPM から RPM を作成してインストール)
インストールしたパッケージ
mysql-libs-5.0.54-1.el4.centos
mysql-5.0.54-1.el4.centos
mysql-devel-5.0.54-1.el4.centos
mysql-server-5.0.54-1.el4.centos

どなたかおわかりの方、情報をお願いできませんでしょうか。
よろしくお願いいたします。


323:NAME IS NULL
08/09/06 17:47:53 .net
1024未満のポートを使うにはroot権限が必要だから
どうしても80番を使いたければ
iptablesのNAT機能を使って80から3306へ変換しなさい
80番を使う動機を推測すると、たぶん外に公開したいのだろうから
stunnelやstoneなどのSSLプロキシを使うと更によいと思う

324:NAME IS NULL
08/09/06 17:50:16 .net
rootじゃないと80番は使えないんじゃ

325:NAME IS NULL
08/11/10 23:47:11 4lZdswNB.net
DBから値が取得できません。下記の設定のどこがまずいのでしょうか?
エラーにもなりません。教えてください。
【web.xml】
<web-app>
<resource-ref>
<res-ref-name>aiueo</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
【server.xml】
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/testtest" docBase="testtest" >
<Resource name="aiueo" auth="Container" type="javax.sql.DataSource" />
<ResourceParams name="aiueo">
<parameter>
<name>username</name>
<value>myusername</value>
</parameter>
<parameter>
<name>password</name>
<value>mypassword</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql//localhost/testdb?autoReconnect=true&characterEncoding=ujis</value>
</parameter>
</ResourceParams>
</Context>
</Host>

326:NAME IS NULL
08/12/03 07:14:35 Tn2R8xLf.net
configureコマンドで、with-mit-threadを指定する場合と指定しない場合で何が違うのでしょうか?
自分の理解としては、with-mit-threadを指定するとOSが提供しているスレッドを使って、
with-mit-threadを指定しない場合は、MySQLが提供しているスレッドの仕組みを使うという認識なのですが、あってますでしょうか?
ちなみにOSは、FreeBSD5系なのですが、どっちにしたほうがいいとかありますでしょうか?



327:NAME IS NULL
09/02/21 15:56:28 fHAIG+ux.net
>MySQLが提供しているスレッドの仕組みを使うという認識
ちがうよ。

328:NAME IS NULL
09/03/28 15:52:58 .net
MySQL初心者です。
テーブル名が(なぜか)小文字で作成されてしまった様なので
テーブル名を大文字に変更しようと思い、次のクエリを実行したのですが
一向に大文字になりません。一体何が原因なのでしょうか?
ALTER TABLE test_table RENAME TO TEST_TABLE


329:NAME IS NULL
09/03/28 16:41:02 .net
PHP5 / MySQL5.0を使用して簡単なデータベース登録
システムを作っているのですがどうやっても
日本語を登録すると文字化けして困っています。
どうすれば日本語が登録出来ますか?
※WindowsXP Pro
【C:\my.cnf】
[client]
default-character-set=sjis
[mysql]
default-character-set=sjis
[mysqldump]
default-character-set=sjis
[mysqld]
default-character-set=sjis
【C:\Program Files\MySQL\MySQL Server 5.0\my.ini】
default-character-set=sjis
[mysqld]
default-character-set=sjis
※基本このファイルの中にある「utf8」は全て
「sjis」に置き換えました。


330:NAME IS NULL
09/03/28 22:05:16 .net
>>328
OSはlinux? MySQLのテーブル名はそのままファイル名になるから
Windowsみたいにファイル名が大文字小文字区別しない環境だと
MySQLからも区別できないよ

331:NAME IS NULL
09/03/28 22:10:47 .net
>>329
PHPは使ってないけど、PHPのMySQLライブラリは my.cnf 参照してないって
聞いたことがある。デフォルトの laten1になるはず。
サーバの設定変更していいなら [mysqld] に skip-character-set-client-handshake を書くか
クライアントでなんとかしたいなら接続語に set names cp932 を投げたらいい。
ちなみに sjis は 4.1 以降では使わないほうがいいよ。 より広い cp932 で。

332:329
09/03/28 22:55:14 .net
>>330 >>331
レスありがとうございます。結論から言うと正常に日本語も登録されていました。
しかしCSEでのぞいていた為に文字化けしている様に見えただけでした。
odbcの文字コードの設定を sjis にしたら無事CSEからでも文字化けせずに見る
事が出来る様になりました。

333:NAME IS NULL
09/03/29 19:39:13 .net
TimeStamp型で定義したテーブルからデータを取得し、取得したデータを
として取得するにはどうすれば良いでしょうか?
2009-03-25 14:06:15
 ↓
2009年03月25日 14時06分15秒


334:NAME IS NULL
09/03/29 22:40:01 .net
日本語でおk

335:NAME IS NULL
09/03/29 23:36:13 .net
>>333
そういう処理はSQLでやるべきでない。

336:NAME IS NULL
09/03/30 00:23:52 .net
>>335
いやPHPでやる位ならSQLで一発でやりたいのです。
何か方法はありませんか?


337:NAME IS NULL
09/03/30 00:42:31 .net
>>336
おまえみたいな人間は生きているべきでない。

338:NAME IS NULL
09/03/30 01:06:23 .net
>>336
手荷物預かり所で「あのう、このカバンの色を変えたいのですが」と言ってるのと同レベル

339:333
09/03/30 01:13:56 .net
で結局やる方法は無いの?

340:NAME IS NULL
09/03/30 02:18:03 .net
やる方法はある
でも多分PHPで書くより遅い
mysql> select concat(year(c1),'年') from (select now() c1) v;
+------------------------+
| concat(year(c1),'年') |
+------------------------+
| 2009年 |
+------------------------+
1 row in set (0.00 sec)


341:NAME IS NULL
09/03/30 02:20:30 .net
>>333
date_format() つかえ。

342:NAME IS NULL
09/03/30 02:43:09 .net
>>340
???
てっきりSQLでやった方が速いと思ってたのですがPHPの方が速いのですか?
それはなぜなのでしょうか?
あと、SQLサンクスです。

>>341
ちょっとリファレンスを見てみます。


343:NAME IS NULL
09/04/13 16:46:07 H6WHEd1c.net
オートインクリメント有りのテーブルにレコードを入れた直後に
それが何番に入ったかを知る方法ある?

344:NAME IS NULL
09/04/13 17:14:42 .net

口の聞き方に気をつけろ


345:NAME IS NULL
09/04/14 11:11:22 9P4yOkB6.net
質問させてください。
id(ユニーク)とcount の二つのカラムがあるテーブルがあったとして、
このテーブルに入っているレコードをcountでorder by したあと、特定のid、例えばid=10 の前後5個分のレコード(つまり、id=10を入れて11個のレコード)を取得したいとき、どのようなSQLを発行すればよいでしょうか??
ご教示頂けると幸いです。

346:NAME IS NULL
09/04/14 11:18:19 .net
ぐぐれかす

347:NAME IS NULL
09/04/14 22:04:20 .net
>>343
SELECT LAST_INSERT_ID();


348:NAME IS NULL
09/04/21 22:28:27 SBmgavX0.net
SELECT LAST_INSERT_ID();

349:NAME IS NULL
09/04/21 23:49:08 .net
買収されてしまいました

350:NAME IS NULL
09/04/22 00:03:09 .net
どうなるんだろうね
つぶされちゃうのかな

351:NAME IS NULL
09/04/22 01:34:01 .net
今更潰すは、さすがに考えにくいんじゃないの。
ポスグレに持っていかれるくらいなら、撒き餌として残すだろ。。たぶん。

352:NAME IS NULL
09/04/22 17:41:38 .net
mysqlはoracleの下位バージョンとして開発し
その上位バージョンとしてoracleを持ってくることで
フリーと商用のシェア拡大を目指す

353:NAME IS NULL
09/04/22 23:11:23 .net
MySQLの次期バージョンを出したり将来のビジョンを提示したりして
今後も発展するんだ、安心だ、と思わせといて飼い殺す。


354:NAME IS NULL
09/04/23 05:37:34 .net
oracleもタダで使う方法もあるしな

355:NAME IS NULL
09/04/23 10:48:53 .net
win版の5.0.77-community-ntですがCSVエンジンを利用するにはどうすれば良いですか?
show enginesでNOになってます。


356:NAME IS NULL
09/04/28 01:22:42 +/FWF+FK.net
MySQLのオラクルマスターを作ればMySQLに力を入れる
MySQLのオラクルマスターを作らないならMySQLに力を入れない

357:NAME IS NULL
09/04/28 08:46:32 aHnBfSXl.net
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
にして、mysqlを二個立ち上げて、両方から
BEGIN;
して、片方で適当にINSERTしてコミットしてないのに、もう片方からは
SELECTするともう見えてるんだけど、これでいいのでしょうか?
テーブルはInnoDBで作ったけど。


358:NAME IS NULL
09/04/28 08:58:40 .net
よくないよ
どこか間違ってるよ

359:NAME IS NULL
09/04/28 09:00:39 aHnBfSXl.net
>>358
最初に両方からSelectをやっとくと、その後片方がINSERTしたのがもう片方からすぐに
見えるんだけど、なにか間違ってるんでしょうか?


360:NAME IS NULL
09/04/28 15:24:24 .net
■セッション1
mysql> set transaction isolation level serializable;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test;
Empty set (0.00 sec)
■セッション2
mysql> set transaction isolation level serializable;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test;
Empty set (0.00 sec)
■セッション1
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values (1);
Query OK, 1 row affected (0.00 sec)
■セッション2
mysql> select * from test;
Empty set (0.00 sec)
みえないよ?


361:NAME IS NULL
09/04/28 22:31:31 .net
>>359
テーブルが InnoDB じゃなくて MyISAM になってるとか。

362:NAME IS NULL
09/05/01 01:09:50 vXvzRfg3.net
すいません質問させてください。
URLリンク(q.hatena.ne.jp)
このページと同じ質問なのですが、やはり3番のsqlがベストなのでしょうか??
「特定のカラムの値がそのテーブルの特定の条件のもとで最大値を有しているレコードをselectする」というのが割と簡単にできるのではないかと思っていたのですが、
ここの回答のように副問い合わせするのが一番無難な感じなのでしょうか?
order by xx desc limit 0, 1
も試してみましたが、全レコードをsortするためか、副問い合わせを使ったものよりレスポンスが遅めでした。(レコードが10万件くらいある。。)
アドバイス頂けると幸いですm(_ _)m

363:NAME IS NULL
09/05/01 03:24:22 .net
>>362
Table構成がそのはてなの質問と同じとして、id及びgoods_idに
複合インデックスが貼ってあり、それがユニークか、Hit率がテーブル全体のレコード数より
十分少なければ、order by descが早いんでないかな。
もっと言うと、INDEX(id,goods_id,date)で複合インデックスがあればなおよし。
でなくて、idとgoods_idの値が、レコード全体の多くにHitしてしまう場合は、
そこにあるようにサブクエった方が早そうな感じ(もちろんdateにインデックスが貼ってあるとして)。

364:NAME IS NULL
09/05/01 17:12:12 .net
質問ですが、
以下の感じでやろうとしてます

select 学生id ,出席日数,出席率 from 学生名簿
left join 
(select sum(出席) as 出席日数 , sum(round(出席数/365,2)) as 出席率 ,学生id from 出席簿
 where 学生id in ( select 学生id from 学生名簿 order by 学生名 limit 0,50) group by 学生id) as 出席データ on 出席データ.学生id=学生名簿.学生id
order by 学生名 limit 0,50
学生名簿(カラム):学生id(primarykey),学生名
出席簿(カラム):学生id,日付,出席(enum(1,0))
limitができれば高速になるんですが、ないとusingfilesortになります。
mysqlでサブクエリにlimit発行できないので、なにかいい方法があればご教授願います。


365:NAME IS NULL
09/05/01 19:05:41 .net
俺なら、状況に応じて以下のどれかで対応する。
・クエリキャッシュをアテにする
・バッチで予め計算しちゃう
・クエリを分割する
・テーブル分割をやめる
・全部抜いてから計算する
・そもそも高速化する必要があるか考える

366:NAME IS NULL
09/05/02 00:09:29 .net
なあ、ちょっと真剣にマジで教えてほしい
あるデータベースのプライマリキーをキャラクタ属性で設定することのデメリットって何だと思う?
キーはINTにすんのが検索も早そうだし、多分そうなのかも知れんが納得できる理由がはっきりしない
まあCHARだとコレーションで正しくソートされない可能性があったりCOUNTが正しくされないのかも知れないけど
現場レベルでは盲目的に数値型にしてるような気もすんだよね
何か論理的な理由を聞かせてもらえないか?

367:NAME IS NULL
09/05/02 00:12:02 .net
>>366
あんたの現場がすべてではないよ。
単にDB設計をさぼってるだけで、
安易に一意になるものということで連番振ってるだけでしょ。


368:NAME IS NULL
09/05/02 00:27:22 .net
プライマリーキーはchar型かそれとも数値型か
スレリンク(db板)


369:NAME IS NULL
09/05/02 00:36:49 .net
>>364
>( select 学生id from 学生名簿 order by 学生名 limit 0,50)
一見するとこれいらないと思うんだが。

370:NAME IS NULL
09/05/02 23:21:14 iDaEn/bV.net
3つのテーブルをjoinするときに、
A left join B on A.id=B.id left join C on B.id=C.id
というふうにするのと、
(A left join B on A.id=B.id ) left join C on B.id=C.id
というふうに括弧で囲むのとって、どちらのやりかたが適切とかありますか?


371:NAME IS NULL
09/05/03 09:13:50 .net
変に括弧とかかかないで
最適化はMySQLに任せてしまったほうがいい・・・はず

372:NAME IS NULL
09/05/03 22:18:47 EMVU4nk/.net
すみません。今日はじめてXAMPPからMySQLをインストールしたんですが
デフォルトでパスワードが無い状態なので、掛けようと思うのですが、
掛け方はいろいろ書いてあるのですが、みんなどこに書いているのかが分かりません。
コマンドプロンプトかと思って入力しても、エラーがおこるのですが
どこに入力したらよろしいのか教えてください

373:NAME IS NULL
09/05/04 00:04:54 .net
>>370
絶対に括弧で囲まないとだめ。
joinするときの結合キーがそのテーブルのprimary keyなら結果は同じなんだけど、
そうでない場合、括弧で囲む場合と、そうでない場合で結果がかわる。
なぜかというと、括弧なしの場合、AとBをjoinした結果フェッチする行数が存在しない場合でも、
BとCのleft joinを行うからだ。


374:NAME IS NULL
09/05/04 06:11:39 pQt/LC0v.net
質問です。
バイナリログがうまく書き込めないんです。
以下のようなログが出てます
----------------------------------------------
/home/mysql/data$ mysqlbinlog mysql-bin.000008
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
mysqlbinlog: File 'mysql-bin.000008' not found (Errcode: 13)
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
----------------------------------------------
何か原因として考えられることはありますか?


375:NAME IS NULL
09/05/04 09:26:12 .net
>>374
mysql-bin.000008 かそれが置いてあるディレクトリにパーミッションがない。

376:NAME IS NULL
09/05/05 19:52:00 +Yc0J8ac.net
バイナリログに、いつもファイルの最後にこんなのがでるんだけど。
ROLLBACK /* added by mysqlbinlog */;
これ、何かわかる人いますか?


377:NAME IS NULL
09/05/05 21:41:38 .net
読んでそのままでは?


378:NAME IS NULL
09/05/05 22:20:56 +Yc0J8ac.net
>>377
コメントを訳すと、mysqlbinlogによって追加されました、となるけど、
なんで追加するのかなーと。なんでROLLBACKする必要があるのかと。


379:NAME IS NULL
09/05/06 15:32:14 .net
>>370
A left join ( B left join C on B.id=C.id ) on A.id=B.id

380:NAME IS NULL
09/05/08 04:03:39 .net
>>379
流石にそれはない


381:NAME IS NULL
09/05/11 12:33:48 gPGRNLrz.net
ネットワーク越しに接続させたいので、ユーザXXXに10.1.1.1から接続できるように設定したいと思ってます。
userテーブルにはXXXがlocalhostから接続できるという設定の行があるので、それを流用したいとおもっている
のですが、そんなこと可能でしょうか?
自分でINSERT文を書くのはできれば避けたい('Y'とか'N'が多すぎるし)のですが、普通は自分でINSERT文を
書くべきなのでしょうか?
よろしくお願いします。


382:NAME IS NULL
09/05/11 13:00:22 gPGRNLrz.net
例えば、ストアドプロシージャを書いて、その中でSELECTの結果を保存して、
一部を書き換えて、INSERTの引数として使うこととかってできますか?


383:362
09/05/11 16:32:24 l33ZsoDq.net
お礼遅れてすいません。ありがとうございます。
やはり自分のところではorder by よりmaxのサブクエリを使った方が早いみたいでした。

384:NAME IS NULL
09/05/11 19:39:27 gPGRNLrz.net
selectの結果を保存するのは出来ない気がしてきたので、ストアドプロシージャの練習を兼ねて
書いてみました。
DELIMITER //
CREATE PROCEDURE net_user_enable(IN myhost CHAR(64), IN myname CHAR(64), IN mypassword CHAR(64))
BEGIN
-- 1: USERテーブルにユーザとホストの組み合わせを追加
INSERT INTO mysql.user VALUES (myhost,myname,PASSWORD(mypassword),'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0);
-- 2: dbテーブルにホストを追加
INSERT INTO mysql.db VALUES (myhost,'%',myname,'Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
FLUSH PRIVILEGES;
END //
DELIMITER ;
-- こんな感じで使ってね。
CALL net_user_enable('localhost','hoge','hogeのパスワード');


385:NAME IS NULL
09/05/12 00:12:08 v5EaLHhs.net
CREATE FUNCTIONで関数定義するとき、SELECT文を使えないのでしょうか?
CREATE FUNCTION hogefunc(num INT) RETURNS INT
BEGIN
SELECT "hogehoge";
RETURN 2;
END//
こう書いても受け付けてくれません。


386:NAME IS NULL
09/05/17 08:44:42 .net
database「hogedb」の中にテーブル「hoge」「age」「sage」を作ったのだが、
うち一つはselect時にselect * from hogedb.hogeのようにデータベースを指定しないとエラーになる。
なんで??
エラー内容;
RROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'hoge' at line 1


387:ワークベンチ
09/05/17 08:48:02 .net
Workbenchでテーブルを作成しました。ここからCREATE文のスクリプトを作成することは出来ますが
ついでにInsert文のスクリプトも作成することは可能でしょうか?
(テーブルのタブに「Inserts」というのがあり、ここで投入用のデータをエディタで書けるのだが、ここからどうすればスクリプトに落とせるのか不明)
知ってたら教えて下さい

388:386
09/05/17 08:59:05 .net
URLリンク(kansai2channeler.hp.infoseek.co.jp)
違ったデータベース名、テーブル名は関係なかった。よくよく見るとスクリプトでテーブルを作るときに警告が
出てた。上にアップしたスクリプトは簡単なテーブルを3つ作るだけなのだが、何がおかしいのだろうか
単純にselect * from order;がエラーになる。(データベース名を指定するとおk)

389:386
09/05/17 10:38:07 .net
予約語だった。。。知らなかった
ちくしょー!!

390:NAME IS NULL
09/05/17 20:25:32 vKUcKlyZ.net
ユーザーがグループに所属していて、グループもまた別のグループに所属しているような階層構造になっている場合、
どうやって所属情報をDBに入れるのが賢いの?
上位グループに所属するユーザーを抽出するクエリがつくりにくいんだけど

391:NAME IS NULL
09/05/17 22:33:04 .net
RDBMS向きじゃないね。

392:NAME IS NULL
09/05/18 00:00:52 .net
>どうやって所属情報をDBに入れるのが賢いの?
MySQL捨ててPostgreSQLに入れるのが賢い。

393:NAME IS NULL
09/05/18 06:05:35 .net
何の問題も無いだろ

394:NAME IS NULL
09/05/18 07:09:02 .net
Postgresは現行VerでもOracle風のconnect byが使える。
もうすぐ出る次期VerではSQL99準拠のWITH RECURSIVEも
使えるらしい。

395:NAME IS NULL
09/05/18 17:30:27 .net
日本語でおk

396:NAME IS NULL
09/05/18 18:03:51 .net
ツリーってDB入れるの無理だろ

397:NAME IS NULL
09/05/18 19:06:38 .net
URLリンク(www.efukt.com)

398:NAME IS NULL
09/05/19 02:33:18 WKjGD5xV.net
dumpが出来ないです
mysqldump -u root hoge > c:\backup\dump.sql
とMysqlコマンドに入力すると
Unknown command '\b'.
  ->
となるだけでdumpできません
Cドライブにbackupファイルも作ってありますが、何か足りないのでしょうか?

399:NAME IS NULL
09/05/19 03:19:57 .net
>>396
そのためOracleとかでは階層問い合わせをするための独自の文法が定義
されているし、標準SQLでもSQL99以降で再帰クエリを記述する文法が
追加されている。
こういった拡張を使うとツリーに対する検索とか>>390のクエリなんか
はもっと簡単に書けるよ。
で、フリーのRDBMSではPostgreSQLがこのあたりの拡張によく対応して
いるから、一つの選択肢として紹介したわけで。
URLリンク(lets.postgresql.jp)
MySQLというか再帰が無いSQLで書く技もあるけど、結構な頭の体操。
URLリンク(www.mysql.gr.jp)

400:NAME IS NULL
09/05/19 03:37:21 .net
随分なスロークエリの悪寒。。しんどいね。。

401:NAME IS NULL
09/05/19 09:27:40 .net
>>398
mysqldumpはmysqlクライアント上のコマンドじゃなくて
単体のプログラムだ

402:NAME IS NULL
09/05/19 16:26:07 .net
>>401
ありがと
ばっちりできました


403:NAME IS NULL
09/05/19 18:06:12 .net
>>399
再帰が無いSQLで書く技を使えば他のSQLに乗り換えるときコード修正不要?

404:NAME IS NULL
09/05/19 22:03:06 .net
他のSQLにも色々あるしなぁ。
シンプルなselectひとつ取っても、
例えばSQLiteでは使えるカラム名が
MySQLでは予約語だったりするしなぁ。

405:NAME IS NULL
09/05/20 08:40:18 .net
>>404
キーワードじゃない語は全部ちゃんと
クォートすれば。


406:NAME IS NULL
09/05/20 17:58:15 .net
気本棚

407:NAME IS NULL
09/05/23 17:45:10 2SizHsxE.net
始めてデータベースを移転するのですが教えてください
mysqldumpでやったのですが
Aserver からBserverに全てのデータを移転するのですが
先ずAserver で
mysqldump -A -u root -p a234abc --opt > dump.sql
rsync -avz -e ssh /root/mysqldump/ Bserver:/root/mysqldump/
でAserverのdump.sqlをBserverに移して
Bserverに入って
cd /root/mysqldump
mysql -u root -p 1234abc < dump.sql
としたのですがpasswd を聞いてくるのでパスワードを入力しても
ERROR 1049 (42000): Unknown database '1234abc'
とエラーが出ます間違った操作をしているのでしょうが何が悪いのか
解りませんどなたか教えていただけませんか
Aserverはmysql4.1ですBserverはmysql5.0 です

408:NAME IS NULL
09/05/23 21:35:18 .net
1234abcなんかしらないとエラーが言っている

409:NAME IS NULL
09/05/23 22:13:08 .net
先に
create database 1234abc;
をする

410:NAME IS NULL
09/05/24 11:57:46 zGV2NEj3.net
便乗質問です。
mysqlってダンプファイルの中身見て、ロード先のDBに必要な
データベースがなかったら自動的に作成してくれるもんじゃないの?

411:NAME IS NULL
09/05/24 12:30:22 .net
ダンプファイルってつまり単なる普通のSQLの塊だから
データをINSERTする前にテーブルをDROPしてCREATEするだけ。
それがダンプしたSQLの先頭にあるかないかの問題で、
MySQL側がどうこう言うことではないと思うが。
ダンプするツールが対応するか、もしくは手書きすべきだ。

412:NAME IS NULL
09/05/30 23:42:08 59hmKSc9.net
すごい初心者な質問なのですが…
phpMyAdminのインストールってデータベースを作った後からでも
大丈夫なのでしょうか?
XREAでWordpressを使ってます。
MySQLからエントリーの中身をエクセルに落としたいのですが、
phpMyAdminをまだインストールしてませんでした。
XOOPSだと後からインストールすると問題ありな記事を読んだので
ちょっと不安になってしまいまして…
よろしくお願いします。



413:NAME IS NULL
09/05/31 10:28:51 .net
>>412
まったく問題ないと思うけど。。。
単なるPHPコードだよ? 何かあるわけない。

414:NAME IS NULL
09/06/01 23:16:57 .net
助言をいただきたいのですが…。
SELECT t1.id, t1.data, t1.update FROM table_name t1
WHERE t1.update = (SELECT MAX(t2.update) FROM table t2 WHERE t1.id = t2.id)
これは、重複するidを持つレコードが複数あるテーブルから、
更新日updateの一番大きいレコードだけをかいつまんで取得するSQL文です。
ここにさらに条件を加え、各idの「一番小さいupdate」をキーにソートしたいのですが、
効率の良いSQL文が書けません。
アドバイスをいただければありがたいです。
(グループ化とかいいつつ、結局GROUP BY使わない方法でやってますが…;)

415:NAME IS NULL
09/06/01 23:23:24 .net
idと更新日のペアがタブっていたらどうするの?

416:NAME IS NULL
09/06/01 23:29:24 .net
SELECT
 t1.id, t2.data, t1.max_update AS update
FROM
 (SELECT
  id, MAX(update) as max_update, MIN(update) as min_update
  FROM table_name GROUP BY id) t1,
 table_name t2
WHERE
 t1.id = t2.id AND t1.max_update = t2.update
ORDER BY
 t1.min_update

417:NAME IS NULL
09/06/02 10:48:25 .net
>>415
idと更新日のペアは一意になるようになっています。
>>416
ありがとうございます!
とても勉強になります。

418:NAME IS NULL
09/06/02 11:23:58 .net
PHP から MySQL を使っています。
SELECT で varchar(2000) の値を取得するときのことなのですが、
PHP 側ではこの値の冒頭200文字程度しか利用しないと分かっているとき、
はじめから SUBSTRING で値を削って取得するメリットは小さいでしょうか?
一般に MySQL で余計な関数を使うと処理が遅くなると聞きますので、
こういった文字列処理は値を取得しておいてPHP側でしたほうがよいですか?
なんとなく、あらかじめ削っておけばメモリの消費が抑えられるのではないかという考えがよぎって迷っています。

419:NAME IS NULL
09/06/02 13:02:24 .net
グループ化についてもう一つ助言をいただきたいのですが…。
GROUP BY AAA, BBB
これは、AAAとBBBが同一のものをグループ化すると理解しています。
そうではなく、AAAでグループ化して、さらにそれをBBBでグループ化する、
のようにGROUP BYを入れ子にするには、どのようなクエリを書けば実現できるのでしょうか?

420:NAME IS NULL
09/06/02 13:41:43 .net
>>418
考え方による。
大規模なwebアプリなら、圧倒的にPHP側で処理すべきと思う。
あなたの力量にもよるけど、突き詰めると、DB側で処理するメリットは無い。
DB側で処理すれば、結果セットが巨大でもデータ転送が速く、かつ省メモリ。
しかし、データが永続的に増える条件下での削減量はたかが知れてる。
DB側で処理すれば、PHPコードがシンプルになる。
しかし、マルチバイト文字の扱いが微妙だし、潰しが聞かない処理(リクエスト、関数、etc)が増える。
DB側で処理すれば、クエリキャッシュが効けば1回限りの処理で済む。
しかし、処理済みデータをオンメモリキャッシュしたほうが、もっと速い。
DB側で処理すれば、PHP側の処理が軽くなる。
しかし、DBよりPHPのほうが簡単にスケールできる場合が多い。
こんな感じでいかがかしら。

421:NAME IS NULL
09/06/02 13:51:14 .net
>>419
SELECT * FROM (SELECT * GROUP BY AAA) GROUP BY BBB
ただしAAAでグルーピングした時点でBBBの内容は不定になっている。
これで目的が達成できているか、不明。

422:NAME IS NULL
09/06/02 14:40:11 .net
>>419
不可能。

423:NAME IS NULL
09/06/02 18:38:46 .net
>>419
>AAAとBBBが同一のものをグループ化
えー、そうだっけ?


424:NAME IS NULL
09/06/02 19:28:58 .net
GROUP BY AAA, BBB がそうだろ?

425:NAME IS NULL
09/06/02 22:06:54 .net
>>419
GROUP BYを入れ子にって、いったいどういう結果を期待してんの?
勝手な言葉で質問しても解釈がまちまちだからごらんの有様だよ。

426:NAME IS NULL
09/06/03 23:00:07 .net
>>420
ありがとうございます!!

427:NAME IS NULL
09/06/17 20:22:30 .net
accessから移植したいんだけど、最後に;をつけるだけでおk?
create tableなんかはtype=InnoDB;つけないとだめ?

428:NAME IS NULL
09/06/17 21:07:07 .net
データ型そんなに互換性ないだろう
全部見直さないとダメ

429:NAME IS NULL
09/06/17 23:21:33 .net
access使うようなのがトランザクション処理が必要なのだろうか…
myisamでいい気がするがなあ

430:NAME IS NULL
09/06/18 20:31:27 .net
>>428
大幅に見直すのはcreateのところだけじゃ不十分かな?
select,insert,updateの構文は;つければ使えない?


431:NAME IS NULL
09/06/19 12:45:53 .net
selectで、○番目と○番目のレコードを取得、ってしたいんですが、
limitで複雑な指定できませんよね?
サブクエリを駆使するしかありませんか?
イメージとしては、こんな感じに指定したいんです。
SELECT * FROM table LIMIT (0, 1 AND 5, 1)

432:NAME IS NULL
09/06/19 12:51:14 .net
>>430
見直しが極めて望ましい。
DBは意外と互換性がないので。


433:NAME IS NULL
09/06/19 12:54:58 .net
>>431
UNIONがおすすめ。
(1つ目のクエリ LIMIT 0,1) UNION (2つ目のクエリ LIMIT 5,1)
いくつ繋げてもindex効くし、綺麗。

434:NAME IS NULL
09/06/19 13:47:54 .net
>>433
ありがとうございます!
各クエリともLIMIT部分以外が同一であっても、
やはりクエリの数だけ走査しなおしてしまうのですよね?

435:NAME IS NULL
09/06/19 17:54:37 .net
SELECT SUM( p.point )
FROM point_table p
GROUP BY p.id
ORDER BY SUM( p.p.point ) DESC
LIMIT 100
これは、各idのもつpointの合計値を、pointの多い順に上位100件取得するクエリです。
ここで得られるpointの合計値を求めたいのですが、
上のクエリをどのように修正すれば良いのでしょうか?

436:NAME IS NULL
09/06/19 18:43:32 .net
>>434
つ EXPLAIN
また、一時テーブルをつくる方法も。

437:NAME IS NULL
09/06/19 19:38:32 .net
>>436
なるほど、一時テーブルですか。検討してみます。
ありがとうございます!

438:NAME IS NULL
09/06/20 09:28:26 .net
>>430
そのまま移植して動かして見てエラーが出たらなおせばいい

439:NAME IS NULL
09/07/03 12:40:09 .net
MySQL を勉強中なのですが、クエリの最適化について悩んでいます。
SELECT d.date, i.ip, n.name
FROM update_log d
LEFT JOIN update_log i USING(id)
LEFT JOIN update_log h USING(id)
WHERE d.id = 100
AND i.ip IS NOT NULL
AND n.name IS NOT NULL
ORDER BY d.date DESC, i.date DESC, n.date DESC
LIMIT 1
『条件』
・update_log テーブルから、指定した id に該当するレコードのdate, ip, nameを取得する
・ただし、ip, name の各項は NULL 値が入っている可能性がある
・NULL 値ではない、もっとも date が大きいレコードを各項について取得する
上記クエリだと、取得にかなり時間がかかってしまうため、
よりよいクエリを発行したいのですが、よいアイディアが生まれません。
助言いただけましたらうれしいです。

440:NAME IS NULL
09/07/03 13:04:22 .net
nとhが混ざってね?
それは置いといて、クエリよりインデックスの張り方の問題じゃないかな。
それぞれのテーブルに複合インデックスを張れば
普通に激速になりそうな気がする。

441:NAME IS NULL
09/07/03 13:13:46 .net
いや、よく見るとクエリも変?
LEFT JOINいらなくね? 違うか?

442:NAME IS NULL
09/07/03 13:26:49 .net
それ自己結合する意味あんの?
条件の1つ目と3つ目なんて違う話だし


443:NAME IS NULL
09/07/03 15:08:14 .net
レスありがとうございます。
>>440
すみません、一個所 n が h になっていました。
インデックスは EXPLAIN 見ながら貼り直したりしてみたのですが、
特に変化はみられませんでした。
>>441
>>442
それぞれの値を取得するために、
3つばらばらにシンプルなクエリを発行したほうが良いということでしょうか?

444:NAME IS NULL
09/07/03 15:41:51 .net
すみません、そもそもクエリが条件に合致していませんでした。
SELECT d.date, i.ip, n.name
FROM update_log d
LEFT JOIN update_log i ON (i.id = d.id)
LEFT JOIN update_log n ON (n.id = d.id)
WHERE d.id = 100
AND i.ip IS NOT NULL
AND n.name IS NOT NULL
ORDER BY d.date DESC, i.date DESC, n.date DESC
LIMIT 1

445:NAME IS NULL
09/07/03 19:52:22 .net
サブクエリ使ってください
select l1.date, l1.ip, l1.name
from update_log l1
where id = <入力値>
and date = (
select max(l2.date)
from update_log l2 where l1.id = l2.id
and l2.ip is not null
and l2.name is not null
)

446:NAME IS NULL
09/07/03 21:14:10 .net
>>445
それだと全フィールドがnullのレコードが選択されるんじゃね

447:NAME IS NULL
09/07/04 00:15:52 .net
アドバイスありがとうございます。
いろいろ試した結果UNIONでつなげることで落ち着きました。
はじめのクエリだとなぜだめなのかが、よくわかりません。
500行のテーブルに対して10秒近くかかってしまっていました。
クエリのどこに原因があるのか、おわかりになる方いましたら、
ぜひ教えてください。m(_ _)m

448:NAME IS NULL
09/07/07 17:41:36 .net
二つのDATETIME型の差をTIMEDIFF関数を使って求めたのですが、838時間以上は丸められてしまいます。
正確な秒数を求める方法はありますか?

449:NAME IS NULL
09/07/08 18:44:51 .net
>>448
time型ではそれ以上の時間は扱えない。

450:NAME IS NULL
09/07/17 22:48:11 .net
あるレコードを DELETE するのと
あるレコードの主キーを UPDATE するコストっていうのはあまり変わらないですか?

451:NAME IS NULL
09/07/18 00:19:49 .net
全然違う。
DELETEは重い。頻度にもよるけど、リアルタイムで叩くなら、最もやってはいけない事。
一方、主キーを書き換えるのもヘン。主キーは唯一のレコードを特定するのに用いるべきで、
途中で書き換えてよいデータでは基本的にない。


452:NAME IS NULL
09/07/18 05:01:47 .net
コストがかかるのはindexがある場合のそのメンテと、外部キーの参照先になっている
場合とかだろ。deleteそのものはinsertとそんなに違うわけじゃない。
ところで、コストが全然違うと言いたいのか、どっちもコストがかかると言いたいのか
どっちなんだ。

453:NAME IS NULL
09/07/18 12:41:08 .net
感じ悪いスレだな

454:NAME IS NULL
09/07/19 00:31:12 .net
固定長のテーブルなら気にしない

455:NAME IS NULL
09/08/02 10:47:35 .net
うん
ただupdateにくらべてdeleteが死ぬほどおもいのはたしか

456:NAME IS NULL
09/08/02 11:39:00 .net
MySQLの全文検索って日本語対応してますか?
n-gram検索ですか?それとも分かち書きされたワード検索ですか?


457:NAME IS NULL
09/08/02 15:30:56 .net
分かち書きされたワード検索。
日本語も分かち書きすれば一応使える…けど普通はSenna使う

458:NAME IS NULL
09/08/03 21:38:34 .net
そうなんですか。
ググったら、Sennaもワード検索と、あと2-gramをサポートということなんですね。
2-gramがあれば完全に自由な文字列でも検索できるのかな。
Debianではsennaのパッケージが見付からないのが残念です。


459:NAME IS NULL
09/08/03 21:52:10 .net
Windows XP SP3
MySQL 5.1 です、root のパスワードを忘れてしまいました
Google でMysql パスワード 忘れたで検索しますが、的確なすべがわかりません
ご教示願います。

460:NAME IS NULL
09/08/03 23:22:30 .net
試してないが。これで駄目?
URLリンク(miztools.so.land.to)

461:NAME IS NULL
09/08/04 21:23:23 .net
>>460 さん
ありがとうございます。
掲示していただいたURL
「root パスワードを忘れたときの 伝家の宝刀:1」ここに書かれている
mysqld-nt にパラメータを付加し起動する方法を、試すのですがWindows版MySQL 5.1 にmysqld-nt.exe が無いので
お手上げになっている状況です。


462:NAME IS NULL
09/08/05 04:38:46 .net
>>461
ちょっと考えれば分かるだろうけど、タスクマネージャで現在実行中のファイル名とか確認しましょうぜ。
ちなみにウチでは、テスト用ユーザーをたくさん作ったあと、権限テーブル初期化する時なんかは、
>>460のサイトにある宝刀:2の方法でいつもやってるな。
まあ失いたくない情報なら、その時点でファイルのコピー取るなり、mysqlDB(ディレクトリ)以下のテーブルの
dump取っとくことをお勧めする。
何、インストール時にそんなバックアップなんか取ってないって?
それなら本家行って、初期状態のをとってくればよろしい。

463:NAME IS NULL
09/08/05 21:38:30 .net
>>462さん>>461 です
どうもです、
>>それなら本家行って、初期状態のをとってくればよろしい。
本家ってURLリンク(www-jp.mysql.com) ここのことだと思うのですが
これって再インストールしろってことですか?


464:NAME IS NULL
09/08/06 06:37:10 .net
URLリンク(dev.mysql.com)

465:NAME IS NULL
09/08/14 20:39:45 .net
ちょっとした事、教えてください。
on duplicate key update で insertした時、insertした内、何件がinsertで、何件がupdateだったとかって
判りますかね?
そういうのが知りたい場合は on duplicate keyを使うべきではない?


466:NAME IS NULL
09/08/15 22:23:31 JM2SHLWw.net
MySQLの設定について教えて下さい。
BLOB型にVB.NETから格納しようとINSERT文を使っても
MySQL側の制限のせいでbyte配列の0番目の(63)しか格納できません><
ご回答よろしくお願いします。
環境
Ubuntu9.04
MySQL 5.0
VB.NET(mysql.data.dll使用)

467:NAME IS NULL
09/08/16 13:09:44 .net
>>466
質問になってないな…

468:NAME IS NULL
09/08/16 15:06:45 .net
>>466
スキーマ、SQL文とか
制限があると判断した根拠がないとな。

469:NAME IS NULL
09/08/17 14:44:57 .net
別ファイルにテーブル定義を作成してます(10テーブル)、そのファイルを
MySQL に読み込ませて、新規テーブルを作成したいのですが、具具ってもコマンドが分かりません、教えてもらえないでしょうか。

470:NAME IS NULL
09/08/17 21:49:18 .net
>>469
mysql dbname < filename


471:NAME IS NULL
09/08/22 17:31:04 .net
>>470
>>469です
お礼が遅くなりました、ありがとうございます。


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


473:NAME IS NULL
09/08/30 23:34:29 .net
regexp ?  rlike ?
よく判んね w

474:NAME IS NULL
09/08/30 23:39:10 .net
>>472
mysqlじゃ無理。おとなしくプログラムで対処するしかない。


475:NAME IS NULL
09/09/02 17:36:46 .net
MacOS X Leopard から SnowLeopard への以降に伴い、
MySQLを5.0(x86)から5.1(x86_64)にアップグレードしました。
このとき、データベースファイルはそのままコピーできるものなのでしょうか。
それともmysqldumpとかを使った方がいいのでしょうか。
5.0から5.1への移行における、おすすめのデータファイル移行方法を教えてください。
よろしくお願いします。

476:NAME IS NULL
09/09/05 21:21:30 .net
CPU違うならdumpしなきゃだめよ。
dumpだけでいいかはしらん。

477:NAME IS NULL
09/09/05 23:09:50 .net
MySQL で 5時間前 や 5時間後 を算出するにはどうすれば良いでしょか?
AddHour(2)とかって関数は無いのでしょか?
SELECT SYSDATE() + 5 / 24 FROM TEST_TABLE
としているのですが変な値が返って来ます。


478:NAME IS NULL
09/09/05 23:55:52 .net
>>477
addtime

479:NAME IS NULL
09/09/05 23:59:45 .net
>>478
サンクス

480:NAME IS NULL
09/09/23 15:29:42 .net
急な停電のためmysqlのデータベースファイルが壊れてしまったのですが
myisamなテーブルはrepairで復旧できたのですが
innodbの場合はrepairしようとするとエラーが出てしまうのですが何か復旧方法ってありますでしょうか?

481:NAME IS NULL
09/09/23 22:23:11 .net
UPS使ってないシステムなんてしらん

482:NAME IS NULL
09/09/24 02:58:26 .net
とりあえず現状をバックアップしてさらに壊したときに対応できるようにする。
んで innodb_force_recovery を6に。

483:NAME IS NULL
09/10/21 20:25:16 G/42etG5.net
すいません。ここじゃないかもしれませんが知ってたら教えてください。
mysql workbench5.1.16 OSX版を使用していますが、
カラムの型をdouble (16,9)とかにしてもただのdoubleになってしまいます。
なんなんですかいったい。DBデザイナーだとちゃんといくのに。設定で回避できたりしないでしょうか??

484:NAME IS NULL
09/10/21 23:05:05 nmNVAfvz.net
MySQLでテーブルのカラムはいくつくらいまで作成しても大丈夫ですか?
50~100個とか普通は作成しないでしょうか。

485:NAME IS NULL
09/10/21 23:07:26 .net
>>484
URLリンク(nippondanji.blogspot.com)

486:NAME IS NULL
09/10/21 23:45:02 nmNVAfvz.net
>>485
回答有難うございます!
InnoDBの場合は1000カラムまでで、これは速度はほとんど低下しないと期待してもよいのでしょうか?

487:NAME IS NULL
09/10/22 15:08:28 .net
1000カラムのうちLOBがいくつあるかによる
LOBが増えれば増えるほど遅くなるよ

488:NAME IS NULL
09/10/22 23:09:09 tsxw+rRJ.net
>>487
画像みたいなのを入れなければいいんですね。想像以上に作成できるカラムの数が多くて驚いています。
有難うございました。

489:NAME IS NULL
09/10/23 12:29:40 tEyJFZiS.net
>>483
user define typeで個別に作ると対応できるみたい。不便。

490:NAME IS NULL
09/10/24 05:14:42 .net
質問です。
Windows XP で 5.0.45 を使用して、毎日 mysqlimport コマンドをバッチ処理で実行していますが
昨日までは正常に動作していたのに、今日のジョブが5時間以上経っても終わりません。
show processlist で見てもプロセスは存在しません。
現在何が起きているのかを確認する方法はないでしょうか?

491:NAME IS NULL
09/10/24 18:02:55 .net
とりあえずエラーログをみる

492:490
09/10/24 20:53:52 .net
>>491
エラーログファイルは見てみましたが、何も吐いていませんでした。
半日経っても終わらないので kill しましたが、一件もロードされておらず
テーブルロックが掛かっているような感じにも思えますが、テーブルを更新するのは
そのバッチ処理のみなのでそれもないし・・・
kill した後に手動で mysqlimport コマンドを発行したら、あっという間に正常終了しました。
何だったのだろう・・・ よく分かりませんが、再現待ちとします。
ありがとうございました。

493:NAME IS NULL
09/12/03 22:35:54 .net
素人丸出しの質問かもしれませんが、MySQLを使う必要が生じてしまったのでお願いします。
同一テーブル構成のTBL-A、TBL-Bがの2つがあります。
テーブルレイアウトは、
基準日   int(8)
社員番号  int(10)
構成     int(10)
だとします。
TBL-AとTBL-Bを比較し、以下のことをSQLでやりたいんですが、何か関数等あるんでしょうか?
(1)社員番号がTBL-Aに在ってTBL-Bに無い場合-->TBL-Bに該当レコード追加
(2)社員番号が両方に存在し、TBL-Aの基準日がTBL-Bの基準日以降の場合-->TBL-Bの該当レコードをTBL-Aで上書き
(3)社員番号が両方に存在し、TBL-Aの基準日がTBL-Bの基準日以前の場合-->何もしない
(4)社員番号がTBL-Bに在ってTBL-Aに無い場合-->何もしない


494:NAME IS NULL
09/12/04 15:17:42 .net
なんでこういう人っていつも仮定口調なの?

495:NAME IS NULL
09/12/08 01:03:06 .net
MySQLとAccess連携でプロト作ってるんだが、どっかにMySQLの主にストアドを
綺麗にまとめてるサイト無い?

496:NAME IS NULL
09/12/08 01:16:20 .net
うちの会社で余ったWinXPのproにMySQL5.1入れて、ポート開けて20人位の同時アクセスさせているのだが、
今のところ全然問題なく使えてる。バックアップも問題ない。
ココで質問。
1.このまま使っててもOK?
2.今更だがMySQLって、ポート3306開けときゃサーバじゃなくても同時アクセスで使えるモノなの?
※やってみたら出来た。っていう素人さんなのでプロからのアドバイスを希望します。


497:NAME IS NULL
09/12/08 06:57:23 .net
>>496
XPProで、その利用方法はライセンス違反

498:NAME IS NULL
09/12/08 07:58:17 .net
>>496
Winのライセンス上の問題は
URLリンク(www.apache.jp)
参照。

499:NAME IS NULL
09/12/08 08:24:00 .net
>>498
不特定多数か社内限定かは
異なるだろうけど、結果は同じ?


500:NAME IS NULL
09/12/09 20:19:53 .net
thx

501:NAME IS NULL
09/12/10 10:20:13 .net
ライセンス違反のわけねーだろ。アホかい。

502:NAME IS NULL
09/12/10 23:27:35 .net
501はたぶんMySQLのライセンスとWindowsのライセンスの区別がつかない程度のしったか

503:NAME IS NULL
10/01/29 00:48:30 .net
ON DELETE CASCADE を参照先テーブルに適用してますが、下記のエラーが出ます。
下記のエラーいがいに何が問題になっているか知る方法はありますでしょうか。
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row:
a foreign key constraint fails (`db`.`table`, CONSTRAINT `table_ibfk_10` FOREIGN KEY (`table_id`) REFERENCES `table` (`id`))


504:NAME IS NULL
10/01/31 15:42:47 .net
ただのチラ裏です・・・
客用にCOREi3のWin7機を買ったんだが、クラサバシステムのODBC3.51でつないだらエラーの出るテーブルが出た
2台だけだったんで持ち帰りつないでみようとしたら全部つながらなくなった
pingは通るのに何だ?ってパニック
よく考えたら鯖に使ったXPのファイアーウォールが邪魔してただけだった・・・
で、ODBCを2.51にしたらとりあえず全部つながった
このまま行っちゃう予定
よく考えたら36時間程メシ食ってないお
食ったら寝て明日の昼休みの時間に納入してくる

505:NAME IS NULL
10/02/05 12:11:56 .net
>>503
「mysql error 1451」とか「mysql Cannot delete or update a parent row」でぐぐってみた?
結局のところ、制約の子が残ってるから消せない/更新出来ないよってことなんだが、
・ON DELETE CASCADE をしているつもりで出来てないってことはないか?
 (子側をshow create tableなんかで確認)
・他に同じ(親)テーブルを、外部キー制約の参照先にしてるテーブルは無いか?
を確認してみるべし。

506:NAME IS NULL
10/04/14 19:46:11 .net
かねやんからエクスポート後、再度かねやんからインポートした時、
文字列が空欄になるんだけど、この現象って文字化けなの?

507:NAME IS NULL
10/04/14 22:22:42 .net
ファイアーウォールかもね

508:NAME IS NULL
10/08/14 23:40:51 WQmEq40c.net
age

509:NAME IS NULL
10/08/30 01:01:47 .net
windowsXPにxamppでMySQL5.1を入れたけど、どうやっても文字化けする。。。
ネットの情報かなり試したんだけど、5.0までと違うのか、まったくダメ。
5.1で同じような状況になった方はいませんか?

510:NAME IS NULL
10/11/17 08:45:02 .net
自分の設定も晒さないで何を言っておるのかね

511:NAME IS NULL
11/01/19 11:24:41 .net
MySQLでビューって遅いと聞きますが、どういった点が遅いのでしょうか。
「商品一覧テーブル(product)」と「商品カテゴリテーブル(category)」があり、
product.category_cd = category.category_cdを他:1で結びつけています。
「商品カテゴリテーブル」にはカテゴリ名カラムがあり、
商品検索のときに商品名とカテゴリ名両方検索できるようにしたいと思っています。
すでに構築されたプログラムの改変のため、JOINが非常にし辛いソースとなっていて、
ビューを使うとコストが抑えられると思っているのですが、遅いと聞くので使用していいか戸惑っております。
商品の修正もそこそこありで、検索もそこそこ使うといった感じです。
この場合、ビューを使ってよいものでしょうか。

512:NAME IS NULL
11/01/19 17:31:44 .net
MySQLはSELECT対象にVIEWを使うか
VIEWの内容をSELECT文の中に展開して書き込むかで
実行計画が変わることがある。
どちらが速いかはケースバイケース。
ただ >>511 のパターンではその前に
双方のcategory_cd列にINDEXが作ってあるかどうかが重要。
まずINDEXがあることを確認した上で、
VIEWのありなしで検証してみるのをオススメする。


513:NAME IS NULL
11/02/06 13:42:54 .net
C APIについて詳しい人います?

514:NAME IS NULL
11/02/21 22:42:22.20 .net
>>513
オライリーのMySQLクイックリファレンスを見れ
C APIについても載ってる

515:NAME IS NULL
11/09/27 11:48:59.25 X5ySfYA0.net
MySQL.comのWebサイトに不正なコード 闇市場でroot権限も販売か
URLリンク(www.itmedia.co.jp)
WebブラウザやFlash、Javaなどのプラグインの脆弱性を突いてインストールされ、ユーザーが
クリックなどの操作をしなくても、MySQL.comのWebサイトを見ただけで知らないうちに感染する
恐れがある。


516:NAME IS NULL
11/10/19 19:55:41.16 .net
xmappインストールしてmysql起動しようとしても
開始押したらすぐに停止する
解決策わかる人いる?

517:NAME IS NULL
11/10/19 22:08:50.72 .net
>>516
なんかのエラーで停止してるんじゃない
ログみてみたら

518:NAME IS NULL
12/01/13 12:36:14.31 .net
x86の64-bit版と32-bit版とは、
・実行速度
・使用メモリ量
において、どのくらい違うものでしょうか。
なにか資料へのポインタでも頂けたらと思います。
なおOSはDebian Linuxです。
期待する解答例
・経験則で言うと、メモリ消費量は64-bit版の方が20%多い
・intのサイズが異なるので、intのカラムが多いとメモリ消費量が多くなるが、charだと変わらない
・実行速度は64bit版のほうが速いはずだが、ぶっちゃけSQLのチューニングのほうがよっぽど大事だから気にすることはない

519:NAME IS NULL
12/01/14 11:39:06.20 .net
>>518
バッファ上はMySQLのデータ型の分しか消費しないから、32bit、64bitで変わらない。
ていうかintはx86_64でも4バイトじゃね。
実行速度はCPUによる。
例えばCore 2のときは64bit動作でMacro-OPs Fusionという機能が効かなくて
あまり速くなかった。Nehalem以降は64bitの方が速いと思う。
実際の性能はデータをメモリ上にどれだけキャッシュするかが勝負なので、
32bitだと仮想メモリ4GBの壁があるので64bitの方が断然有利。

520:NAME IS NULL
12/01/14 17:48:37.16 .net
参考になります。
>>519
>バッファ上はMySQLのデータ型の分しか消費しないから、32bit、64bitで変わらない。
なるほど。メモリ消費量に違いはない(あったとしてもわずか)ということですか。
>実行速度はCPUによる。
>例えばCore 2のときは64bit動作でMacro-OPs Fusionという機能が効かなくて
>あまり速くなかった。Nehalem以降は64bitの方が速いと思う。
それは知りませんでした。
x86_64のほうがレジスタ数が増えた分、速いと思ったのですが、必ずしもそうではないんですね。
Nehalemというのは、Core2DuoではなくCore i3とかi5とかいうやつですね。
じゃあサーバのCPUの種類を調べてみる必要がありますね。
>実際の性能はデータをメモリ上にどれだけキャッシュするかが勝負なので、
>32bitだと仮想メモリ4GBの壁があるので64bitの方が断然有利。
使ってるのが安いVPSなので、そこまでメモリを利用できません。
たいへん参考になりました。ありがとうございました。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch