On Fri, 7 Dec 2018 16:42:31 +0000 Paolo Lucente <pa...@pmacct.net> wrote:
> You could make the field variable-length - optimizing space and > avoiding you the try & error of finding the sweet spot size for the > as path field at the expense of more computing. I would not expect a Postgres TEXT column, which is variable length, to be significantly more CPU intensive than a fixed length CHAR column. >From the PG docs regarding the various types which store strings: --- There is no performance difference among these three types, apart from increased storage space when using the blank-padded type, and a few extra CPU cycles to check the length when storing into a length-constrained column. While character(n) has performance advantages in some other database systems, there is no such advantage in PostgreSQL; in fact character(n) is usually the slowest of the three because of its additional storage costs. In most situations text or character varying should be used instead. --- So, when using Postgres, there's no particular reason to limit string column lengths. What is important with Postgres is the collation sequence used by the database. UTF-8 collation support slows down sorting significantly, and so affects indexes and so forth. If you need UTF-8 characters you can do that, but sort them by byte-code values if you care about performance. If necessary collation can even be set down to the column level in the newest PG. What's easiest is to avoid UTF-8 entirely and set the locale for the whole db to "C". This gives you an entire byte to store each character and characters sorted by byte-code value. https://www.postgresql.org/docs/11/charset.html > On Fri, Dec 07, 2018 at 10:46:32AM +0100, Fabien VINCENT wrote: > > Dear List, > > > > I've an issue when nfacctd try to push to pgsql database : > > > > PGSQL log file : > > > > ERROR: value too long for type character(80) > > CONTEXT: > > > > COPY flow _*****_, line 74771, column as_path_src: "14061 > > {46652,4210010000,4210010200,4210010201,4210010202,4210010297,4210010400,4210010402,4210010499..." > > > > > > In my nfacctd config file I've : > > > > bgp_aspath_radius: 10 > > > > because as_path_src is set to CHAR(80). But seems BGP aggregates > > break the rules ? > > > > Is there anyway to limit / cut down BGP aggregates in column > > as_path_src ? Karl <k...@meme.com> Free Software: "You don't pay back, you pay forward." -- Robert A. Heinlein _______________________________________________ pmacct-discussion mailing list http://www.pmacct.net/#mailinglists