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

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


6
มีเครื่องมือที่ดีและฟรีสำหรับจัดการฐานข้อมูล PostgreSQL หรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Exchange Administrators Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ก่อนหน้านี้ฉันใช้ phpmyadmin เพื่อจัดการฐานข้อมูล MySQL แต่ตอนนี้ฉันต้องการจัดการฐานข้อมูล PostgreSQL ฐานข้อมูล PostgreSQL อยู่บนเซิร์ฟเวอร์ แต่ไม่ใช่เว็บเซิร์ฟเวอร์ดังนั้นฉันจึงไม่ใช้ PHP มีเครื่องมือที่ดีและฟรีสำหรับจัดการฐานข้อมูล PostgreSQL หรือไม่? ฉันได้ลองกับ pgAdmin III แต่มันไกลจากแอพพลิเคชั่นที่ใช้งานง่ายเมื่อเทียบกับ phpmyadmin ที่ฉันเคยใช้มาก่อน DBA ที่ PostgreSQL ใช้บ่อยคืออะไร พวกเขาใช้เครื่องมือกราฟิกเช่น pgAdmin III หรือเป็นเครื่องมือบรรทัดคำสั่งส่วนใหญ่หรือไม่

2
วิธีการจัดเก็บการประทับเวลาใน PostgreSQL ที่ดีที่สุด
ฉันกำลังทำงานกับการออกแบบฐานข้อมูล PostgreSQL และฉันสงสัยว่าวิธีที่ดีที่สุดในการจัดเก็บการประทับเวลา สมมติฐาน ผู้ใช้ในเขตเวลาที่แตกต่างกันจะใช้ฐานข้อมูลสำหรับฟังก์ชั่น CRUD ทั้งหมด ฉันดูที่ 2 ตัวเลือก: timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC') bigint NOT NULL DEFAULT สำหรับtimestampฉันจะส่งสตริงที่จะแสดงเวลาที่แน่นอน (UTC) สำหรับช่วงเวลา INSERT สำหรับbigintฉันจะเก็บสิ่งเดียวกันแน่นอน แต่ในรูปแบบตัวเลข (ปัญหาเกี่ยวกับเขตเวลาได้รับการจัดการก่อนที่จะส่งมิลลิวินาทีไปยังเซิร์ฟเวอร์ดังนั้นมิลลิวินาทีใน UTC ทุกครั้ง) ข้อได้เปรียบหลักอย่างหนึ่งของการจัดเก็บ a bigintอาจเป็นไปได้ว่าจะเป็นการง่ายกว่าในการจัดเก็บและดึงข้อมูลเนื่องจากการส่งผ่านการประทับเวลาที่จัดรูปแบบอย่างถูกต้องนั้นมีความซับซ้อนมากกว่าตัวเลขง่าย ๆ คำถามของฉันคือสิ่งที่จะช่วยให้การออกแบบที่ยืดหยุ่นที่สุดและสิ่งที่อาจเป็นข้อผิดพลาดของแต่ละวิธี

2
แบบสอบถามแบบยาวของ Postgres ถูกยกเลิกหรือไม่หากการเชื่อมต่อขาดหายไป
ถ้าฉันเปิดการเชื่อมต่อกับ Postgres และออกแบบสอบถามที่ใช้เวลานานแล้วหยุดการเชื่อมต่อ (เช่นฆ่ากระบวนการไคลเอนต์ที่เปิดการเชื่อมต่อ) แบบสอบถามที่ใช้เวลานานจะยังคงทำงานต่อไปหรือจะถูกยกเลิกโดยอัตโนมัติหรือไม่ สามารถกำหนดค่านี้ได้หรือไม่ (ฉันใช้ Postgresql 9.2.9)

