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

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

1
อะไรคือเหตุผลเบื้องหลังของทฤษฎีบท CAP?
http://en.wikipedia.org/wiki/CAP_theorem http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf ฉันคิดว่ามันไม่ได้ตรงไปตรงมามากว่าทำไมเพียงสองของ ความมั่นคง ความพร้อมใช้งาน ฉากกั้นห้อง สามารถเก็บไว้สำหรับระบบฐานข้อมูลแบบกระจายที่กำหนด การคาดเดานี้ได้รับการพิสูจน์แล้วว่า แต่จะมีวิธีที่ง่ายเพื่อดูว่าทำไมอาจนี้อาจถือ? ฉันไม่ได้มองหาหลักฐานเพียงวิธีที่ดีที่จะเข้าใจว่าทำไมทฤษฎีบทนี้จึงสมเหตุสมผล อะไรคือเหตุผล?

6
ความเร็วในการโหลดข้อมูลช้าจาก mysqldump
ฉันมีฐานข้อมูล MySQL ขนาดปานกลางที่มีประมาณ 30 ตารางซึ่งบางส่วนเป็น 10 ล้านบันทึกบาง 100 ล้าน mysqldumpของตารางทั้งหมด (เป็นไฟล์ที่แยกต่างหาก) เป็นธรรมอย่างรวดเร็วใช้เวลาอาจจะ 20 นาที มันสร้างข้อมูลประมาณ 15GB ไฟล์ที่ทิ้งที่ใหญ่ที่สุดอยู่ในช่วง 2GB เมื่อฉันโหลดข้อมูลลงใน MySQL บนอีกกล่องหนึ่งเครื่องหกคอร์ 8GB ซึ่งใช้เวลานาน ได้อย่างง่ายดาย 12 ชั่วโมงหรือมากกว่า ฉันแค่เรียกใช้ไคลเอนต์ mysql เพื่อโหลดไฟล์เช่น mysql database < footable.sql โดยตรงกับไฟล์โดยตรงจาก mysqldump mysqldump database foo > footable.sql เห็นได้ชัดว่าฉันกำลังทำอะไรผิด ฉันจะเริ่มต้นที่ไหนเพื่อให้สามารถเสร็จในเวลาที่เหมาะสม? ฉันไม่ได้ใช้สวิตช์ใด ๆ กับการถ่ายโอนข้อมูลหรือโหลด
21 mysql  mysqldump 

1
ชี้แจงเกี่ยวกับตัวแปร MySQL innodb_flush_method
ให้ฉันเริ่มต้นด้วยการยอมรับว่าฉันไม่รู้งานด้านในของฮาร์ดดิสก์ ดังนั้นเมื่อฉันอ่านคู่มือสำหรับตัวแปรinnodb_flush_methodมันทำให้ฉันสับสน ฉันสามารถขอคำอธิบายในแง่ของคนธรรมดาในความแตกต่างใน O_DSYNC และ O_DIRECT และวิธีการที่จะรู้ว่ามันเป็นปัญหาประสิทธิภาพการทำงานบนเซิร์ฟเวอร์ฐานข้อมูล สถิติบางอย่างเกี่ยวกับการตั้งค่าของฉัน: Mac OSX 10.6 (เคอร์เนล 32 บิตเนื่องจากสถาปัตยกรรมล้าสมัย) ที่ใช้ MySQL 5.1.49-64 บิต (หวังว่ามันจะช่วยให้ฉันใช้หน่วยความจำได้) 8GB RAM, ~ 6GB ของข้อมูล / ดัชนี Innodb
21 mysql  innodb 

