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

ฐานข้อมูลเป็นการรวบรวมข้อมูลที่จัดระเบียบ มันคือชุดของ schema ตารางแบบสอบถามแบบสอบถามมุมมองและวัตถุอื่น ๆ โดยทั่วไปข้อมูลจะถูกจัดเรียงตามลักษณะของความเป็นจริงในแบบที่สนับสนุนกระบวนการที่ต้องการข้อมูล ใช้แท็กนี้หากคุณมีคำถามเกี่ยวกับการออกแบบฐานข้อมูล หากเป็นระบบการจัดการฐานข้อมูลเฉพาะ (เช่น MySQL) โปรดใช้แท็กนั้นแทน


18
เหตุใดจึงไม่แนะนำให้มีฐานข้อมูลและเว็บเซิร์ฟเวอร์ในเครื่องเดียวกัน
จากการฟังบทสัมภาษณ์ของ Scott Hanselman กับทีม Stack Overflow ( ตอนที่ 1และ2 ) เขายืนกรานว่าเซิร์ฟเวอร์ SQL และเซิร์ฟเวอร์แอปพลิเคชันควรอยู่ในเครื่องแยกกัน นี่เป็นเพียงเพื่อให้แน่ใจว่าหากเซิร์ฟเวอร์หนึ่งถูกบุกรุกระบบทั้งสองจะไม่สามารถเข้าถึงได้หรือไม่? ความกังวลด้านความปลอดภัยมีมากกว่าความซับซ้อนของเซิร์ฟเวอร์สองเครื่อง (ค่าใช้จ่ายเพิ่มเติมการเชื่อมต่อเครือข่ายเฉพาะระหว่างทั้งสองเครื่องการบำรุงรักษาที่มากขึ้น ฯลฯ ) โดยเฉพาะอย่างยิ่งสำหรับแอปพลิเคชันขนาดเล็กที่ไม่มีหน่วยความจำใดใช้ CPU หรือหน่วยความจำมากเกินไป แม้จะมีเซิร์ฟเวอร์สองเครื่อง แต่เซิร์ฟเวอร์หนึ่งเครื่องถูกบุกรุก แต่ผู้โจมตีก็ยังสามารถสร้างความเสียหายร้ายแรงได้ไม่ว่าจะโดยการลบฐานข้อมูลหรือยุ่งกับรหัสแอปพลิเคชัน ทำไมเรื่องนี้ถึงเป็นเรื่องใหญ่ถ้าประสิทธิภาพไม่ใช่ปัญหา

15
เรียงลำดับใหม่ / รีเซ็ตคีย์หลักที่เพิ่มขึ้นอัตโนมัติ
ฉันมีตาราง MySQL ที่มีคีย์หลักแบบเพิ่มอัตโนมัติ ฉันลบบางแถวตรงกลางตาราง ตอนนี้ฉันมีบางอย่างเช่นนี้ในคอลัมน์ ID: 12, 13, 14, 19, 20 ฉันลบแถว 15, 16, 17 และ 18 ฉันต้องการกำหนดใหม่ / รีเซ็ต / เรียงลำดับคีย์หลักใหม่เพื่อให้ฉันมีความต่อเนื่องเช่นสร้าง 19 a 15, 20 a 16 และอื่น ๆ ฉันจะทำมันได้อย่างไร?
127 mysql  database 

20
การสลับค่าคอลัมน์ใน MySQL
ฉันมีตาราง MySQL ที่มีพิกัดชื่อคอลัมน์คือ X และ Y ตอนนี้ฉันต้องการสลับค่าคอลัมน์ในตารางนี้เพื่อให้ X กลายเป็น Y และ Y กลายเป็น X วิธีแก้ปัญหาที่ชัดเจนที่สุดคือการเปลี่ยนชื่อคอลัมน์ แต่ฉัน ไม่ต้องการเปลี่ยนแปลงโครงสร้างเนื่องจากฉันไม่จำเป็นต้องมีสิทธิ์ในการทำเช่นนั้น เป็นไปได้ไหมที่จะUPDATEในทางใดทางหนึ่ง? อัปเดตตาราง SET X = Y, Y = Xแน่นอนว่าจะไม่ทำตามที่ฉันต้องการ แก้ไข: โปรดทราบว่าการ จำกัด สิทธิ์ของฉันดังกล่าวข้างต้นป้องกันการใช้ ALTER TABLE หรือคำสั่งอื่น ๆ ที่เปลี่ยนแปลงโครงสร้างตาราง / ฐานข้อมูลได้อย่างมีประสิทธิภาพ การเปลี่ยนชื่อคอลัมน์หรือการเพิ่มคอลัมน์ใหม่ไม่ใช่ตัวเลือก
127 mysql  database 