3
การย้ายข้อมูล postgresql ไปยังไดรฟ์อื่น
ฉันใช้ AWS เป็นสภาพแวดล้อมคลาวด์ของฉัน ฉันติดตั้ง PostgreSQL บนไดรฟ์เดียวกันกับไดรฟ์ข้อมูลอินสแตนซ์รูทของฉัน ฉันได้แนบและติดตั้งไดรฟ์ที่สองกับอินสแตนซ์ของฉัน ตอนนี้ฉันต้องการย้ายข้อมูล PostgreSQL ทั้งหมดไปยังไดรฟ์อื่น ฉันยังอยู่ในโหมดการพัฒนาดังนั้นฉันสามารถลบข้อมูลเก่าได้ถ้ามันทำให้การถ่ายโอนง่ายขึ้น ณ จุดนี้ วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? PostgreSQL tablespace เป็นสิ่งที่ฉันควรดูหรือไม่

2
วิธีสร้างดัชนีเพื่อเพิ่มความเร็วการสืบค้น LIKE รวมในนิพจน์
ฉันอาจจะถามคำถามผิดในชื่อเรื่อง นี่คือข้อเท็จจริง: กลุ่มบริการลูกค้าของฉันร้องเรียนเกี่ยวกับเวลาตอบสนองที่ช้าเมื่อทำการค้นหาลูกค้าในอินเทอร์เฟซการจัดการของเว็บไซต์ Django ของเรา เรากำลังใช้ Postgres 8.4.6 ฉันเริ่มบันทึกการสืบค้นที่ช้าและค้นพบผู้ร้ายนี้: SELECT COUNT(*) FROM "auth_user" WHERE UPPER("auth_user"."email"::text) LIKE UPPER(E'%deyk%') การค้นหานี้ใช้เวลานานกว่า 32 วินาทีในการเรียกใช้ นี่คือแผนแบบสอบถามที่จัดทำโดยอธิบาย: QUERY PLAN Aggregate (cost=205171.71..205171.72 rows=1 width=0) -> Seq Scan on auth_user (cost=0.00..205166.46 rows=2096 width=0) Filter: (upper((email)::text) ~~ '%DEYK%'::text) เนื่องจากนี่เป็นแบบสอบถามที่สร้างขึ้นโดย Django ORM จาก Django QuerySet ที่สร้างโดยแอปพลิเคชัน Django Admin ฉันจึงไม่สามารถควบคุมแบบสอบถามได้ ดัชนีดูเหมือนว่าโซลูชันเชิงตรรกะ …

4
เหตุใด Postgres จึงสร้างค่า PK ที่ใช้ไปแล้ว
ฉันใช้ Django และทุกครั้งที่ฉันได้รับข้อผิดพลาด: IntegrityError: ค่าคีย์ที่ซ้ำกันละเมิดข้อ จำกัด ที่ไม่ซ้ำกัน "myapp_mymodel_pkey" ราย ละเอียด: Key (id) = (1) มีอยู่แล้ว จริง ๆ แล้วฐานข้อมูล Postgres ของฉันมีวัตถุmyapp_mymodel ที่มีคีย์หลักเป็น 1 เหตุใด Postgres จะพยายามใช้คีย์หลักนั้นอีกครั้ง หรือนี่เป็นไปได้มากว่าแอปพลิเคชันของฉัน (หรือ ORM ของ Django) เป็นสาเหตุให้เกิดปัญหานี้ ปัญหานี้เกิดขึ้น 3 ครั้งติดต่อกันตอนนี้ สิ่งที่ฉันได้พบก็คือว่าเมื่อมันไม่เกิดขึ้นมันเกิดขึ้นหนึ่งครั้งหรือมากกว่าในแถวในตารางที่ระบุนั้นไม่ได้อีกครั้ง ดูเหมือนว่าจะเกิดขึ้นสำหรับทุกตารางก่อนที่จะหยุดอย่างสมบูรณ์สำหรับวันที่เกิดขึ้นเป็นเวลาอย่างน้อยหนึ่งนาทีหรือดังนั้นต่อตารางเมื่อมันเกิดขึ้นและจะเกิดขึ้นเป็นระยะ ๆ เท่านั้น (ไม่ตารางทั้งหมดทันที) ความจริงที่ว่าข้อผิดพลาดนี้เป็นระยะ ๆ (เกิดขึ้นเพียง 3 ครั้งหรือมากกว่านั้นใน 2 สัปดาห์ - ไม่มีการโหลดอื่น ๆ บนฐานข้อมูลเพียงฉันทดสอบใบสมัครของฉัน) …

