読者です 読者をやめる 読者になる 読者になる

\[Warning\] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295

84 :NAME IS NULL:2008/07/04(金) 18:50:27 ID:???
>>82
それ、自分のとこでも5.0.50のころあたりから出てる。(CentOS4のsrpm.specをベースに自前で
ビルド)

manualとかにも詳しく載ってないのではっきりとは断言できないけど、
4294967295 とゆう数値は、unsigned int(32)の上限値(4G)で、
18446744073709551615 は、unsigned int(64) (一般的に u long long)の上限値(16E、4G*4G)
のこと。
(ちょっとプログラミングでもかじった事あるなら、ピンと来るはず)

で、max_join_sizeは、一回の結合クエリで保持できる最大データサイズのことだけど、
どこかのバージョンアップの際に、ソースコード上での指定が、uint_32からuint_64に変わった
んではないか。

i386(i686)ベースのアーキテクチャでは、事実上4G以上のデータをメモリに確保することが出来
ないので、
"最大サイズを4Gに制限したよ"みたいな警告が起動時に出るようになったんではないかと思う。
(swapがどうとかではなく、そのプロセスが保持できるポインタサイズが32bitなので、4G以上の
領域にアクセス出来ない)

自分も以前、コンバイルオプション等を色々調べて、これがどうなってるか探したことがあるん
だけど、
mysqldだけの問題ではなくて、kernelやglibcの制限なんかも絡んできそうなので、
結局basearchがi386系の時は、これは出るものなんだと思ってあきらめた。

x86-64や、PAE-kernel使用時ではどうなるかは確認してない。
(cpuはx64対応持ってるけど、メモリを4G以上搭載出来るマシンがすぐに用意できない・・。い
ずれはやってみたいけど)

http://209.85.175.104/search?q=cache:WTF0WkiMPA4J:pc11.2ch.net/test/read.cgi/db/1213319883/75n-+option+%27max_join_size%27:+unsigned+value&hl=ja&ct=clnk&cd=2&gl=jp&lr=lang_ja&client=firefox-a

納得出来た。MacPortsMySQL は 32bit なのね。っつーか MacPorts で入る物は 32bit なんだろうなぁ。