I see there are cache settings in each of my views. Do I need to set these or does the core caching mechanisms in /admin/config/development/performance automatically do some of this and these "extra settings" in views are if I want to override the default caching behavior of drupal core?
WHAT: Core performance caching stores and serves the whole rendered page with a cache id of the URL. Views caching goes beyond this to cache just the view output.
WHY: It's great for logged in users; other blocks on the page may be more dynamic but the view doesn't have to run a query every time for every user... just the occasional user who generates the page cache upon cache lifetime expire.
SETTINGS: Allowing the "rendered output" to be fresher than the query is useful for things like marking content as new, otherwise just match them up.
BIG PICTURE: Drupal serves page dynamically, using a server to build pages in PHP and access a database (or in-memory cache). This allows awesome features and content editor velocity... but the trade off is needing to understanding caching and do it right.
There's also a lovely Views Content Cache module which clears views cache on content edit. If you want to go further you may want to check out Cache Actions as well, I'd recommend Rules to fine tune this.
Additionally, Blockcache Alter allows you to set "per role", page, user, etc. caching options for each block on your site.
You can also add Page manager and Panels. This allows you to do interesting things like setting the cache "per user", "per role", or a number of other very useful configurations. Though I personally avoid panels.
DOCUMENTATION: For caching and performance in general check out the Drupal.org page.
Views uses the Drupal cache APIs but it creates its own cache that isn't related to the normal Drupal page/block cache.
Views caches the view definition itself along with the rendered view itself. The rendered view can be cached in two ways, either the query result or the actual HTML of the view. Normally you want to cache the outputted HTML since this is the most performance effective. In some cases where you want to alter the output based on the logged in user, caching the query can be quite effective as well.
The tables Views uses for storing the cache is:
There is an interesting module now available called views cache bully that automatically caches all views (query results and output), except for views with exposed forms. The module also allows you to manually exclude views from its caching. This makes it possible set caching for all views (except those excluded) from a central point.