คำถามติดแท็ก postgresql

PostgreSQL ทุกรุ่น เพิ่มแท็กเฉพาะรุ่นเพิ่มเติมเช่น postgresql-11 หากบริบทนั้นสำคัญ

4
ฉันจะทราบได้อย่างไรว่าแบบสอบถาม PostgreSQL ของฉันอยู่ไกลแค่ไหน?
ฉันมีความคิดที่ดีว่าจำนวนคิวรี SELECT ของฉัน ... เข้าสู่กระบวนการจริงจะดำเนินการอย่างไร (เช่นฉันรู้ว่าจะปรากฏเป็นรูปเป็นร่างเท่าใด) ฉันเข้าใจว่า Postgres จะไม่บอกเปอร์เซ็นต์ความครบถ้วนสมบูรณ์มีวิธี (ฝังลึกในบันทึก, ตารางระบบหรืออื่น ๆ ) ที่ฉันสามารถค้นหาจำนวนแถวที่ถูกปั๊มเข้าไปในตารางปลายทางหรืออ่านโดยเลือกคิวรี่ ?
35 postgresql 

5
ปัญหาการล็อคด้วย DELETE / INSERT พร้อมกันใน PostgreSQL
มันค่อนข้างง่าย แต่ฉันก็งงกับสิ่งที่ PG ทำ (v9.0) เราเริ่มต้นด้วยตารางง่ายๆ CREATE TABLE test (id INT PRIMARY KEY); และไม่กี่แถว: INSERT INTO TEST VALUES (1); INSERT INTO TEST VALUES (2); การใช้เครื่องมือสืบค้น JDBC ที่ฉันโปรดปราน (ExecuteQuery) ฉันเชื่อมต่อหน้าต่างสองเซสชันเข้ากับฐานข้อมูลที่ตารางนี้ใช้งานอยู่ ทั้งคู่เป็นธุรกรรม (เช่น auto-commit = false) ลองเรียกพวกมันว่า S1 และ S2 รหัสเดียวกันสำหรับแต่ละ: 1:DELETE FROM test WHERE id=1; 2:INSERT INTO test VALUES (1); 3:COMMIT; …

1
การใช้คำสั่ง build ใน JOIN สามารถแนะนำอุปสรรคการเพิ่มประสิทธิภาพได้ในบางกรณี?
ฉันได้รับความสนใจว่าการUSINGสร้าง (แทนON) ในส่วนFROMคำSELECTสั่งอาจทำให้เกิดปัญหาและอุปสรรคในการเพิ่มประสิทธิภาพในบางกรณี ฉันหมายถึงคำสำคัญนี้: เลือก * จาก เข้าร่วมขโดยใช้ (a_id) ในกรณีที่ซับซ้อนมากขึ้น บริบท: ความคิดเห็นสำหรับคำถามนี้ ฉันใช้สิ่งนี้มากและไม่เคยสังเกตเห็นอะไรเลย ฉันสนใจกรณีทดสอบที่แสดงให้เห็นถึงผลกระทบหรือลิงก์ใด ๆไปยังข้อมูลเพิ่มเติม ความพยายามในการค้นหาของฉันว่างเปล่า คำตอบที่สมบูรณ์แบบจะเป็นกรณีทดสอบเพื่อแสดงUSING (a_id)ด้วยประสิทธิภาพที่ต่ำกว่าเมื่อเปรียบเทียบกับข้อเข้าร่วมทางเลือกON a.a_id = b.a_id- ถ้านั่นสามารถเกิดขึ้นได้จริง

4
ฉันควรเพิ่มขีดจำกัดความยาวตามอำเภอใจในคอลัมน์ VARCHAR หรือไม่
ตามเอกสารของ PostgreSQLไม่มีความแตกต่างระหว่างประสิทธิภาพVARCHAR, และVARCHAR(n)TEXT ฉันควรเพิ่มขีดจำกัดความยาวตามอำเภอใจในคอลัมน์ชื่อหรือที่อยู่หรือไม่? แก้ไข:ไม่ใช่รายการที่: การค้นหาดัชนีจะเร็วขึ้นอย่างเห็นได้ชัดด้วย char vs varchar หรือไม่เมื่อค่าทั้งหมดเป็น 36 ตัวอักษร ฉันรู้ว่าCHARประเภทนี้เป็นของที่ระลึกในอดีตและฉันไม่เพียง แต่สนใจในการแสดงเท่านั้น

