Well right off the bat, we can't possibly tell you which will be more performant because we have no idea how fast your database querying for staged data is, versus how fast the Wikidata API will give you data.
In order to decide, you'll have to first decide if you app needs to work if Wikidata is offline. If so, then you'll HAVE to store the wikidata per method 1.
Lets assume you do decide that you need to show something even if Wikidata is down.
You'll need to set up your database to store user requests, along with the method that you're using to show the data (your copy or fresh Wikidata call) and the processing time from start of the request to end of request. You'll need to implement something like a random selection of which method to use (I'd go 50/50 with something like an even/odd choice on the current timestamp to decide which to use).
After having that in place for a while, you'll learn exactly what the speed difference is between the two.
Next, you could decide on a strategy like "Store my copy of the data for 24 hours before purging" (where if you don't have a < 24 hour old version of the data, you pull it fresh from Wikidata then store it in your database then return that to the user). Other strategies might include performance enhancers like having the copy of the data written to the database asynchronously in that scenario, so that your users aren't waiting on your database Write action before seeing their query results.
Essentially, do it both ways (depending on your requirements) and measure it!