ผู้ดูแลฐานข้อมูล

ถามตอบสำหรับผู้เชี่ยวชาญด้านฐานข้อมูลที่ต้องการพัฒนาทักษะฐานข้อมูลและเรียนรู้จากผู้อื่นในชุมชน

2
Amazon RDS สำหรับ MySQL และการติดตั้ง MySQL บนอินสแตนซ์ Amazon EC2
ที่ทำงานเราเป็นเจ้าภาพเว็บเซิร์ฟเวอร์ของเราทั้งหมดใน Amazon EC2 และมักจะมีฐานข้อมูล MySQL ที่ใช้ติดตั้งในกล่องเดียวกับเว็บเซิร์ฟเวอร์ Apache localhostของเราและการสื่อสารกับพวกเขาใน ตอนนี้เราต้องเผชิญกับความต้องการโยกย้ายฐานข้อมูลของเราไปยังเซิร์ฟเวอร์ของตัวเองสำหรับหนึ่งในระบบของเรา ฉันมีทางเลือกระหว่างสองวิธี: ใช้Amazon RDSหรือเพียงแค่เปิดตัวกล่องAmazon EC2ใหม่และติดตั้ง MySQL บน RDS ซึ่งเป็นบริการฐานข้อมูลเฉพาะที่จัดทำโดย บริษัท เดียวกันกับ EC2 ดูเหมือนว่าควรเป็นตัวเลือกที่ดีกว่าอย่างเห็นได้ชัด อย่างไรก็ตามเมื่อฉันดูการกำหนดราคาสำหรับสองตัวเลือก (ดูhttp://aws.amazon.com/ec2/pricingและhttp://aws.amazon.com/rds/pricing ) ดูเหมือนว่าเซิร์ฟเวอร์ RDS มีค่าใช้จ่ายเกือบ สองเท่าของเซิร์ฟเวอร์ EC2 สำหรับกล่องที่มีสเปคเดียวกัน เนื่องจากฉันสามารถจัดการการสำรองข้อมูลด้วยตนเองและ EC2 นั้นมีความสามารถในการเพิ่มขนาดอินสแตนซ์ตามที่ RDS ทำดังนั้นฉันไม่เห็นเหตุผลที่จะใช้ RDS แทน EC2 เลย ดูเหมือนว่าฉันอาจจะพลาดบางสิ่งบางอย่างที่ยิ่งใหญ่เพราะถ้าฉันพูดถูกไม่มีใครจะใช้ RDS ฉันพลาดอะไรไปบ้างและข้อดีของ RDS ในการติดตั้งฐานข้อมูลของคุณเองบนอินสแตนซ์ EC2 คืออะไร
31 mysql  amazon-rds 

2
ดัชนีหลายคอลัมน์และประสิทธิภาพ
ฉันมีตารางที่มีดัชนีหลายคอลัมน์และฉันมีข้อสงสัยเกี่ยวกับการเรียงลำดับที่เหมาะสมของดัชนีเพื่อให้ได้ประสิทธิภาพสูงสุดในการสืบค้น สถานการณ์: PostgreSQL 8.4 ตารางที่มีประมาณหนึ่งล้านแถว ค่าในคอลัมน์c1สามารถมีประมาณ100 ค่าที่แตกต่างกัน เราสามารถสันนิษฐานได้ว่าค่ามีการกระจายอย่างเท่าเทียมกันดังนั้นเราจึงมีประมาณ 10,000 แถวสำหรับทุกค่าที่เป็นไปได้ คอลัมน์c2สามารถมี1,000 ค่าที่แตกต่าง เรามี 1,000 แถวสำหรับทุกค่าที่เป็นไปได้ เมื่อค้นหาข้อมูลเงื่อนไขจะมีค่าสำหรับคอลัมน์สองคอลัมน์เหล่านี้เสมอดังนั้นตารางจะมีดัชนีหลายคอลัมน์ซึ่งรวม c1 และ c2 ฉันได้อ่านเกี่ยวกับความสำคัญของการจัดเรียงคอลัมน์ในดัชนีหลายคอลัมน์อย่างถูกต้องหากคุณมีข้อความค้นหาที่ใช้เพียงคอลัมน์เดียวในการกรอง นี่ไม่ใช่กรณีในสถานการณ์ของเรา คำถามของฉันคือคำถามนี้: จากข้อเท็จจริงที่ว่าหนึ่งในตัวกรองเลือกชุดข้อมูลที่เล็กกว่ามากฉันจะปรับปรุงประสิทธิภาพได้ไหมถ้าดัชนีตัวแรกเป็นตัวเลือกที่เลือกได้มากที่สุด ฉันไม่เคยพิจารณาคำถามนี้จนกระทั่งเห็นกราฟิกจากบทความที่อ้างอิง: ภาพที่นำมาจากบทความที่อ้างอิงเกี่ยวกับดัชนีหลายคอลัมน์ แบบสอบถามใช้ค่าจากสองคอลัมน์ในการกรอง ฉันไม่มีข้อความค้นหาที่ใช้เพียงหนึ่งคอลัมน์ในการกรอง พวกเขาทั้งหมดคือ: WHERE c1=@ParameterA AND c2=@ParameterB. นอกจากนี้ยังมีเงื่อนไขเช่นนี้:WHERE c1 = "abc" AND c2 LIKE "ab%"


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

9
รับอันดับของผู้ใช้ในตารางคะแนน
ฉันมีตาราง MySQL ง่าย ๆ ที่ฉันบันทึกคะแนนสูงสุด ดูเหมือนว่า: Id Name Score จนถึงตอนนี้ดีมาก คำถามคือฉันจะได้รับสิ่งที่ผู้ใช้อันดับได้อย่างไร ตัวอย่างเช่นผมมีผู้ใช้Nameหรือและต้องการที่จะได้รับตำแหน่งของเขาซึ่งแถวทั้งหมดเป็นลำดับจากมากไปน้อยสั่งสำหรับIdScore ตัวอย่าง Id Name Score 1 Ida 100 2 Boo 58 3 Lala 88 4 Bash 102 5 Assem 99 ในกรณีนี้Assemอันดับของเขาจะเป็น 3 เพราะเขาได้คะแนนสูงสุดอันดับที่ 3 แบบสอบถามควรส่งคืนหนึ่งแถวซึ่งมีอันดับที่จำเป็น (เท่านั้น)
31 mysql  rank 

3
ลืมรหัสผ่าน PostgreSQL Windows
เช้านี้ฉันพยายามเชื่อมต่อฐานข้อมูล PostgreSQL บนเดสก์ท็อป Windows 7 Professional ของฉัน ค่าเริ่มต้นคือ 'postgres' แต่แน่นอนว่าฉันลืมรหัสผ่านที่ฉันใช้เมื่อติดตั้งครั้งแรก ฉัน googled และพบโพสต์ที่เกี่ยวข้องกับการรีเซ็ตรหัสผ่านของคุณ ฉันทำตามขั้นตอนต่าง ๆ แต่ผลลัพธ์ที่ได้นั้นแตกต่างจากที่กล่าวไว้ในโพสต์ ฉันใช้- net user postgres postgres เพื่อรีเซ็ตรหัสผ่านสำหรับฐานข้อมูลของฉัน แต่แทนที่จะเป็นข้อความแจ้งความสำเร็จที่ฉันได้รับ: "ข้อผิดพลาดระบบ 5 เกิดขึ้นการเข้าถึงถูกปฏิเสธ" ระบบผิดพลาด. ฉันจะหลีกเลี่ยงข้อผิดพลาดนี้และรีเซ็ตรหัสผ่านได้อย่างไร

2
ฉันจะวางข้อ จำกัด ทั้งหมดจากตารางทั้งหมดได้อย่างไร
ฉันต้องการปล่อยข้อ จำกัด เริ่มต้นทั้งหมดตรวจสอบข้อ จำกัด ข้อ จำกัด เฉพาะคีย์หลักและคีย์ต่างประเทศจากตารางทั้งหมดในฐานข้อมูล SQL Server ฉันรู้วิธีรับชื่อข้อ จำกัด ทั้งหมดsys.objectsแต่ฉันจะเติมALTER TABLEส่วนได้อย่างไร

4
ความเร็วสัญญาณนาฬิกาของ CPU เทียบกับจำนวนแกนประมวลผลหลัก - สูงกว่า GHz หรือแกนประมวลผลเพิ่มเติมสำหรับ SQL Server
เราเริ่มเตรียมชุดฟิสิคัลเซิร์ฟเวอร์สำหรับคลัสเตอร์เสมือนของโหนด SQL Server 2016 ภายใน VMware เราจะใช้สิทธิ์การใช้งาน Enterprise Edition เราวางแผนที่จะตั้งค่า 6 โหนด แต่มีการถกเถียงกันเล็กน้อยเกี่ยวกับวิธีที่เหมาะสมที่สุดในการจัดเตรียมเซิร์ฟเวอร์ทางกายภาพที่เกี่ยวกับความเร็วสัญญาณนาฬิกาของ CPU เทียบกับจำนวนหลักของ CPU ฉันรู้ว่าส่วนใหญ่ขึ้นอยู่กับปริมาณธุรกรรมและจำนวนฐานข้อมูลที่เก็บไว้ในปัจจัยเฉพาะซอฟต์แวร์อื่น ๆ แต่มีกฎทั่วไปที่แนะนำหรือไม่ ตัวอย่างเช่นเซิร์ฟเวอร์ฟิสิคัลแบบ dual-core 8-core, 3.2 GHz (16 คอร์) เป็นสิทธิพิเศษสำหรับเซิร์ฟเวอร์ 16-core, 16 GHz แบบคู่ 16 แกน (32 คอร์) หรือไม่? มีใครบ้างที่พบกระดาษสีขาวที่นำเสนอหัวข้อประเภทนี้เพิ่มเติมหรือไม่

1
ต้องการดัชนีสำหรับคีย์ต่างประเทศ
ฉันกำลังดิ้นรนกับดัชนีคีย์หลักและคีย์ต่างประเทศ ... และความต้องการของพวกเขาทั้งหมด ถ้าฉันมีสองตารางทั้งสองจะมีจำนวนเต็มเป็นคีย์หลัก ตารางแรกอ้างอิงผ่าน FK ไปยังคีย์หลักของตารางที่สอง ในตารางทั้งสองฉันมีดัชนีคีย์หลักในคอลัมน์ ID ฉันสร้างข้อ จำกัด FK ในการtable1.ref_fieldอ้างอิง PK ของตารางที่สอง ( table2.id) และฉันเพิ่มดัชนีบน table1.ref_field นี่เป็นวิธีที่ดีที่สุดในการจัดระเบียบดัชนีคีย์หลักและคีย์ต่างประเทศหรือไม่

1
เหตุใดการสแกนจึงเร็วกว่าการค้นหาคำนี้
ฉันสามารถสร้างปัญหาประสิทธิภาพการสืบค้นที่ฉันจะอธิบายได้อย่างไม่คาดคิด ฉันกำลังมองหาคำตอบที่มุ่งเน้นไปที่ภายใน บนเครื่องของฉันเคียวรีต่อไปนี้ทำการสแกนดัชนีแบบคลัสเตอร์และใช้เวลาประมาณ 6.8 วินาทีของเวลา CPU: SELECT ID1, ID2 FROM two_col_key_test WITH (FORCESCAN) WHERE ID1 NOT IN ( N'1', N'2',N'3', N'4', N'5', N'6', N'7', N'8', N'9', N'10', N'11', N'12',N'13', N'14', N'15', N'16', N'17', N'18', N'19', N'20' ) AND (ID1 = N'FILLER TEXT' AND ID2 >= N'' OR (ID1 > N'FILLER …

1
การค้นหาดัชนีจะเร็วขึ้นอย่างเห็นได้ชัดด้วย char vs varchar หรือไม่เมื่อค่าทั้งหมดเป็น 36 ตัวอักษร
ฉันมีแบบแผนดั้งเดิม (ข้อจำกัดความรับผิดชอบ!) ที่ใช้รหัสที่สร้างโดยใช้แฮชสำหรับคีย์หลักสำหรับตารางทั้งหมด (มีจำนวนมาก) ตัวอย่างของ ID ดังกล่าวคือ: 922475bb-ad93-43ee-9487-d2671b886479 ไม่มีความหวังที่เป็นไปได้ในการเปลี่ยนวิธีการนี้อย่างไรก็ตามประสิทธิภาพของการเข้าถึงดัชนีนั้นไม่ดี การตั้งค่ากันมากมายเหตุผลนี้อาจจะมีสิ่งหนึ่งที่ผมสังเกตเห็นว่าดูเหมือนน้อยกว่าที่ดีที่สุด - แม้จะมีค่า ID ทั้งหมดในตารางมากทั้งหมดเป็นว่า 36 ตัวอักษรความยาวชนิดคอลัมน์varchar(36), ไม่ char(36) การเปลี่ยนประเภทคอลัมน์เป็นความยาวคงที่จะchar(36)ให้ประโยชน์ด้านดัชนีอย่างมีนัยสำคัญหรือไม่นอกเหนือจากการเพิ่มจำนวนรายการต่อหน้าดัชนีเป็นต้น? คือ postgres ทำงานเร็วกว่ามากเมื่อจัดการกับประเภทความยาวคงที่มากกว่าประเภทความยาวผันแปรหรือไม่ โปรดอย่าพูดถึงการประหยัดพื้นที่เก็บข้อมูลขนาดจิ๋ว - ไม่เป็นไรเมื่อเทียบกับการผ่าตัดที่จำเป็นในการเปลี่ยนแปลงคอลัมน์

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

1
การฉีด SQL ในฟังก์ชัน Postgres กับเคียวรีที่เตรียมไว้
ใน Postgres แบบสอบถามที่เตรียมไว้และฟังก์ชั่นที่ผู้ใช้กำหนดเองนั้นเทียบเท่ากับกลไกในการป้องกันการฉีด SQLหรือไม่ มีข้อดีโดยเฉพาะอย่างยิ่งในแนวทางหนึ่งมากกว่าอีกวิธีหนึ่งหรือไม่?

2
ฟังก์ชั่น MySQL และหน้าต่าง
ดูเหมือนว่าMySQLไม่รองรับฟังก์ชั่นหน้าต่าง เช่นง่าย ๆ : COUNT(*) OVER() AS cntไม่ทำงาน สิ่งที่ฉันไม่แน่ใจคือถ้าสิ่งนี้นำไปใช้กับรุ่นเชิงพาณิชย์เช่นกัน (ฉันถือว่ารุ่นชุมชนเป็นชุดย่อยที่ จำกัด ) ถ้าไม่วิธีการหนึ่งที่จะแก้ไขคุณสมบัติที่ขาดหายไปนี้ได้อย่างไร

6
ความเข้ากันได้ของ SQL Server กับมาตรฐาน TLS ใหม่
เบราว์เซอร์หลักเคลื่อนไหวเกิน SSL3.0 และ TLS1.0 PCI Security Council ได้ประกาศวันที่หมดอายุการใช้งานสำหรับโปรโตคอลเหล่านี้ที่จะพิจารณาว่ามีการเข้ารหัสที่แข็งแกร่งเพียงพอ เราจำเป็นต้องย้ายออกจากโปรโตคอลเหล่านี้เพื่อใช้ใหม่และแข็งแรงกว่า บนเซิร์ฟเวอร์ Windows คุณสามารถปิดใช้งานโปรโตคอลเก่าเหล่านี้ได้อย่างง่ายดายและเสนอ TLS1.1 หรือสูงกว่าแทน อย่างไรก็ตามตามที่ระบุไว้ที่อื่น Microsoft SQL Server 2008 R2 และ SQL Server 2012 (มาตรฐานอย่างน้อยที่สุด) ทั้งคู่จะไม่เริ่มทำงานหากปิดใช้งานโปรโตคอลที่ต่ำกว่า อย่างไรก็ตามมี MS SQL Server เวอร์ชันที่เพิ่มขึ้นเรื่อย ๆ มี SQL Server Standard, Business Intelligence, Enterprise, Express, Web และ Compact Editions และแน่นอนว่ามี SQL Server 2008, 2012, 2014 …

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