Delete the Custom Fields from your postmeta table where assigned posts no longer exist.
"clicking "Delete" would remove all post meta..."
But there's nothing to click !?
After adding "Visual editor custom button" plugin it add it's new buttons as hidden post creating a hole lot of custom field. After uninstalling the plugin, I had to delete the hidden post manually in the database. Then "DX Remove ..." let me delete all the custom field it had created.
Using clean install, wp last version, and your plugin does show the 'remove unused cf' under admin, but when i click it it says : warning clicking delete would remove, bla bla bla.
But I see no DELETE button anywhere !!!!!
That's a trick? :)
This is exactly what I was looking for! It worked pretty good for what I needed.
One improvement I would suggest is to find a way to deal with massive amounts of unused post meta. I had about 100,000 rows of unused post meta, and it wouldn't work. I deleted a bunch I knew for sure I didn't need, got it under 20,000 and it worked fine.