Where the usual tools stop
- Excel holds at most 1,048,576 rows on a sheet. A longer file opens with the rest cut off, and saving it loses them for good.
- Text editors can open large files but know nothing about columns — no sorting, no filtering by column, no sums.
- Many CSV editors read the whole file before showing anything, and hold every value as a separate object in memory. A few hundred megabytes is then several gigabytes.
What Intact CSV Editor does
It reads enough rows to fill the window before the window appears, and streams the rest in behind it while you scroll, edit and search. A 325 MB file of 5.2 million rows is on screen in well under a second and fully read about eight seconds later. A large file is mapped rather than copied into memory, and values are held as UTF-8 bytes rather than as separate strings: the five million rows of a 312 MB sample take about 186 MB for the table instead of 816 MB.
| One million rows × 7 columns (52 MB) | Time |
|---|---|
| First rows on screen | 0.05 s |
| Detect the format | 0.05 s |
| Read the whole file | 2.0 s |
| Save, byte for byte | 0.26 s |
| Filter every row | 1.5 s |
| Load into SQL | 1.5 s |
| Grouped SQL query | 0.6 s |
Grouped query with RLIKE | 0.9 s |
| Export to Excel (33 MB written) | 10.4 s |
Measured on a release build on 20 September 2026, on the Mac the app is developed on.
While the file loads, anything that needs the whole table — saving, exporting, sorting, SQL — waits for the last row, so a half-read file is never written out truncated. A sort asked for in the meantime says it is waiting and runs when the file is in.
Other formats get the window first too. A large JSON, XML or YAML document, or a web page, cannot be read from the middle, so it is read whole — but in the background, with the window already up and saying what it is doing.
A file of a gigabyte
Bigger than most people ever open, and where the difference shows. A 1 GB file — sixteen million rows in seven columns — is held in about 1.6 GB while you work on it, because the values are bytes in one block rather than sixteen million separate objects. Once it is in, it stays quick: sorting all sixteen million rows takes about five seconds whichever column you sort by, and the window stays live while it happens.
What a big file usually runs into is not the sort but the history. Undoing a sort means remembering the order the rows were in — eight bytes a row, so 128 MB for one sort of this file, and fifty of them would be six gigabytes of row order and a Mac that starts swapping. Here the history is bounded by what it holds rather than by how many steps it is, so sorting the same file over and over cannot fill memory.
| Sixteen million rows × 7 columns (1 GB) | Measured |
|---|---|
| Held in memory while you work on it | 1.6 GB |
| Sort all sixteen million rows | about 5 s |
| Ten sorts, one column after another | never past 2.7 GB |
| Undo a sort | 0.2–1.1 s |
Measured on a release build on 20 September 2026, on the Mac the app is developed on.
Working with a big file
- Look first. Scroll, search and filter; filtering and search run off the main thread, so the window stays smooth.
- Count it. Table ▸ Statistics counts every column: filled, empty, distinct, minimum, maximum, median.
- Ask it. The SQL console answers grouped questions in a fraction of a second once the table is loaded.
- Cut it down. Extract the filtered rows to a new file, or File ▸ Split into Several Files for pieces of a fixed size.
- Keep watching it. For a log or an export another program is still writing, View ▸ Follow the File as It
Grows adds the new rows as they arrive, the way
tail -fdoes.
A file over five gigabytes opens locked, and says so: a stray keystroke should not be able to cost you a save of a file that size. Untick Table ▸ Locked Against Changes when you mean to edit.
When the file is bigger than memory
Intact CSV Editor holds the table in memory, compactly. When you only need to look at part of a huge file, File ▸ Open Part of a File opens its first megabytes, its last, or a stretch from any point as a table of its own — cut where records begin, with the header line put in front — and reads only that part from the disk.
To work through every row of a file of many gigabytes — tens of millions of rows, or more than your Mac's memory — a
tool that reads the file without loading it is the better choice: a memory-mapped editor such as Caxton, a viewer built
on DuckDB such as Tad, or command-line tools such as qsv and csvkit. We compare them honestly
on our comparison pages.
Try it on your own file
Intact CSV Editor is in beta. Join the beta and we will write to you as soon as your access is ready.