Я начинающий администратор баз данных, и у меня есть опыт работы с Microsoft SQL Server, но я хочу перейти на FLOSS.
Я начинаю компанию, и мы разрабатываем приложение (PHP) с бэкэндом Postgres, а также провели несколько тестов по сравнению с MySQL. Мы видим, что MySQL в два раза быстрее PostgreSQL.
Я сделал ощутимый тест производительности:
- Те же столбцы в таблице с эквивалентными типами данных столбцов.
- Такое же количество строк.
- Одинаковые индексы в обоих (первичный ключ включен).
- Загрузка процессора простаивает, и машина Postgres значительно лучше.
- И тот же запрос (очевидно).
Что я делаю неправильно?
PS: я прочитал много "Howtos" по настройке производительности для двигателей баз данных.
PS (2): Мы используем InnoDB (один файл на таблицу) в базе данных MySQL.
Привет, Мат!
Я выполнил три наиболее распространенных (и самых сложных) запроса.
Вопрос о диске, конечно, не тот; В Postgres это SSD (почти в три раза быстрее).
Данные кеша MySQL:
+------------------------------+----------------------+
| Variable_name | Value |
+------------------------------+----------------------+
| binlog_cache_size | 32768 |
| have_query_cache | YES |
| key_cache_age_threshold | 300 |
| key_cache_block_size | 1024 |
| key_cache_division_limit | 100 |
| max_binlog_cache_size | 18446744073709547520 |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 16777216 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| table_definition_cache | 256 |
| table_open_cache | 64 |
| thread_cache_size | 8 |
+------------------------------+----------------------+
Я не знаю, как просмотреть это в PostgreSQL.
Заранее спасибо.
explain analyze
. Чтобы было удобнее читать, вы можете загрузить план для объяснения.depesz.com
postgresql.conf