Yes, Native format is more efficient.
Also, RowBinary format is more efficient than Values, TabSeparated.
Amount of difference depends on:
- where the data comes from, could your application generate data at limiting speed;
- how much time spend on application to escape strings and format numbers in text form;
- what kind of tables you INSERT data into: when INSERTing to MergeTree, its slower than to TinyLog, Log, because MergeTree sorting blocks of data.
Rough estimate of expected INSERT performance on server side provided here:
https://clickhouse.yandex/reference_en.html#Performance%20on%20data%20insertion.
In case when you write data at real time and never delete it, throughput per single server will be not too much, because otherwise, servers will be full in few days.
For example, if you have advertisement network with 1 000 000 events/second, each event 1 KiB uncompressed (incoming traffic is 8 Gbit), data is compressed 10 times, it is 86 TB/day uncompressed, 8.6 TB/day compressed; when your servers have 6 HDD x 8 TB in RAID-5 and 2x replication factor, you need about 160 servers to store data for year. And if incoming data is evenly distributed per that servers, then it is just 12 500 rows/second per server, which is very small number. If you have servers with 24 HDD disk shelves, traffic per server will be 50 000 rows/second, which is also rather small.
Performance of INSERTing data will be limiting factor when you need to INSERT data for long period at once. Or when you store data for short period and incoming traffic is much higher.