3
สำรองข้อมูลฐานข้อมูลหลักบ่อยแค่ไหน?
คำแนะนำในBOLค่อนข้างคลุมเครือ: แบ็คอัพมาสเตอร์บ่อยเท่าที่จำเป็นเพื่อปกป้องข้อมูลอย่างเพียงพอสำหรับความต้องการทางธุรกิจของคุณ เราขอแนะนำให้กำหนดการสำรองข้อมูลปกติซึ่งคุณสามารถเสริมด้วยการสำรองข้อมูลเพิ่มเติมหลังจากการปรับปรุงที่สำคัญ หากคุณเข้าไปลงทุนเพิ่มเติมคุณจะพบรายละเอียดเหล่านี้: ประเภทของการดำเนินการที่ทำให้เกิดการอัปเดตข้อมูลหลักและจำเป็นต้องมีการสำรองข้อมูลให้ทำดังนี้: การสร้างหรือลบฐานข้อมูลผู้ใช้ หากฐานข้อมูลผู้ใช้เติบโตโดยอัตโนมัติเพื่อรองรับข้อมูลใหม่ ต้นแบบจะไม่ได้รับผลกระทบ การเพิ่มหรือลบไฟล์และกลุ่มไฟล์ การเพิ่มการเข้าสู่ระบบหรือการดำเนินการอื่น ๆ ที่เกี่ยวข้องกับความปลอดภัยการเข้าสู่ระบบ การดำเนินการรักษาความปลอดภัยฐานข้อมูลเช่นการเพิ่มผู้ใช้ไปยังฐานข้อมูลจะไม่ส่งผลกระทบต่อต้นแบบ การเปลี่ยนตัวเลือกการกำหนดค่าทั้งเซิร์ฟเวอร์หรือฐานข้อมูล การสร้างหรือลบอุปกรณ์สำรองข้อมูลแบบลอจิคัล การกำหนดค่าเซิร์ฟเวอร์สำหรับเคียวรีแบบกระจายและการเรียกโพรซีเดอร์แบบรีโมต (RPCs) เช่นการเพิ่มเซิร์ฟเวอร์ที่ลิงก์หรือล็อกอินแบบรีโมต ดังนั้นหากการเข้าสู่ระบบทั้งหมดของเราถูกเพิ่มเข้าไปในกลุ่ม Windows และเราไม่ทำการเปลี่ยนแปลงใด ๆ กับฐานข้อมูลนั่นหมายความว่าการสำรองข้อมูลครั้งเดียวของต้นแบบนั้นเพียงพอหรือไม่ ถ้าไม่ช่วงเวลาการสำรองข้อมูลมาตรฐานสำหรับฐานข้อมูลหลักคืออะไร

6
มีเครื่องมือที่ดีสำหรับการออกแบบฐานข้อมูลและต้นแบบหรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันต้องการเครื่องมือที่ดีสำหรับการออกแบบ Schema ฐานข้อมูลพร้อมกับตารางคอลัมน์ประเภทข้อมูลและความสัมพันธ์ทั้งหมด วันนี้ฉันทำด้วยปากกาและกระดาษเป็นส่วนใหญ่ แต่ฉันอยากจะทำมันในเครื่องมือออกแบบที่ดี มีเครื่องมือออกแบบฐานข้อมูลที่ดี (และฟรี) หรือไม่?

3
เป็นการปฏิบัติทั่วไปหรือไม่ที่จะผสมตาราง InnoDB และ MyISAM บนเซิร์ฟเวอร์เดียวกัน
ฉันมีฐานข้อมูลเดียวประมาณ 4.5GB ที่ทำงานบนเซิร์ฟเวอร์ที่มี 8GB RAM ตารางส่วนใหญ่คือ MyIsam (ประมาณ 4.3GB) แต่ในไม่ช้าฉันจะแปลงบางส่วนเป็น InnoDB (มันจะเป็นกระบวนการที่ช้าโดยเน้นไปที่ตารางที่เน้นการเขียนมากที่สุดในตอนแรก) มีอะไรผิดปกติในการใช้งานเซิร์ฟเวอร์เฉพาะซึ่งมีเอ็นจินการจัดเก็บทั้งสองประเภทอยู่หรือไม่?

2
แนวทางปฏิบัติที่ดีที่สุดสำหรับการเรียกใช้ SQL Server ในเครื่องเสมือนคืออะไร
แนวทางปฏิบัติที่ดีที่สุดสำหรับการเรียกใช้ SQL Server ในเครื่องเสมือนคืออะไร กิจกรรมการทำธุรกรรมออนไลน์ของฉันต่ำมาก แต่มีการประมวลผลข้อมูลจำนวนมากเพื่อวัตถุประสงค์ในการให้ข้อมูลการรายงานไปยังเว็บไซต์หลายแห่ง
21 sql-server 

