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

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

3
การออกแบบฐานข้อมูล: ตารางใหม่กับคอลัมน์ใหม่
(นี่แนะนำให้เป็น repost ที่นี่จาก StackOverflow) ขณะนี้มีตาราง .. และต้องเริ่มเพิ่มคอลัมน์ข้อมูลใหม่เข้าไป ไม่ใช่ทุกระเบียน (แม้จะก้าวไปข้างหน้าด้วยข้อมูลใหม่หลังจากเพิ่มคอลัมน์ข้อมูลใหม่) จะมีข้อมูล ดังนั้นฉันจึงสงสัยว่าสิ่งนี้จะเหมาะสมกว่าสำหรับตารางใหม่หรือไม่เนื่องจากเป็นส่วนขยายของแถวข้อมูลบางส่วนและไม่สามารถใช้ได้กับทุกแถว กล่าวอีกนัยหนึ่งเนื่องจากจะมีคอลัมน์ที่ไม่ได้ใช้จำนวนมากสำหรับองค์ประกอบข้อมูลใหม่เหล่านั้นดูเหมือนว่าจะเหมาะกว่าสำหรับตารางใหม่ใช่หรือไม่ ตารางแรกคือบันทึกการดูหน้าเว็บ (ปัจจุบันมีจำนวน 2 ล้านระเบียน) - รหัส - ที่อยู่ IP - ดูครั้ง - ประทับเวลาที่ _ สร้าง - วันที่ สำหรับที่อยู่ IP ทุกรายการจะมีการบันทึกต่อวันและมีการเพิ่มการเปิดดูหน้าเว็บต่อเนื่องในการดูครั้งต่อวัน ฟิลด์เพิ่มเติมสำหรับจุดติดตามต้นทาง (เช่นแหล่งที่มาของการวิเคราะห์ของ Google / สื่อ / แคมเปญ) ไม่ใช่ทุกครั้งที่มีข้อมูล ฉันจะสมมติว่าประมาณ 10% ของแถวจะมีข้อมูล (เนื่องจากโดยปกติแล้วจะมีการเชื่อมโยงกับการเข้าชมครั้งแรกเท่านั้น) การใช้งานหลักสำหรับข้อมูลจะเป็นคุณลักษณะที่ผู้คนมาจาก เรื่องนี้อาจจบลงด้วยการใช้บ่อย ๆ (ซึ่งดูเหมือนว่าจะยืมตัวไปที่โต๊ะเดี่ยว) ขอบคุณความคิดเห็น - …

2
มัลติคอร์และประสิทธิภาพ MySQL
ความสำคัญของ RAM เป็นความจริงที่สร้างขึ้นมา แต่มีเนื้อหาน้อยมากเกี่ยวกับความสำคัญของคอร์และมัลติเธรดเมื่อพูดถึงการใช้งาน CPU โดย MySQL ฉันกำลังพูดถึงความแตกต่างของการใช้งาน MySQL บน 4cores vs 6cores เทียบกับ 8cores เป็นต้น เอนจินการเก็บข้อมูลที่ต่างกันใช้ CPU ต่างกันหรือไม่


4
กฎที่แข็งและเร็วสำหรับการรวมคอลัมน์ในดัชนี
มีกฎใด ๆ ที่ยากและรวดเร็วในการตัดสินใจว่าควรจะใส่คอลัมน์ใดและเรียงตามลำดับในรวมในดัชนีที่ไม่ทำคลัสเตอร์ ฉันเพิ่งอ่านบทความนี้https://stackoverflow.com/questions/1307990/why-use-the-include-clause-when-creating-an-index และฉันพบว่าสำหรับแบบสอบถามต่อไปนี้: SELECT EmployeeID, DepartmentID, LastName FROM Employee WHERE DepartmentID = 5 โปสเตอร์แนะนำให้สร้างดัชนีแบบนี้: CREATE NONCLUSTERED INDEX NC_EmpDep ON Employee(EmployeeID, DepartmentID) INCLUDE (Lastname) ที่นี่คำถามของฉันมาทำไมเราไม่สามารถสร้างดัชนีเช่นนี้ CREATE NONCLUSTERED INDEX NC_EmpDep ON Employee( EmployeeID, DepartmentID, LastName) หรือ CREATE NONCLUSTERED INDEX NC_EmpDep ON Employee( EmployeeID, LastName) INCLUDE (DepartmentID) และสิ่งใดที่ทำให้ผู้โพสต์ตัดสินใจที่จะเก็บคอลัมน์นามสกุลไว้ด้วย ทำไมไม่คอลัมน์อื่น ๆ และวิธีการตัดสินใจในลำดับที่เราควรเก็บคอลัมน์ที่มี?