29
เทคนิคการปรับแต่งประสิทธิภาพที่ชื่นชอบ [ปิด]
ตามที่กล่าวไว้ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา เมื่อคุณมีแบบสอบถามหรือขั้นตอนการจัดเก็บที่ต้องการการปรับแต่งประสิทธิภาพสิ่งแรกที่คุณลองทำคืออะไร?

16
คุณดีบักขั้นตอนการจัดเก็บ MySQL อย่างไร
ขั้นตอนปัจจุบันของฉันสำหรับการดีบักโพรซีเดอร์ที่จัดเก็บนั้นง่ายมาก ฉันสร้างตารางที่เรียกว่า "debug" ซึ่งฉันแทรกค่าตัวแปรจากโพรซีเดอร์ที่เก็บไว้ในขณะที่รัน สิ่งนี้ช่วยให้ฉันเห็นค่าของตัวแปรใด ๆ ณ จุดที่กำหนดในสคริปต์ แต่มีวิธีที่ดีกว่าในการดีบักขั้นตอนการจัดเก็บ MySQL หรือไม่

16
การออกแบบฐานข้อมูลสำหรับการแก้ไข?
เรามีข้อกำหนดในโครงการที่จะจัดเก็บการแก้ไขทั้งหมด (ประวัติการเปลี่ยนแปลง) สำหรับเอนทิตีในฐานข้อมูล ขณะนี้เรามี 2 ข้อเสนอที่ออกแบบไว้สำหรับสิ่งนี้: เช่นสำหรับนิติบุคคล "พนักงาน" การออกแบบ 1: -- Holds Employee Entity "Employees (EmployeeId, FirstName, LastName, DepartmentId, .., ..)" -- Holds the Employee Revisions in Xml. The RevisionXML will contain -- all data of that particular EmployeeId "EmployeeHistories (EmployeeId, DateModified, RevisionXML)" การออกแบบ 2: -- Holds Employee Entity "Employees …

10
จัดเก็บรูปภาพเป็นไฟล์หรือในฐานข้อมูลสำหรับเว็บแอป?
คำถามของฉันค่อนข้างทั่วไปและฉันรู้ว่าอาจไม่มีคำตอบ 100% ฉันกำลังสร้างโซลูชันเว็บ ASP .NET ซึ่งจะมีรูปภาพจำนวนมากและหวังว่าจะมีปริมาณการใช้งานที่เหมาะสม ฉันต้องการบรรลุประสิทธิภาพจริงๆ ฉันควรบันทึกรูปภาพในฐานข้อมูลหรือในระบบไฟล์? และไม่ว่าคำตอบนั้นฉันสนใจมากขึ้นว่าทำไมต้องเลือกวิธีที่เฉพาะเจาะจง ขอบคุณมาก Stefan ซ้ำซ้อน : การจัดเก็บภาพใน DB - ใช่หรือไม่? , วิธีจัดเก็บภาพในระบบไฟล์ของคุณ , การจัดเก็บภาพจำนวนน้อย: blob หรือ fs? และอาจเป็นอื่น ๆ ความคิดเห็น: ขอบคุณสำหรับคำตอบที่ดีมากมาย ฉันจะไปหาโซลูชันที่ใช้ไฟล์แม้ว่าฉันจะชอบแนวคิดที่จะมีโซลูชันที่ขับเคลื่อนด้วยฐานข้อมูล 100% ก็ตาม ดูเหมือนว่าวันนี้จะมีวิธีแก้ปัญหาที่ดีในการทำสิ่งที่ฉันต้องการด้วยฐานข้อมูล ฯลฯ แต่ฉันมีเหตุผลบางประการที่ไม่ทำ ฉันจะใช้โซลูชันที่โฮสต์ฉันมีพื้นที่เก็บข้อมูลจำนวนมาก (10gb) แต่มีเพียง 300MB สำหรับฐานข้อมูล จะมีค่าใช้จ่ายมากสำหรับพื้นที่จัดเก็บเพิ่มเติมในฐานข้อมูล ฉันไม่ใช่ผู้เชี่ยวชาญด้าน DB และไม่ได้ควบคุมการตั้งค่าของ DB ด้วย โซลูชันที่ใช้ฐานข้อมูลอาจต้องการการกำหนดค่าแบบกำหนดเองตามที่ดูเหมือน หากเราจะย้ายไปใช้งานไซต์บนเซิร์ฟเวอร์ของเราเองฉันอาจพิจารณาโซลูชันที่ใช้ฐานข้อมูล ขอบคุณสเตฟาน