5
การใช้ชื่อแทนตารางเป็นแนวทางปฏิบัติที่ไม่ดี
ฉันจำได้ว่าเรียนรู้ที่จะทำสิ่งนี้ในหลักสูตร DBMS สำหรับนักเรียนปริญญาโทสาขาบริการข้อมูล ในการช่วยตัวเองให้พิมพ์คุณสามารถพิมพ์: SELECT t1.id, t2.stuff FROM someTable t1 INNER JOIN otherTable t2 ON t1.id=t2.id ; แต่ ... ทำไมจึงเป็นที่ยอมรับในขั้นตอนการจัดเก็บและเช่นนี้? ดูเหมือนว่าทั้งหมดจะเป็นอันตรายต่อความสามารถในการอ่านของคำสั่งในขณะที่ประหยัดเวลาน้อยมาก มีเหตุผลการทำงานหรือเหตุผลในการทำเช่นนี้? ดูเหมือนว่าจะเพิ่มความกำกวมมากกว่าลบออก; เหตุผลที่ยอมรับได้เพียงอย่างเดียวที่ฉันเห็นสำหรับการใช้รูปแบบนี้คือถ้าคุณเพิ่มนามแฝงที่มีความหมายเชิงความหมาย - ตัวอย่างเช่นFROM someTable idsTable- เมื่อชื่อตารางไม่อธิบายเพียงพอ การใช้ชื่อแทนตารางเป็นวิธีปฏิบัติที่ไม่ดีหรือเป็นเพียงการใช้ระบบที่เป็นประโยชน์ในทางที่ผิด

