I would recommend separate callbacks, but it really is just personal preference.
For example with one callback
pawn Code:
#define RESULT_LOAD (1)
#define RESULT_SAVE (2)
public OnQueryExecute(resultid, playerid)
{
new rows, fields;
cache_get_data(rows, fields);
switch (resultid) {
case RESULT_LOAD:
// code here
case RESULT_SAVE:
// code here
}
return 1;
}
This can get pretty hard to work with the more queries you script in, but it gets the job done. You can argue that the switch statement will slow it down, but the difference would practically be zero.
with single callbacks
pawn Code:
LoadPlayer(playerid)
{
// code here
}
public OnPlayerLoad(playerid)
{
new rows, fields;
cache_get_data(rows, fields);
// code here
return 1;
}
SavePlayer(playerid)
{
// code here
}
public OnPlayerSave(playerid)
{
printf("Player %d saved.", playerid);
return 1;
}
It may seem like a lot more lines, but it's a lot easier to handle this way IMO. You don't have to deal with different result ids, there are less mistakes to be made, and you can safely say that your query will only execute what you put into its according callback.
tl;dr - it doesn't really matter, as long as you take efficient advantage of the plugin, then you're fine