### Apache Airflow version

2.4.2

### What happened

Hi all,

I would like to update the scheduler_job.py script by removing the unused attribute -> `self.using_mysql`.

I understand that `self.using_sqlite` attribute is used to define the variable `async_mode` in scheduler_job.py code, but noticed that `self.using_mysql` is not used.

You can check the code from [scheduler_job.py](https://github.com/apache/airflow/blob/main/airflow/jobs/scheduler_job.py),
```python
def __init__(...):
    # Check what SQL backend we use
    sql_conn: str = conf.get_mandatory_value('database', 'sql_alchemy_conn').lower()
    self.using_sqlite = sql_conn.startswith('sqlite')   # <- only self.using_sqlite is used for async_mode
    self.using_mysql = sql_conn.startswith('mysql')

...

def _execute(self) -> None:
    ...
    async_mode = not self.using_sqlite
```

not sure it was used before, but no longer used for the current scheduler.

If it's not the major change, would you mind me to remove it from the script?

Thanks in advance!

### What you think should happen instead

_No response_

### How to reproduce

_No response_

### Operating System

-

### Versions of Apache Airflow Providers

_No response_

### Deployment

Other

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"""
    Returns True if the current process is the parent process. False if the current process is a child
    process started by multiprocessing.
    """
    return multiprocessing.current_process().name == 'MainProcess'
class SchedulerJob(BaseJob):
    """
    This SchedulerJob runs for a specific time interval and schedules the jobs
    that are ready to run. It figures out the latest runs for each
    task and sees if the dependencies for the next schedules are met.
    If so, it creates appropriate TaskInstances and sends run commands to the
    executor. It does this for each task in each DAG and repeats.
    :param subdir: directory containing Python files with Airflow DAG
        definitions, or a specific path to a file
    :param num_runs: The number of times to run the scheduling loop. If you
        have a large number of DAG files this could complete before each file
        has been parsed. -1 for unlimited times.
    :param num_times_parse_dags: The number of times to try to parse each DAG file.
        -1 for unlimited times.
    :param scheduler_idle_sleep_time: The number of seconds to wait between
        polls of running processors
    :param do_pickle: once a DAG object is obtained by executing the Python
        file, whether to serialize the DAG object to the DB
    :param log: override the default Logger
    """
    __mapper_args__ = {'polymorphic_identity': 'SchedulerJob'}
    heartrate: int = conf.getint('scheduler', 'SCHEDULER_HEARTBEAT_SEC')
    def __init__(