4
“ ดัชนี” หมายถึงอะไรใน RDBMS [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันใช้ดัชนีอย่างที่ผู้พัฒนาส่วนใหญ่ทำ (ส่วนใหญ่อยู่บน ... ดี! ดัชนี) แต่ฉันแน่ใจว่ามีวิธีที่ละเอียดอ่อนมากมายในการปรับฐานข้อมูลโดยใช้ดัชนี ฉันไม่แน่ใจว่าเฉพาะเจาะจงกับการใช้งาน DBMS หรือไม่ คำถามของฉันคืออะไรเป็นตัวอย่างที่ดีของวิธีการใช้ดัชนี (ยกเว้นกรณีพื้นฐานที่ชัดเจน) และ DBMS เพิ่มประสิทธิภาพฐานข้อมูลอย่างไรเมื่อคุณระบุดัชนีในตาราง
21 index  rdbms 

4
ทำไม DBMS บางอันไม่อนุญาตให้มีการย้อนกลับสำหรับคำสั่ง DDL
เมื่อเร็ว ๆ นี้ฉันพบว่า MySQL ไม่สนับสนุนการย้อนกลับของ DDL เช่น "แก้ไขตาราง" ... เคยชินกับ PostgreSQL ที่ทำให้ฉันแปลก แต่เพื่อนของฉันบอกฉันว่าแม้แต่ Oracle ก็ไม่ยอม .. มีเหตุผลทางเทคนิคหรือไม่ที่ไม่สนับสนุน มันเป็นเพียงคุณสมบัติ "ไม่น่าสนใจ" สำหรับพวกเขา? แก้ไข: เพิ่งพบการเปรียบเทียบนี้ ดูเหมือนว่ามี DBMSes หลายอย่างที่ทำสนับสนุน DDL การทำธุรกรรม

13
มูลค่าการรับรอง [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา คำถาม คุณมีใบรับรองอะไร การรับรองของคุณ (หรือขาด) ได้ทำงานให้กับคุณหรือไม่? คุณตั้งใจจะยื่นขอการรับรองหรือไม่? คุณต่ออายุการรับรองหรือไม่? ถ้าเป็นเช่นนั้นนายจ้างของคุณสนับสนุนการต่ออายุอย่างแข็งขันหรือไม่?
21 career 

14
อินเตอร์เฟซ sqlplus ที่สะดวกสบาย?
ฉันพบว่าsqlplusอินเทอร์เฟซค่อนข้างล้าสมัย มันค่อนข้างดีที่จะมีคำสั่งหรือคำหลักบางคำในการกำจัด แต่ตัวอย่างเช่นไม่มีปุ่ม "ลูกศรขึ้น" สำหรับรายการประวัติก่อนหน้านี้ การเปลี่ยน / ขยายที่ดีมีไว้เพื่อsqlplusอะไร อาจเป็น GUI หรือดีกว่า (เพื่อให้มีประโยชน์ผ่าน SSH) อรรถประโยชน์บรรทัดคำสั่ง SQL * Plusเป็นเครื่องมือบรรทัดคำสั่งหลักในการทำงานกับฐานข้อมูล Oracle
21 oracle  tools  sqlplus 

1
โพรบแฮชคีย์และส่วนที่เหลือ
สมมติว่าเรามีคำถามเช่นนี้: select a.*,b.* from a join b on a.col1=b.col1 and len(a.col1)=10 สมมติว่าแบบสอบถามดังกล่าวจะใช้แฮร่วมและมีส่วนที่เหลือที่สำคัญการสอบสวนจะเป็นและที่เหลือจะเป็นcol1len(a.col1)=10 แต่ในขณะที่ดูตัวอย่างอื่นฉันสามารถเห็นทั้งโพรบและส่วนที่เหลือเป็นคอลัมน์เดียวกัน ด้านล่างนี้เป็นรายละเอียดเกี่ยวกับสิ่งที่ฉันพยายามจะพูด: ค้นหา: select * from T1 join T2 on T1.a = T2.a แผนการดำเนินการพร้อมโพรบและไฮไลต์ที่เหลือ: ข้อมูลการทดสอบ: create table T1 (a int, b int, x char(200)) create table T2 (a int, b int, x char(200)) set nocount on declare @i …

2
ฉันสามารถเลือกข้อมูลที่ถูกแทรกในการทำธุรกรรมที่ไม่มีข้อผูกมัดเดียวกันได้หรือไม่?
อาจเป็นคำถามเริ่มต้นที่โง่ แต่ฉันไม่สามารถหาคำตอบได้ทุกที่ ทุกที่ที่ฉันอ่านเกี่ยวกับสิ่งTransaction Isolationที่แก้ปัญหาการเปิดเผยข้อมูลภายในธุรกรรมที่เกิดขึ้นพร้อมกัน ความกังวลของฉันคือพฤติกรรมภายในธุรกรรมเดียว หากฉันเริ่มต้นธุรกรรมให้แทรกข้อมูลบางส่วนฉันจะสามารถเลือกได้ทันที - ยังคงอยู่ในการทำธุรกรรมเดียวกัน ถ้าใช่พฤติกรรมนี้สามารถเปลี่ยนแปลงได้ในลักษณะเดียวกันเช่นแยกธุรกรรมที่กล่าวถึงในกรณีของการทำธุรกรรมพร้อมกัน? จะเจาะจงฉันกำลังกำหนดเป้าหมาย PostgreSQL 9.4

1
SQLCMD.EXE อยู่ที่ไหนใน SQL Server 2014 Express
การใช้ "SQLCMD.EXE" เพื่อสำรองฐานข้อมูล SQL Server Express ของฉันเป็นเวลาหลายปีฉันเพิ่งค้นพบว่าหลังจากติดตั้งเวอร์ชัน 2014ฉันไม่พบ SQLCMD.EXE อีกต่อไป ในรุ่นก่อนหน้านี้มันอยู่ที่ C: \ Program Server \ 110 \ Tools \ Binn \ SQLCMD.EXE SQL Files \ Microsoft SQL แต่ในการติดตั้ง 2014 ของฉันไม่มี SQLCMD.EXE อยู่ Server \ 120 \ Tools \ Binn SQL Files \ Microsoft C: \ Program คำถามของฉัน: มีโอกาสที่จะนำ SQLCMD.EXE …

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