Postgresqlを利用した場合のデータ型「テキスト」の最大長
バージョンは2.2.1を利用しています。
データベースとしてPostgresqlを利用し、以下のアイテムを定義しました。
タイプ:JMXエージェント
データ型:テキスト
(以下略)
テーブルhistory_textの定義では、valueはtext型のため文字数制限は無し、と考えていました。
ですが、JMX監視によってvalueに格納された値は、65535バイトで切られていました。
SQLにて直接テーブルにINSERTした場合は、65535バイト以上も格納できました。
以下、質問となります。
1. データベースに限らず、データ型「テキスト」上限は65535バイトという制約は存在するのでしょうか。
※MySQLを利用しているのでしたら、text型は上限65535バイトなので理解できます。
2. 上限を変更する手段は存在するのでしょうか。
よろしくお願いします
TNK - 投稿数: 4769
ソースを少しみてみましたが、src/libs/zbxdbhigh/dbschema.c で、history_textテーブルの
valueカラムは、65535バイトに制限されているようです。
つまり、zabbix_server経由でDBに保存しているのが、65535バイトまでに制限されていると
思われます。
dbschema.c内の長さ制限を変更して対応できるかもしれませんが、他の箇所でも制限が入って
いるかもしれませんので、ここだけの修正で対応できるかは確認できていません。
pokotan - 投稿数: 4
コメントありがとうございます。
ソースで制限されていたのですね。
ソースに手を加えることによるリスクを考えますと、
制限されていることを考慮した設計を進めようと思います。