คำถามติดแท็ก query-optimization

19
การนับ DISTINCT บนหลายคอลัมน์
มีวิธีที่ดีกว่าในการทำแบบสอบถามเช่นนี้: SELECT COUNT(*) FROM (SELECT DISTINCT DocumentId, DocumentSessionId FROM DocumentOutputItems) AS internalQuery ฉันต้องนับจำนวนรายการที่แตกต่างจากตารางนี้ แต่ความแตกต่างอยู่เหนือสองคอลัมน์ แบบสอบถามของฉันทำงานได้ดี แต่ฉันสงสัยว่าฉันจะได้ผลลัพธ์สุดท้ายโดยใช้เพียงแบบสอบถามเดียว (โดยไม่ใช้แบบสอบถามย่อย)

7
ดัชนี MySQL - แนวปฏิบัติที่ดีที่สุดคืออะไร
ฉันใช้ดัชนีในฐานข้อมูล MySQL มาระยะหนึ่งแล้ว แต่ไม่เคยเรียนรู้มาก่อน โดยทั่วไปแล้วฉันวางดัชนีลงในเขตข้อมูลใด ๆ ที่ฉันจะค้นหาหรือเลือกโดยใช้WHEREประโยค แนวปฏิบัติที่ดีที่สุดสำหรับดัชนี MySQL คืออะไร ตัวอย่างสถานการณ์ / ประเด็นขัดแย้ง: หากตารางมีหกคอลัมน์และทั้งหมดสามารถค้นหาได้ฉันควรจัดทำดัชนีทั้งหมดหรือไม่? ประสิทธิภาพเชิงลบของการจัดทำดัชนีคืออะไร หากฉันมีคอลัมน์ VARCHAR 2500 ซึ่งสามารถค้นหาได้จากบางส่วนของเว็บไซต์ของฉันฉันควรสร้างดัชนีหรือไม่

9
SQL: วิธีการตรวจสอบอย่างถูกต้องว่ามีการบันทึกอยู่
ขณะอ่านเอกสารเกี่ยวกับการปรับแต่ง SQL ฉันพบสิ่งนี้: SELECT COUNT(*) : นับจำนวนแถว มักใช้อย่างไม่เหมาะสมเพื่อตรวจสอบการมีอยู่ของระเบียน คือSELECT COUNT(*)จริงๆที่ไม่ดีที่? วิธีที่เหมาะสมในการตรวจสอบการมีอยู่ของบันทึกคืออะไร?

14
เข้าร่วมแบบสอบถามเปรียบเทียบกับแบบสอบถามหลายรายการ
การสืบค้นเข้าร่วมจะเร็วกว่าการสืบค้นหลายครั้งหรือไม่ (คุณเรียกใช้คิวรีหลักของคุณและจากนั้นคุณเรียกใช้ SELECT อื่น ๆ มากมายขึ้นอยู่กับผลลัพธ์จากแบบสอบถามหลักของคุณ) ฉันถามเพราะการเข้าร่วมจะทำให้การออกแบบแอปพลิเคชันของฉันซับซ้อนขึ้นมาก หากพวกเขาเร็วขึ้นใคร ๆ จะประมาณคร่าวๆได้ไหม? ถ้า 1.5x ฉันไม่สนใจ แต่ถ้าเป็น 10x ฉันคิดว่าฉันทำ

3
เหตุใดทิศทางของดัชนีจึงมีความสำคัญใน MongoDB
ในการอ้างอิงเอกสาร : เมื่อสร้างดัชนีตัวเลขที่เชื่อมโยงกับคีย์จะระบุทิศทางของดัชนีดังนั้นควรเป็น 1 (จากน้อยไปมาก) หรือ -1 (จากมากไปหาน้อย) เสมอ ทิศทางไม่สำคัญสำหรับดัชนีคีย์เดียวหรือสำหรับการดึงการเข้าถึงแบบสุ่ม แต่มีความสำคัญหากคุณกำลังทำแบบสอบถามประเภทหรือช่วงในดัชนีผสม อย่างไรก็ตามฉันไม่เห็นเหตุผลว่าทำไมทิศทางของดัชนีจึงมีความสำคัญกับดัชนีผสม ใครช่วยให้คำอธิบายเพิ่มเติม (หรือตัวอย่าง) ได้ไหม

8
รูปแบบประสิทธิภาพของแบบสอบถาม PostgreSQL LIKE
ฉันเห็นการเปลี่ยนแปลงค่อนข้างมากในเวลาตอบสนองเกี่ยวกับการLIKEสืบค้นตารางใดตารางหนึ่งในฐานข้อมูลของฉัน บางครั้งฉันจะได้ผลลัพธ์ภายใน 200-400 มิลลิวินาที (ยอมรับได้มาก) แต่บางครั้งอาจใช้เวลามากถึง 30 วินาทีในการส่งคืนผลลัพธ์ ฉันเข้าใจว่าLIKEข้อความค้นหามีทรัพยากรมาก แต่ฉันไม่เข้าใจว่าทำไมเวลาตอบกลับจึงมีความแตกต่างกันมาก ฉันได้สร้างดัชนี btree บนowner1สนาม แต่ฉันไม่คิดว่ามันจะช่วยในการLIKEสืบค้น ใครมีไอเดียบ้าง SQL ตัวอย่าง: SELECT gid, owner1 FORM parcels WHERE owner1 ILIKE '%someones name%' LIMIT 10 ฉันได้ลองแล้ว: SELECT gid, owner1 FROM parcels WHERE lower(owner1) LIKE lower('%someones name%') LIMIT 10 และ: SELECT gid, owner1 FROM parcels WHERE lower(owner1) …

9
PostgreSQL - ดึงแถวที่มีค่าสูงสุดสำหรับคอลัมน์
ฉันกำลังจัดการกับตาราง Postgres (เรียกว่า "ชีวิต") ที่มีระเบียนที่มีคอลัมน์สำหรับ time_stamp, usr_id, transaction_id และ lives_remaining ฉันต้องการคำค้นหาที่จะให้ผลรวม life_remaining ล่าสุดสำหรับ usr_id แต่ละรายการ มีผู้ใช้หลายคน (usr_id ต่างกัน) time_stamp ไม่ใช่ตัวระบุที่ไม่ซ้ำกัน: บางครั้งเหตุการณ์ของผู้ใช้ (ทีละแถวในตาราง) จะเกิดขึ้นพร้อมกับ time_stamp เดียวกัน trans_id จะไม่ซ้ำกันสำหรับช่วงเวลาที่เล็กมากเท่านั้น: เมื่อเวลาผ่านไปจะเกิดซ้ำ ส่วนที่เหลือ (สำหรับผู้ใช้ที่ระบุ) สามารถเพิ่มและลดได้เมื่อเวลาผ่านไป ตัวอย่าง: time_stamp | lives_remaining | usr_id | trans_id ----------------------------------------- 07:00 | 1 | 1 | 1 09:00 | 4 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.