[前][次][番号順一覧][スレッド一覧]

mysql:10190

From: 渡邊昌之 <渡邊昌之 <mark@xxxxxxxxxx>>
Date: Fri, 17 Sep 2004 09:55:51 +0900
Subject: [mysql 10190] Re: unsignedカラムをAccessから参照したときに

渡邊といいます。

可能性のある値の範囲が32767以下なら、smallintで十分でしょう。
40000という値が入る可能性が有って、65535を超えないという
状況があまり想像できませんが、もしそういう条件であればもちろんそれは
bigintにするよりはディスク容量の節約にはなると思います。
しかし、節約するのと、正しく動くのがどちらが大事かというと
当然正しく動く方でしょうから、とりあえずbigintにして動作させるのが
いいんじゃないでしょうか。
Access2000は詳しく有りませんが、きっとunsignedを認識しないのでしょう。
unsigned intの40000の表現とsigned intの-25536の表現が同じというだけのことです。

それをAccess2000側で認識させるより、定義をbigintに変える方がよほど
簡単ですからそちらをお勧めしますね。

またそのsmallintのフィールドが1000万レコードもあったとしても
節約できるのはたかだか4000万バイト40Mバイトです。
今時メモリでも、HDDでもこの程度の容量は気にならない量だと思います。
この節約が実質効いてくる用なレコード数、またはテーブルというのが
あまり想像できないので変に節約は考えない方が楽だと思いますが
もちろん100億レコードもあるというのであれば、10Gバイトの節約に
なりますからちょっと考えてもいいかもしれませんが、
それでもそのときはもっと巨大なディスクやメモリを搭載したシステムに
しなければならないはずなので、やはり無視できるような気がします。

20年ほど前なら、データの定義はギリギリまで削って、場合によっては
ビットフィールドまで使って表現していたんですが、
最近では、その為の労力やバグのリスクを考えると、そちらの方がコストが
高いので、無理やりなことはやらないようになりましたね。

荒木 満 <araki@xxxxxxxxxx> wrote:

> 初歩的な質問なのですが、どなたかお教えいただけませんでしょうか?
> 
> mysqlのテーブルにphpを使って値をinsertし、その値をODBC経由でAccess2000から参
> 照したときに、
> テーブルに入っている値とAccessのリンクテーブルとして表示される値が違っていま
> す。
> このカラムはsmaalint unsignedとしております。
> 具体的には'40000'という値が'-25536'となります。
> 絶対値を合計すると65536となるので、unsignedの部分が問題なのかなと思っている
> のですが・・・・
> このカラムにはマイナスの値は入らないので、メモリ消費の節約とおもいsmaalint
> unsignedとしたのですが、 unsigned指定をはずす方が良いのでしょうか?
> 
> こういう場合どのように処理するのが良いのでしょうか?
> 
> 
> 
> -------------------------------
> Mitsuru Araki
> e-mail   araki@xxxxxxxxxx
> -------------------------------
> 
> 


_______________________________________
渡邊昌之
mark@xxxxxxxxxx
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[前][次][番号順一覧][スレッド一覧]

     10185 2004-09-16 22:54 [荒木 満 <araki@xxxx] unsignedカラムをAccessから参照したときに
->   10190 2004-09-17 09:55 ┗[渡邊昌之 <mark@xxxxx]                                       
     10199 2004-09-17 22:25  ┣[荒木 満 <araki@xxxx]                                     
     10374 2004-11-02 21:49  ┗[荒木 満 <araki@xxxx] 同じデータ構造のテーブルを作成するのに必要なSQL句
     10375 2004-11-02 21:55   ┣[SATOH Fumiyasu <fumi]                                   
     10377 2004-11-02 22:03   ┃┗[荒木 満 <araki@xxxx]                                 
     10376 2004-11-02 21:55   ┗[tateyan <tateyan@xxx]                                   
     10378 2004-11-02 22:34    ┣[荒木 満 <araki@xxxx]                                 
     10408 2004-11-13 21:56    ┗[荒木 満 <araki@xxxx] MyODBCでクエリが遅い            
     10413 2004-11-14 12:18     ┗[aki <aki@xxxxxxxxxx>]                               
     10418 2004-11-14 22:11      ┗[荒木 満 <araki@xxxx]