performance between varchar(1) vs char(1)

In MS SQL VARCHAR(1) uses three bytes of storage and CHAR(1) uses one byte of storage.

CHAR(1) is more efficient than VARCHAR(1) in processing and storage.

The breakeven point on VARCHAR would be anything greater than 3 characters if using variable length data.

If using fixed length then CHAR is always more efficient by two bytes.

REF: http://msdn.microsoft.com/en-gb/library/ms176089.aspx


The difference will be negligible in most cases. Concentrate your performance oriented design efforts in places where it will make a real difference, like table composition and index design.

It helps to divide the design effort into two layers: logical design and physical design.
Most of the performance oriented effort is in the second stage, physical design.

In logical design, flexibility trumps performance. Except when it doesn't.


For Oracle

The VARCHAR2(1) and CHAR(1) are identical in all aspects. There is no compelling reason to use the CHAR type in that case, and to avoid any confusion, I “just say no,” even for the CHAR(1) field.

Reference: https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2668391900346844476