6
ส่งออกตาราง Postgres เป็น json
มีวิธีการส่งออกข้อมูลตาราง postgres เป็น json ไปยังไฟล์หรือไม่? ฉันต้องการผลลัพธ์เป็นบรรทัดต่อบรรทัดเช่น: {'id':1,'name':'David'} {'id':2,'name':'James'} ... แก้ไข: รุ่น postgres: 9.3.4

1
ฉันจะเปรียบเทียบการสืบค้นข้อมูลของ PostgreSQL ได้อย่างไร
ฉันต้องการเปรียบเทียบแบบสอบถามที่มีฟังก์ชั่นที่ผู้ใช้กำหนดฉันได้เขียนสำหรับ PostgreSQL มีวิธีมาตรฐานในการใช้มาตรฐานดังกล่าวหรือไม่? ฉันรู้ว่าเวลาสามารถเปิดได้ด้วย\timingที่พร้อมต์ psql แต่ในอุดมคติฉันต้องการมีสคริปต์ที่ดูแลทุกอย่างโดยอัตโนมัติ: การเรียกใช้แบบสอบถามสองสามครั้งล้างแคช PostgreSQL หลังจากการเรียกใช้แต่ละครั้ง (อาจเป็นการรีสตาร์ท PostgreSQL บริการ) และการส่งออกเวลาทำงานเฉลี่ย (และหน่วยความจำที่ใช้เป็นบวก)

1
มีข้อจำกัดความยาวสูงสุดสำหรับคิวรี Postgres หรือไม่
แอปที่เรากำลังสร้างอาจเรียกใช้คิวรีแทรกขนาดใหญ่ได้ มีข้อ จำกัด หรือไม่ที่แบบสอบถาม postgres ของฉันสามารถมีอักขระได้จำนวนเท่าใด
33 postgresql 

2
รีเฟรชมุมมอง materalized ที่เพิ่มขึ้นใน PostgreSQL
เป็นไปได้ไหมที่จะรีเฟรชมุมมองที่เป็นรูปธรรมเพิ่มขึ้นใน PostgreSQL เช่นสำหรับข้อมูลที่ใหม่หรือมีการเปลี่ยนแปลงเท่านั้น พิจารณาตารางนี้และมุมมองที่ปรากฏขึ้น: CREATE TABLE graph ( xaxis integer NOT NULL, value integer NOT NULL, ); CREATE MATERIALIZED VIEW graph_avg AS SELECT xaxis, AVG(value) FROM graph GROUP BY xaxis มีการเพิ่มค่าใหม่เป็นระยะgraphหรือปรับปรุงค่าที่มีอยู่เป็นระยะ ฉันต้องการรีเฟรชมุมมองgraph_avgทุกสองสามชั่วโมงเฉพาะค่าที่อัปเดต อย่างไรก็ตามใน PostgreSQL 9.3 ตารางทั้งหมดจะถูกรีเฟรช ใช้เวลาค่อนข้างนาน เวอร์ชันถัดไป 9.4 อนุญาตให้CONCURRENTอัพเดต แต่ยังคงรีเฟรชมุมมองทั้งหมด ด้วยจำนวนแถว 100 ล้านแถวซึ่งใช้เวลาไม่กี่นาที เป็นวิธีที่ดีในการติดตามการปรับปรุงและค่าใหม่และฟื้นฟูมุมมองเพียงบางส่วนเท่านั้น?

3
ประสิทธิภาพของ CPU นั้นเกี่ยวข้องกับเซิร์ฟเวอร์ฐานข้อมูลหรือไม่
นี่เป็นคำถามเชิงทฤษฎีอย่างแท้จริง สมมติว่าฉันมีแอปพลิเคชันที่ปรับใช้บนเซิร์ฟเวอร์หลายเครื่อง เครื่องถ่วงโหลด เซิร์ฟเวอร์แอพพลิเคชั่นหลายตัว / ปรับขนาดได้ เซิร์ฟเวอร์ฐานข้อมูล A (เดี่ยว) (ในขณะนี้) ในสองส่วนแรกฉันรู้ว่าต้องหาอะไร แต่เซิร์ฟเวอร์ฐานข้อมูลล่ะ ฉันควรมองหาฮาร์ดแวร์ชนิดใด ความถี่ซีพียูเกี่ยวข้องกับเซิร์ฟเวอร์ฐานข้อมูลหรือไม่ ซีพียูหลายคอร์มีความเกี่ยวข้องหรือไม่? RAM สำคัญกว่า CPU หรือไม่ PS: หากว่าฐานข้อมูลที่เลือกคือ MySQL หรือ PostgreSQL