22
มีระบบควบคุมเวอร์ชันสำหรับการเปลี่ยนแปลงโครงสร้างฐานข้อมูลหรือไม่?
ฉันมักจะพบปัญหาต่อไปนี้ ฉันทำงานกับการเปลี่ยนแปลงบางอย่างในโครงการที่ต้องการตารางหรือคอลัมน์ใหม่ในฐานข้อมูล ฉันทำการแก้ไขฐานข้อมูลและทำงานต่อ โดยปกติฉันจำไว้ว่าต้องจดบันทึกการเปลี่ยนแปลงเพื่อให้สามารถจำลองซ้ำบนระบบถ่ายทอดสดได้ อย่างไรก็ตามฉันจำไม่ได้เสมอไปว่าฉันเปลี่ยนแปลงอะไรไปบ้างและฉันก็จำไม่ได้ว่าจะเขียนมันลงไปเสมอ ดังนั้นฉันจึงผลักดันระบบถ่ายทอดสดและได้รับข้อผิดพลาดใหญ่ที่ชัดเจนว่าไม่มีNewColumnXฮึ แม้ว่านี่อาจไม่ใช่แนวทางปฏิบัติที่ดีที่สุดสำหรับสถานการณ์นี้ แต่มีระบบควบคุมเวอร์ชันสำหรับฐานข้อมูลหรือไม่? ฉันไม่สนใจเกี่ยวกับเทคโนโลยีฐานข้อมูลเฉพาะ ฉันแค่อยากรู้ว่ามีอยู่หรือเปล่า ถ้าเกิดว่าทำงานกับ MS SQL Server ได้ล่ะก็เยี่ยมเลย

13
เปลี่ยนจาก SQLite เป็น PostgreSQL ในโครงการ Rails ใหม่
ฉันมีแอพทางรถไฟที่ฐานข้อมูลอยู่ใน SQLite (การพัฒนาและการผลิต) เนื่องจากฉันกำลังย้ายไปที่ heroku ฉันต้องการแปลงฐานข้อมูลของฉันเป็น PostgreSQL อย่างไรก็ตามฉันได้ยินมาว่าการพัฒนาฐานข้อมูลในพื้นที่ไม่จำเป็นต้องเปลี่ยนจาก SQLite ดังนั้นฉันจึงไม่จำเป็นต้องเปลี่ยนสิ่งนั้นอย่างไรก็ตามฉันจะเปลี่ยนสภาพแวดล้อมการผลิตจาก SQLite เป็น PostgreSQL ได้อย่างไร มีใครเคยทำแบบนี้มาก่อนและสามารถช่วยได้หรือไม่? ปล. ฉันไม่แน่ใจว่ากระบวนการนี้เรียกว่าอะไรกันแน่ แต่ฉันเคยได้ยินเกี่ยวกับการย้ายฐานข้อมูลจาก SQLite ไปยัง PostgreSQL สิ่งที่ต้องทำคืออะไร?

8
mysql: ดูการเชื่อมต่อที่เปิดอยู่ทั้งหมดไปยังฐานข้อมูลที่ระบุหรือไม่
ด้วยสิทธิ์ระดับผู้ดูแลระบบ im mysql ฉันจะดูการเชื่อมต่อที่เปิดทั้งหมดไปยังฐานข้อมูลเฉพาะในเซิร์ฟเวอร์ของฉันได้อย่างไร
123 mysql  database 

6
แบบสอบถาม SQL เพื่อค้นหาเรกคอร์ดที่มี ID ไม่อยู่ในตารางอื่น
ฉันมีตารางสองตารางที่มีคีย์หลักที่ผูกไว้ในฐานข้อมูลและฉันต้องการค้นหาชุดที่ไม่ปะติดปะต่อระหว่างพวกเขา ตัวอย่างเช่น, Table1มีคอลัมน์ ( ID, Name) และข้อมูลตัวอย่าง:(1 ,John), (2, Peter), (3, Mary) Table2มีคอลัมน์ ( ID, Address) และข้อมูลตัวอย่าง:(1, address2), (2, address2) ดังนั้นวิธีที่ฉันจะสร้างแบบสอบถาม SQL เพื่อให้สามารถดึงข้อมูลแถวที่มี ID จากที่ไม่ได้อยู่ในtable1 table2กรณีนี้(3, Mary)ควรส่งคืนหรือไม่? ps ID เป็นคีย์หลักสำหรับสองตารางนั้น ขอบคุณล่วงหน้า.
123 sql  database  postgresql 

