<!--- Verify first that your feature was not already discussed on GitHub -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
collect data based on the filters 

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
mysql_info

##### ADDITIONAL INFORMATION
On large databases mysql_info runs very long due to size calculations of all db/tables even when this information is not needed (for example quering user information only)

<!--- Paste example playbooks or commands between quotes below -->
```yaml

```

<!--- HINT: You can also paste gist.github.com links for larger files -->

"""Get MySQL instance information based on filter_.
        Arguments:
            filter_ (list): List of collected subsets (e.g., databases, users, etc.),
                when it is empty, return all available information.
        """
        self.__collect()
        inc_list = []
        exc_list = []
        if filter_:
            partial_info = {}
            for fi in filter_:
                if fi.lstrip('!') not in self.info:
                    self.module.warn('filter element: %s is not allowable, ignored' % fi)
                    continue
                if fi[0] == '!':
                    exc_list.append(fi.lstrip('!'))
                else:
                    inc_list.append(fi)
            if inc_list:
                for i in self.info:
                    if i in inc_list:
                        partial_info[i] = self.info[i]
            else:
                for i in self.info:
                    if i not in exc_list:
                        partial_info[i] = self.info[i]
            return partial_info
        else:
            return self.info
    def __collect(self):