2
วิธีที่ดีที่สุดในการเติมคอลัมน์ใหม่ในตารางขนาดใหญ่?
เรามีตาราง 2.2 GB ใน Postgres ที่มี 7,801,611 แถว เรากำลังเพิ่มคอลัมน์ uuid / guid ลงไปและฉันสงสัยว่าวิธีที่ดีที่สุดในการเติมข้อมูลคอลัมน์นั้นคืออะไร (ตามที่เราต้องการเพิ่มNOT NULLข้อ จำกัด ) หากฉันเข้าใจ Postgres อย่างถูกต้องการอัปเดตเป็นเทคนิคลบและแทรกดังนั้นนี่คือการสร้างตาราง 2.2 gb ใหม่ทั้งหมด นอกจากนี้เรายังมีทาสวิ่งอยู่ดังนั้นเราจึงไม่ต้องการให้มันล้าหลัง มีวิธีใดที่ดีไปกว่าการเขียนสคริปต์ที่ค่อยๆเติมมันลงไปตามกาลเวลา?


2
Superuser ไม่ได้รับอนุญาตให้เข้าสู่ระบบ
ฉันสร้างพอร์ทัล superuser ด้วยคำสั่งต่อไปนี้ create role portal with superuser password 'portal' เมื่อฉันพยายามที่จะเข้าสู่ postgres กับผู้ใช้พอร์ทัลฉันได้รับข้อผิดพลาดต่อไปนี้ในทางรถไฟ FATAL: role "portal" is not permitted to log in ฉันไม่สามารถติดตามสิ่งที่เกิดขึ้นได้ แน่นอนฉันสามารถเปลี่ยนผู้ใช้ด้วยคำสั่งเข้าสู่ระบบเพื่อให้ผู้ใช้พอร์ทัลเข้าสู่ระบบ ฉันต้องการที่จะเข้าใจว่าทำไมผู้ใช้ขั้นสูงไม่สามารถเข้าสู่ระบบได้
32 postgresql 

3
สามารถตั้งค่า Listen_addresses เป็นรายการได้จริงหรือ
ฉันมี VM ที่มีที่อยู่ IP 192.168.0.192 กำลังเรียกใช้ postgreSQL ถ้าฉันระบุ listen_addresses = '*' จากนั้นฉันสามารถเชื่อมต่อจาก VM อื่นที่ 192.168.0.191 และจาก localhost แต่ฉันไม่สามารถใช้รายการเพื่อบอก postgreSQL ให้ใช้ที่อยู่ทั้งสองนั้นได้ หากฉันเปลี่ยน Listen_addresses เป็นรายการ: listen_addresses = '192.168.0.191, localhost' ฉันจะไม่สามารถเชื่อมต่อจาก 192.168.0.191 อีกต่อไป ฉันสังเกตเห็นว่าตัวอย่างเกือบทั้งหมดใน stackexchange ตั้งค่า Listen_addresses เป็น '*' นี่เป็นเพราะแบบฟอร์มรายการไม่ทำงานหรือไม่
32 postgresql 

3
มันเป็นความคิดที่ดี / วิธีการจัดทำดัชนีคอลัมน์ VARCHAR?
เรากำลังใช้ PostgreSQL v8.2.3 มีตารางที่เกี่ยวข้อง: พนักงานและEMAILLIST Table 1: EMPLOYEE (column1, column2, email1, email2, column5, column6) Table 2: EMAILLIST (email) มีการรวม 2 ตารางเข้าด้วยกันซึ่งหาก EMPLOYEE.EMAIL1 หรือ EMPLOYEE.EMAIL2 ไม่ได้เข้าคู่กันแถวเหล่านั้นจะถูกส่งกลับ SELECT employee.email1, employee.email2, e1.email IS NOT NULL AS email1_matched, e2.email IS NOT NULL AS email2_matched FROM employee LEFT JOIN emaillist e1 ON e1.email = employee.email1 …

14
PostgreSQL ทำงานในเครื่อง แต่ฉันไม่สามารถเชื่อมต่อได้ ทำไม?
เพิ่งปรับปรุงเครื่องของฉันจาก Mac OS X Lion (10.7.4) เป็น Mountain Lion (10.8) และฉันคิดว่ามันติดตั้ง PostgreSQL ของฉัน มันถูกติดตั้งครั้งแรกผ่านทาง Homebrew ฉันไม่ใช่ DBA แต่หวังว่าจะมีคนบอกฉันได้ว่าจะแก้ไขปัญหานี้อย่างไร ฉันไม่สามารถเชื่อมต่อได้ (แต่สามารถทำก่อนหน้า Lion Mountain ล่วงหน้าได้): $ psql -U rails -d myapp_development psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.