我是一名新手DBA,并且我在Microsoft SQL Server中有经验,但是我想跳到FLOSS。
我正在建立一家公司,我们用Postgres后端开发了一个应用程序(PHP),并且还进行了一些与MySQL比较的测试。我们观察到MySQL的速度是PostgreSQL的两倍。
我进行了明显的性能测试:
- 表中的相同列,具有等效的列数据类型。
- 行数相同。
- 两者中的索引相同(包括主键)。
- CPU负载处于空闲状态,而Postgres机器则要好得多。
- 和相同的查询(显然)。
我究竟做错了什么?
PS:我阅读了许多有关数据库引擎性能调整的“ howtos”。
PS(2):我们在MySQL数据库上使用InnoDB(每个表一个文件)。
嗨,垫子!
我做了三个常见的选择(也是最难的)查询。
关于磁盘的问题,肯定是不一样的。在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
?为了便于阅读,您可以将计划上传到explain.depesz.com
postgresql.conf