11
วิธีบันทึก enums ในฐานข้อมูล
วิธีที่ดีที่สุดในการบันทึก enums ลงในฐานข้อมูลคืออะไร? ฉันรู้ว่า Java จัดเตรียมname()และvalueOf()วิธีการในการแปลงค่า enum เป็นสตริงและย้อนกลับ แต่มีตัวเลือกอื่น ๆ (ยืดหยุ่น) ในการจัดเก็บค่าเหล่านี้หรือไม่? มีวิธีที่ชาญฉลาดในการทำให้ enum เป็นตัวเลขเฉพาะ ( ordinal()ไม่ปลอดภัยที่จะใช้) หรือไม่? ปรับปรุง: ขอบคุณสำหรับคำตอบที่ยอดเยี่ยมและรวดเร็ว! มันเป็นไปตามที่ฉันสงสัย อย่างไรก็ตามหมายเหตุถึง 'toolkit'; นั่นเป็นวิธีหนึ่ง ปัญหาคือฉันจะต้องเพิ่มเมธอดเดียวกันกับ Enum แต่ละประเภทที่ฉันสร้าง นั่นคือโค้ดที่ซ้ำกันจำนวนมากและในขณะนี้ Java ไม่รองรับโซลูชันใด ๆ สำหรับสิ่งนี้ (Java enum ไม่สามารถขยายคลาสอื่น ๆ ได้)
123 java  database  enums 

5
พังพอนและฐานข้อมูลจำนวนมากในโครงการ node.js เดียว
ฉันกำลังทำโปรเจ็กต์ Node.js ที่มีโปรเจ็กต์ย่อย โครงการย่อยหนึ่งโครงการจะมีฐานข้อมูล Mongodb หนึ่งฐานข้อมูลและ Mongoose จะใช้สำหรับการตัดและการสืบค้นฐานข้อมูล แต่ปัญหาคือ พังพอนไม่อนุญาตให้ใช้หลายฐานข้อมูลในอินสแตนซ์พังพอนเดียวเนื่องจากแบบจำลองสร้างจากการเชื่อมต่อเดียว ในการใช้อินสแตนซ์พังพอนหลาย Node.js require()ไม่อนุญาตให้อินสแตนซ์โมดูลหลายอย่างที่มันมีระบบแคชใน ฉันรู้ว่าปิดการใช้งานการแคชโมดูลใน Node.js แต่ฉันคิดว่ามันไม่ใช่ทางออกที่ดีเพราะมันจำเป็นสำหรับพังพอนเท่านั้น ฉันพยายามใช้createConnection()และopenSet()พังพอน แต่มันไม่ใช่วิธีแก้ปัญหา ผมได้พยายามที่จะคัดลอกลึกเช่นพังพอน ( http://blog.imaginea.com/deep-copy-in-javascript/ ) จะผ่านอินสแตนซ์พังพอนใหม่กับโครงการย่อย RangeError: Maximum call stack size exceededแต่ก็ขว้างปา ฉันต้องการทราบว่ามีวิธีใดบ้างที่จะใช้ฐานข้อมูลหลายฐานข้อมูลกับพังพอนหรือวิธีแก้ปัญหาใด ๆ สำหรับปัญหานี้ เพราะฉันคิดว่าพังพอนค่อนข้างง่ายและรวดเร็ว หรือโมดูลอื่น ๆ ตามคำแนะนำ?

10
MySQL ตรวจสอบว่ามีตารางอยู่หรือไม่โดยไม่มีข้อยกเว้น
วิธีใดคือวิธีที่ดีที่สุดในการตรวจสอบว่ามีตารางอยู่ใน MySQL หรือไม่ (ควรใช้ PDO ใน PHP) โดยไม่ต้องมีข้อยกเว้น ฉันไม่รู้สึกเหมือนกำลังแยกวิเคราะห์ผลลัพธ์ของ "SHOW TABLES LIKE" และอื่น ๆ ต้องมีแบบสอบถามบูลีนบ้างไหม?
123 php  mysql  pdo  database 

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