4
ค้นหา ID จากรายการที่ไม่มีอยู่ในตาราง
ว่าฉันมีคีมาและข้อมูลต่อไปนี้: create table images( id int not null ); insert into images values(1), (2), (3), (4), (6), (8); ฉันต้องการที่จะทำการค้นหาเช่น: select id from images where id not exists in(4, 5, 6); แต่มันไม่ได้ผล กรณีข้างต้นควรกลับมา5เนื่องจากไม่มีอยู่ในระเบียนในตาราง

1
การเรียกใช้ VACUUM บนโต๊ะที่รับเฉพาะ INSERT นั้นคุ้มค่าหรือไม่
ในปี 2558 เรื่องการประดิษฐ์คิดค้น AWS กล่าวว่าเครื่องดูดฝุ่นควรทำงานไม่เพียง แต่หลังจากการปรับปรุงหรือลบ แต่ยังหลังจากการแทรก นี่คือส่วนที่เกี่ยวข้องของการพูดคุย: http://www.youtube.com/watch?v=tZXp19q8RFo&t=16m2s สมมุติว่ามีการล้างข้อมูลที่ต้องทำบนบล็อกแม้ว่าจะได้รับการแทรกเท่านั้นและการล้างข้อมูลนี้สามารถทำได้ทั้งในครั้งแรกที่มีการเลือกบล็อก (ชะลอการอ่าน) หรือระหว่างการดูด สิ่งนี้เป็นจริงหรือไม่และหากเป็นเช่นนั้นการล้างข้อมูลต้องทำอย่างไร

2
PostgreSQL เพิ่มประสิทธิภาพ SSD
ฉันจะมีฐานข้อมูล PostgreSQL 9.3 ขนาดใหญ่ที่มีหลายตารางที่มีมากกว่า 100M รายการต่อตาราง ฐานข้อมูลนี้จะเป็นแบบอ่านอย่างเดียว (เมื่อฉันกรอกตารางที่จำเป็นทั้งหมดและสร้างดัชนีไม่มีการเขียนบนฐานข้อมูลอีกต่อไป) และการเข้าถึงของผู้ใช้คนเดียว เพื่อการวิจัยเท่านั้น ข้อความค้นหาจะใช้ JOIN บนฟิลด์ฐานข้อมูลจำนวนเต็มเสมอ ฉันอาจจะซื้อ SSD (256-512GB) เพื่อวัตถุประสงค์นี้ ฉันไม่เคยใช้ SSD สำหรับฐานข้อมูลมาก่อนดังนั้นมีอะไรที่ฉันควรกลัว ฉันสามารถใส่ DB ทั้งหมดลงใน SSD หรือเพียงแค่สร้างดัชนีได้หรือไม่ จำเป็นต้องมีคำแนะนำ / การสอนพิเศษสำหรับปรับแต่ง PostgreSQL สำหรับ SSD หรือไม่? โปรดทราบว่าฉันมีเวิร์กสเตชันที่ดีที่มี i7 และ 32Gb of RAM ดังนั้นบางทีคุณสามารถให้คำแนะนำบางอย่างได้เช่นกัน

2
ปิดใช้งานข้อ จำกัด และการตรวจสอบตารางทั้งหมดขณะที่กู้คืนดัมพ์
ฉันได้รับดัมพ์ของฐานข้อมูล PostgreSQL ของฉันด้วย: pg_dump -U user-name -d db-name -f dumpfile ซึ่งฉันแล้วดำเนินการคืนค่าในฐานข้อมูลอื่นด้วย: psql X -U postgres -d db-name-b -f dumpfile ปัญหาของฉันคือฐานข้อมูลมีข้อ จำกัด การอ้างอิงการตรวจสอบและทริกเกอร์และข้อผิดพลาดบางอย่าง (การตรวจสอบโดยเฉพาะอย่างยิ่งดูเหมือนจะเกิดขึ้น) ในระหว่างการกู้คืนเนื่องจากข้อมูลไม่ถูกโหลดตามลำดับที่จะทำให้การตรวจสอบเหล่านั้นได้รับเกียรติ ยกตัวอย่างเช่นการแทรกแถวในตารางอาจจะเกี่ยวข้องกับการCHECKที่เรียกplpgsqlฟังก์ชั่นที่ตรวจสอบไม่ว่าจะเป็นสภาพที่ถือในตารางที่ไม่เกี่ยวข้องอื่น ๆ หากตารางหลังนั้นไม่โหลดpsqlก่อนก่อนจะเกิดข้อผิดพลาด ต่อไปนี้เป็น SSCCE ที่สร้างฐานข้อมูลดังกล่าวซึ่งเมื่อทิ้งด้วยpg_dumpไม่สามารถกู้คืนได้: CREATE OR REPLACE FUNCTION fail_if_b_empty () RETURNS BOOLEAN AS $$ SELECT EXISTS (SELECT 1 FROM b) $$ LANGUAGE SQL; CREATE …