6
ใน MySQL ลำดับของคอลัมน์ในส่วนคำสั่ง WHERE มีผลต่อประสิทธิภาพการค้นหาหรือไม่
ฉันมีปัญหาเรื่องประสิทธิภาพของการสืบค้นฐานข้อมูลที่มีชุดผลลัพธ์ที่เป็นไปได้จำนวนมาก แบบสอบถามในคำถามฉันมีสามANDในอนุประโยค คำสั่งของอนุประโยคมีความสำคัญหรือไม่? เช่นในถ้าฉันใส่ข้อ ASI_EVENT_TIME ก่อน (เนื่องจากจะลบผลลัพธ์ส่วนใหญ่ออกจากส่วนคำสั่งใด ๆ จะปรับปรุงเวลาทำงานของแบบสอบถามหรือไม่ ค้นหา: SELECT DISTINCT activity_seismo_info.* FROM `activity_seismo_info` WHERE activity_seismo_info.ASI_ACTIVITY_ID IS NOT NULL AND activity_seismo_info.ASI_SEISMO_ID IN (43,44,...,259) AND ( activity_seismo_info.ASI_EVENT_TIME>='2011-03-10 00:00:00' AND activity_seismo_info.ASI_EVENT_TIME<='2011-03-17 23:59:59' ) ORDER BY activity_seismo_info.ASI_EVENT_TIME DESC อธิบายคำค้นหา: +----+-------------+---------+-------+---------------------------+--------------+---------+------+-------+-----------------------------+ | id | select_type | table | type | possible_keys | key …

6
วิธีดำเนินการ SQL กับฐานข้อมูลทั้งหมดบนเซิร์ฟเวอร์
ฉันมี SQL มาตรฐานบางตัวที่ฉันรันกับหลายฐานข้อมูลบนเซิร์ฟเวอร์เดียวเพื่อช่วยฉันวินิจฉัยปัญหา: select so.name, so.type, MAX(case when sc.text like '%remote%' then '' ELSE 'N' END) AS Relevant, @@ServerName as Server, DB_Name() as DBName from sysobjects so with (nolock) join syscomments sc with (nolock) on so.id = sc.id where (sc.text like '%emote%') group by so.name, so.type order by so.type, so.name …
38 sql-server 

4
บนเซิร์ฟเวอร์ฐานข้อมูลเฉพาะหน่วยความจำที่ต้องสำรองสำหรับระบบปฏิบัติการเป็นเท่าใด
สมมติว่าคุณมีเซิร์ฟเวอร์เฉพาะสำหรับฟังก์ชั่นฐานข้อมูลอย่างชัดเจน - คุณควรสำรองหน่วยความจำสำหรับระบบปฏิบัติการเป็นจำนวนเท่าใด ฉันรู้ว่าสิ่งนี้อาจแตกต่างกันไปขึ้นอยู่กับระบบปฏิบัติการเฉพาะซอฟต์แวร์ฐานข้อมูลเฉพาะและอื่น ๆ แต่เนื่องจากหน่วยความจำมีความสำคัญต่อประสิทธิภาพของฐานข้อมูลฉันต้องการให้ฐานข้อมูลมีระดับหน่วยความจำสูงสุดที่สมเหตุสมผลโดยไม่ต้องใช้โฮสต์ OS ดังนั้น กฎง่ายๆที่ควรเริ่มต้นคืออะไร เราควรตรวจสอบตัวชี้วัดผลการปฏิบัติงานหรือตัวบ่งชี้เพื่อตรวจสอบว่าเราไปไกลเกินไปแล้วและโฮสต์ระบบปฏิบัติการกำลังหิวโหยโดยฐานข้อมูลอย่างใด?

8
บรรทัดคำสั่งการนำเข้า / ส่งออกของฐานข้อมูล MySQL ใน Windows
จะส่งออก / นำเข้าฐานข้อมูลใน MySQL ผ่านทางบรรทัดคำสั่งได้อย่างไร การกำหนดค่าระบบ MySQL ติดตั้งเซิร์ฟเวอร์WampServer ระบบปฏิบัติการ: Windows คำแนะนำสำหรับโฮสต์ในพื้นที่ของฉันไม่ใช่โฮสติ้งแบบสด ...

6
ฉันสามารถดูแบบสอบถามประวัติศาสตร์ทำงานบนฐานข้อมูล SQL Server ได้หรือไม่
มีคนกำลังเรียกใช้แบบสอบถามบนฐานข้อมูล SQL Server ของเราจากระยะไกลและระบบของพวกเขาล้มเหลว พวกเขาไม่มีการสำรองข้อมูลของแบบสอบถามนั้นและต้องการดูสิ่งที่ถูกเรียกใช้บนเซิร์ฟเวอร์ เป็นไปได้หรือไม่ที่จะค้นหาข้อความค้นหานี้ในบันทึกหรือในบางแห่ง?
38 sql-server  logs 

1
นานแค่ไหน“ นานเกินไป” สำหรับการเชื่อมต่อ MySQL หลับ?
ฉันเข้าสู่เซิร์ฟเวอร์ของฉันเพื่อตรวจสอบสถานะของฐานข้อมูลและสังเกตSHOW PROCESSLIST;ว่ามีการเชื่อมต่อจำนวนมากกำลังหลับอยู่ซึ่งเก่ามาก ระยะเวลาใดที่ควร จำกัด เวลาการเชื่อมต่อก่อนที่การเชื่อมต่อจะถูกทำลาย ฉันจะกำหนดเวลาใน MySQL 5.0.51a-3ubuntu5.4 ได้อย่างไร บันทึก: ฉันใช้ PHP 5.2.x และเฟรมเวิร์ก symfony 1.2
38 mysql  mysql-5 

2
วิธีทำให้ sqlcmd ส่งคืน ERRORLEVEL นอกเหนือจาก 0 เมื่อสคริปต์. sql ล้มเหลว
ฉันกำลังเรียกใช้ sqlcmd จากแบตช์ไฟล์และฉันสงสัยว่าจะทำให้ ERRORLEVEL คืนเป็นค่าอื่นนอกเหนือจาก 0 ได้อย่างไรเมื่อมีบางอย่างผิดพลาดในการสำรองข้อมูล

6
วิธีสร้างตารางชั่วคราวโดยใช้ VALUES ใน PostgreSQL
ฉันกำลังเรียนรู้ PostgreSQL และพยายามหาวิธีสร้างตารางชั่วคราวหรือWITHประกาศที่สามารถใช้แทนตารางปกติเพื่อจุดประสงค์ในการดีบั๊ก ฉันดูเอกสารสำหรับCREATE TABLEและมันบอกว่าVALUESสามารถใช้เป็นแบบสอบถาม แต่ไม่ได้ยกตัวอย่าง เอกสารสำหรับVALUESส่วนเชื่อมโยงนั้นไม่มีตัวอย่างหรือไม่? ดังนั้นฉันจึงเขียนแบบทดสอบง่ายๆดังนี้: DROP TABLE IF EXISTS lookup; CREATE TEMP TABLE lookup ( key integer, val numeric ) AS VALUES (0,-99999), (1,100); แต่ PostgreSQL (9.3) กำลังบ่นเกี่ยวกับ ข้อผิดพลาดทางไวยากรณ์ที่หรือใกล้ "AS" คำถามของฉันคือ: ฉันจะแก้ไขข้อความข้างต้นได้อย่างไร ฉันจะสามารถปรับตัวเข้ากับมันเพื่อนำมาใช้ในWITH block? ขอบคุณล่วงหน้า.

4
ALLOW_SNAPSHOT_ISOLATION และ READ_COMMITTED_SNAPSHOT
ฟอรัมและตัวอย่างแบบออนไลน์ส่วนใหญ่มักแนะนำให้มีทั้งสองอย่างALLOW_SNAPSHOT_ISOLATIONและREAD_COMMITTED_SNAPSHOTตั้งค่าเป็นเปิดเมื่อใดก็ตามที่มีคนถามสแนปชอตการกำหนดเวอร์ชันของแถวหรือคำถามที่คล้ายกัน ฉันเดาคำว่า SNAPSHOT ในการตั้งค่าทั้งสองทำให้สับสนเล็กน้อย ผมคิดว่าในการสั่งซื้อสำหรับโปรแกรมฐานข้อมูลที่จะใช้เวอร์ชันแถวแทนการล็อคสำหรับการทำงานเริ่มต้น READ_COMMITTED ฐานข้อมูลREAD_COMMITTED_SNAPSHOTเป็นชุดที่ ON โดยไม่คำนึงถึงสิ่งที่ALLOW_SNAPSHOT_ISOLATIONการตั้งค่า ALLOW_SNAPSHOT_ISOLATIONตั้งค่าจะถูกตั้งไว้ที่ ON เท่านั้นที่จะช่วยให้ภาพรวมการแยกเมื่อเริ่มต้นการทำธุรกรรม (เช่น SET แยกธุรกรรมระดับภาพรวม) โดยไม่คำนึงถึงของREAD_COMMITTED_SNAPSHOTการตั้งค่า เหตุผลเดียวที่มีการตั้งค่าทั้งสองนี้เป็น ON คือเมื่อต้องมีการอ่านการกำหนดเวอร์ชันแถวที่ยอมรับและ การแยกสแน็ปช็อต คำถามของฉันคือความเข้าใจของฉันไม่ถูกต้องในบางวิธี? และการตั้งค่าทั้งสองนี้จะต้องตั้งค่าเป็นเปิดพร้อมกันเสมอ (โดยเฉพาะอย่างยิ่งสำหรับการอ่านการกำหนดเวอร์ชันแถวที่ยอมรับได้)?

3
เหตุใดแบบสอบถามนี้จึงใช้งานได้
ฉันมีสองตาราง table_a (id, ชื่อ) และ table_b (id) สมมุติว่าบน Oracle 12c เหตุใดแบบสอบถามนี้จึงไม่ส่งคืนข้อยกเว้น select * from table_a where name in (select name from table_b); จากสิ่งที่ฉันเข้าใจ Oracle เห็นว่าเป็น select * from table_a where name = name; แต่สิ่งที่ฉันไม่ได้คือทำไม

2
ORDER BY FIELD () ใน MySQL ทำงานอย่างไรภายใน
ฉันเข้าใจว่าORDER BYประโยคทำงานอย่างไรและFIELD()ฟังก์ชั่นทำงานอย่างไร สิ่งที่ฉันต้องการเข้าใจคือการที่ทั้งคู่ทำงานร่วมกันเพื่อเรียงลำดับ มีการดึงแถวมาอย่างไรและเรียงลำดับอย่างไร +----+---------+ | id | name | +----+---------+ | 1 | stan | | 2 | kyle | | 3 | kenny | | 4 | cartman | +----+---------+ SELECT * FROM mytable WHERE id IN (3,2,1,4) ORDER BY FIELD(id,3,2,1,4) แบบสอบถามข้างต้นจะส่งผลให้ +----+---------+ | id | name | …
37 mysql  order-by  fields 

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