ฉันเป็นมือใหม่ DBA และฉันมีประสบการณ์ใน Microsoft SQL Server แต่ฉันต้องการข้ามไปยัง FLOSS
ฉันเริ่มต้น บริษัท และเราพัฒนาแอพ (PHP) ด้วยแบ็กเอนด์ Postgres และเราทำการทดสอบบางอย่างเปรียบเทียบกับ MySQL ด้วย เราสังเกตว่า MySQL นั้นเร็วกว่า PostgreSQL สองเท่า
ฉันทำการทดสอบประสิทธิภาพที่เป็นรูปธรรม:
- คอลัมน์เดียวกันในตารางที่มีประเภทข้อมูลคอลัมน์เทียบเท่า
- จำนวนแถวเท่ากัน
- ดัชนีเดียวกันในทั้งสอง (รวมคีย์หลัก)
- โหลด CPU ไม่ได้ใช้งานและเครื่อง Postgres ดีกว่ามาก
- และแบบสอบถามเดียวกัน (ชัด)
ผมทำอะไรผิดหรือเปล่า?
PS: ฉันอ่าน "howtos" มากมายเกี่ยวกับการปรับแต่งประสิทธิภาพของเอ็นจิ้นฐานข้อมูล
PS (2): เรากำลังใช้ InnoDB (หนึ่งไฟล์ต่อหนึ่งตาราง) บนฐานข้อมูล MySQL
สวัสดีจ้า!
ฉันใช้คำสั่ง select (และยากที่สุด) สามรายการ
คำถามเกี่ยวกับดิสก์แน่นอนว่ามันไม่เหมือนกัน ใน 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