6
PostgreSQL เปลี่ยนเจ้าของของตารางทั้งหมดภายใต้สคีมาที่เฉพาะเจาะจง
ฉันกำลังพยายามเปลี่ยนเจ้าของตารางทั้งหมดภายใต้สคีเดียวกันในบรรทัดคำสั่งเดียว alter table schema_name.* owner to newownerเช่น: มีวิธีสำเร็จหรือไม่

2
ทำไมแผนต่างกันถ้าแบบสอบถามมีเหตุผลเหมือนกัน?
ฉันเขียนสองฟังก์ชั่นที่จะตอบวันที่ 3 เป็นครั้งแรกที่บ้านของคำถามจากเซเว่นฐานข้อมูลในเจ็ดสัปดาห์ สร้างกระบวนงานที่เก็บไว้ซึ่งคุณสามารถป้อนชื่อภาพยนตร์หรือชื่อของนักแสดงที่คุณชอบและมันจะส่งคืนคำแนะนำห้าอันดับแรกตามภาพยนตร์ที่นักแสดงติดดาวหรือภาพยนตร์ประเภทเดียวกัน ความพยายามครั้งแรกของฉันถูกต้อง แต่ช้า อาจใช้เวลานานถึง 2000 มิลลิวินาทีในการส่งคืนผลลัพธ์ CREATE OR REPLACE FUNCTION suggest_movies(IN query text, IN result_limit integer DEFAULT 5) RETURNS TABLE(movie_id integer, title text) AS $BODY$ WITH suggestions AS ( SELECT actors.name AS entity_term, movies.movie_id AS suggestion_id, movies.title AS suggestion_title, 1 AS rank FROM actors INNER JOIN movies_actors …

3
PostgreSQL: ฉันสามารถทำ pg_start_backup () บน live ที่รันอยู่ภายใต้โหลดหรือไม่?
การจำลองแบบที่สร้างขึ้นของเราใช้งานไม่ได้ ("ส่วน WAL ที่ร้องขอถูกลบแล้ว" ในช่วงเวลาที่ระบบหยุดทำงาน) เราไม่สามารถหยุดต้นแบบได้อย่างง่ายดายอีกครั้ง เราทำได้ไหม pg_start_backup(), rsync ${PGDATA}/ นายทาส pg_stop_backup() ... ในขณะที่มาสเตอร์ postgresql ยังโหลดเต็มหรือไม่ (หรือจะpg_start_backup()นำไปสู่ ล็อคตาราง บล็อก I / O ไม่สอดคล้องกัน สัญญาณเตือนไฟไหม้ การตอบสนอง db ช้า กล่าวอีกนัยหนึ่งจะpg_start_backup()ส่งผลต่อแอปพลิเคชันของเราหรือไม่

1
ฉันจะแปลงสตริงเป็นความแม่นยำสองเท่าใน PostgreSQL ได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันจะแปลงสตริงเป็นความแม่นยำสองเท่าใน PostgreSQL ได้อย่างไร ฉันลองทำสิ่งที่ชอบ: update points set latitude2 = cast(latitude as double) ; โดยที่ละติจูดเป็นสตริงและละติจูด 2 เป็นสองเท่า ฉันไม่สามารถทำงานได้
19 postgresql 

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