I have a pure boolean type of field in my web-app, but now I am thinking about difference between nullable and non-nullable property.
In which case would I have the best performance: use 'true' and 'false' value or use 'true' and NULL instead?
The common convention is to use true and false as values - they mean you know the answer to the question asked. null is not a value - it's a lack thereof, and is usually used as such.
E.g., consider the (morbid) column has_cancer. true means the subject has it, false that he does not, and null that he has not been tested yet, so we just don't know.
1 + NULL is NULL, for example. This usually leads to having to do something like 1 + coalesce(column, 0) everywhere :) Treat null the way it's supposed to be treated - an absence of value, not "yet another value".
nullinstead offalse), it's more about the whole concept of optimizing for performance before identifying the actual performance bottlenecks. Don't guess on performance - make your application nice and clean, test it, and if needed, optimize the parts that will make an impact.