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

ระบบที่จัดการข้อมูลจำนวนมากในรูปแบบที่เป็นระเบียบ

6
ปรับฐานข้อมูลด้วยฮาร์ดไดรฟ์ SSD ราคาถูก
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Server Fault อพยพ 8 ปีที่ผ่านมา ฉันหวังว่าคุณหลายคนกำลังทำงานกับเว็บไซต์ที่ใช้ฐานข้อมูลที่มีปริมาณการใช้งานสูงและมีโอกาสที่ปัญหาการขยายขีดความสามารถหลักของคุณจะอยู่ในฐานข้อมูล ฉันสังเกตเห็นสิ่งที่สองเมื่อเร็ว ๆ นี้: ฐานข้อมูลขนาดใหญ่ส่วนใหญ่ต้องการทีม DBA เพื่อปรับมาตราส่วน พวกเขาต่อสู้อย่างต่อเนื่องกับข้อ จำกัด ของฮาร์ดไดรฟ์และจบลงด้วยโซลูชั่นที่มีราคาแพงมาก (SAN หรือ RAID ขนาดใหญ่, หน้าต่างการบำรุงรักษาบ่อยสำหรับการจัดเรียงข้อมูลและการแบ่งพาร์ทิชัน ฯลฯ ) ค่าใช้จ่ายประจำปีของการบำรุงรักษาฐานข้อมูลดังกล่าว ชันเกินไปสำหรับฉัน :) ในที่สุดเราก็มี บริษัท หลายแห่งเช่น Intel, Samsung, FusionIO และอื่น ๆ ที่เพิ่งเริ่มขายฮาร์ดไดรฟ์ SSD ที่รวดเร็ว แต่ราคาไม่แพงโดยใช้เทคโนโลยี SLC Flash ไดรฟ์เหล่านี้เร็วกว่าการอ่าน / เขียนแบบสุ่ม 100 เท่ากว่าฮาร์ดไดรฟ์หมุนที่ดีที่สุดในตลาด (มากถึง 50,000 …

1
ฉันจะตรวจสอบได้อย่างไรว่าไฟล์ SQLite db3 นั้นถูกต้อง / สอดคล้องกัน
ฉันมีไฟล์ db3 version3 sqlite ที่ฉันคัดลอกออกจากระบบการผลิตที่ทำงานอยู่ (ฉันรู้ว่า sysadmin bad sysadmin) ด้วยเหตุผลหลายประการ มีคำสั่ง sqlite ที่ฉันสามารถเรียกใช้ที่จะตรวจสอบว่าข้อมูลทั้งหมดสามารถอ่านได้จากไฟล์เหล่านี้ (ฉันไม่รังเกียจหากใช้เวลาสักครู่) ฉันกำลังพิจารณาแฮ็กอัพเพอร์เพิลซึ่งทิ้งข้อมูลทั้งหมดแล้วนำเข้ามันลงในไฟล์ใหม่ ฉันคิดว่า sqlite จะโยนข้อยกเว้นหากพบข้อมูลที่เสียหาย มีวิธีที่ดีกว่า? ฉัน CentOS 5.3 และ sqlite-3.3.6-2
24 linux  database  sql  sqlite 

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

1
เป็นไปได้หรือไม่ที่จะสลับเพียงหนึ่งบิตเพื่อให้ไฟล์ของฉันแสดงตัวอักษร“ Q” แทน“ S”
ในแอปพลิเคชันของเราเราใช้ Hibernate และ PostgreSQL เพื่อเก็บข้อมูล ในตารางฐานข้อมูลหนึ่งในเรามีคอลัมน์ discriminator ซึ่งระบุเช่น "TIPPSPIEL" มันเป็นสตริงคงที่และไม่สามารถจัดการได้โดยผู้ใช้ใด ๆ ทันใดนั้นเรามีหนึ่งรายการในตารางขนาดใหญ่นี้ที่เรามี "TIPPQPIEL" แทนที่จะเป็น "TIPPSPIEL" เราไม่มีเงื่อนงำว่าสิ่งนี้จะเกิดขึ้นได้อย่างไร เป็นไปได้หรือไม่ว่าฮาร์ดไดรฟ์ของเราสลับหนึ่งบิตดังนั้นตัวอักษร "S" ของเราจึงไม่ถูกเข้ารหัสเป็น "1010001" อีกต่อไป แต่กลายเป็น "Q" บนฮาร์ดดิสก์โดยเปลี่ยนไปหนึ่งบิตเช่นนี้: 1010011? ฉันไม่ใช่ผู้เชี่ยวชาญเรื่องฟิสิกส์ bit bit แต่ฉันเดาว่า OS หรือดิสก์มี checksums และสิ่งอื่น ๆ เพื่อให้แน่ใจว่าสิ่งนี้จะไม่เกิดขึ้น เป็นไปได้หรือไม่ที่จะสลับเพียงหนึ่งบิตเพื่อให้ไฟล์ของฉันแสดงตัวอักษร "Q" แทน "S" ปรับปรุง:เราทำการวิเคราะห์เพิ่มเติม ฐานข้อมูลทาสของเราได้รับ WAL Records จากต้นแบบ (คุณสมบัติ PostgreSQL) อะไรก็ตาม: เซิร์ฟเวอร์ทาสของเราควรจะซิงค์กัน แต่ทาสไม่ได้ซิงค์กันในแถวนี้ เราจะเห็นว่ามันเกิดขึ้นเมื่อสองสามวันก่อนโดยไม่มีการโต้ตอบใด …

4
MySQL สามารถใช้ประโยชน์จาก RAM ขนาด 64 GB ได้อย่างมีประสิทธิภาพหรือไม่
เราพบปัญหาในการสืบค้นตารางที่มีประมาณ 50 ล้านแถวและมีขนาดดัชนี 4 GB (ขนาดตารางประมาณ 6 GB) ส่งผลให้เซิร์ฟเวอร์ฐานข้อมูลเปลี่ยนหน่วยความจำและชะลอความเร็วลงอย่างมาก ฉันค่อนข้างแน่ใจว่าสิ่งนี้เกี่ยวข้องกับขนาดของเทมเพลตที่เกินขนาดและมันถูกสลับเป็นดิสก์ ถ้าฉันอัพเกรดเซิร์ฟเวอร์ฐานข้อมูลของฉันจาก 32 GB of RAM เป็น 64 GB RAM ฉันสงสัยว่าฐานข้อมูล MySQL จะสามารถใช้ประโยชน์จากหน่วยความจำเพิ่มเติมนี้ได้อย่างเต็มที่และไม่สลับหรือไม่ ฉันได้ลองใช้ตัวแปรสองสามอย่าง (เช่น KEY_BUFFER_SIZE ฯลฯ ... ) และดูเหมือนว่าพวกเขาสนับสนุนการตั้งค่ามากกว่า 64 GB อย่างไรก็ตามเอกสาร MySQL กล่าวว่า tmp_table_size สูงสุดที่ 4 GB ดังนั้นการอัพเกรดหน่วยความจำจะคุ้มหรือไม่ ปัญหา "การสืบค้นตารางขนาดใหญ่" จะได้รับประโยชน์จากสิ่งนี้หรือไม่และจะไม่ช่วยเนื่องจากขีด จำกัด 4 GB หรือไม่ ฉันรู้ว่าอาจมีโซลูชันอื่น ๆ เช่นการปรับโครงสร้างตารางเพื่อแบ่งพาร์ติชันด้วยวิธีที่แตกต่างกัน ฯลฯ …

6
จากเชลล์สคริปต์ฉันจะตรวจสอบว่ามีฐานข้อมูล MySQL อยู่ได้อย่างไร
mysqladmin -uroot create fooส่งคืนสถานะการออก 1 หากfooมีอยู่และ 0 เป็นอย่างอื่น แต่แน่นอนว่ามันจะสร้างฐานข้อมูลด้วยหากยังไม่มีอยู่ มีวิธีง่ายๆในการตรวจสอบว่ามีฐานข้อมูลอยู่หรือไม่?
22 mysql  database  bash  shell 

5
MySQL ควรจะติดตั้งเพียงอย่างเดียวหรือไม่
ฉันมักจะได้ยินคนทำงบเช่น "เครื่องเซิร์ฟเวอร์ MySQL ของเราล้มเหลว" ซึ่งทำให้ฉันรู้สึกว่าพวกเขาอุทิศเครื่องเดียวเป็นเซิร์ฟเวอร์ MySQL ของพวกเขา (ฉันเดาว่าพวกเขาเพิ่งติดตั้งระบบปฏิบัติการและมีเพียง MySQL เท่านั้น) ในฐานะนักพัฒนาไม่ใช่ผู้ดูแลระบบฉันคุ้นเคยกับ MySQL ที่ติดตั้งเป็นส่วนหนึ่งของ LAMP stack พร้อมกับเว็บเซิร์ฟเวอร์และ PHP บางคนสามารถอธิบายให้ฉัน: จุดประสงค์ของการติดตั้ง MySQL บนเซิร์ฟเวอร์แยกกันคืออะไร ฟังดูสิ้นเปลืองทรัพยากรเมื่อฉันสามารถเพิ่มทั้งกองหลอดและเซิร์ฟเวอร์เพิ่มเติมได้เช่นกัน หากฐานข้อมูลอยู่บนเครื่องที่แยกต่างหากแอพที่จำเป็นต้องใช้เชื่อมต่อกับมันจะทำอย่างไร?
20 mysql  database 

2
สุดยอดการตั้งค่าแคชของ MySQL สำหรับเซิร์ฟเวอร์ MySQL เฉพาะ 8gb RAM โดยใช้เพียง InnoDB (ฐานข้อมูล 5gb)
ฉันเป็น noob ที่ค่อนข้างใหญ่เมื่อพูดถึงการตั้งค่า MySQL เพื่อประสิทธิภาพ และจริงๆแล้วฉันไม่ได้กังวลเกี่ยวกับการปรับจูนเพื่อบีบประสิทธิภาพออกมาเล็กน้อยจาก MySQL แต่ฉันรู้ว่าสิ่งที่สำคัญที่สุดที่ต้องทำคือให้ผลลัพธ์ที่ดีที่สุดคือการตั้งค่าแคช / บัฟเฟอร์อย่างถูกต้อง ฉันพยายามทำให้สิ่งต่าง ๆ เรียบง่ายโดยใช้เพียง InnoDB เป็นเครื่องมือเก็บข้อมูล และฉันมีเซิร์ฟเวอร์เฉพาะสำหรับ MySQL มันมีแรม 8gb ฉันจะจัดสรรมันให้มีประสิทธิภาพได้อย่างไร ฉันต้องการให้พอดีกับฐานข้อมูลทั้งหมดของฉันลงในหน่วยความจำเพื่อประสิทธิภาพที่ดีที่สุด ฐานข้อมูลประมาณ 5gb เป็นไปได้ไหม ฉันควรจัดสรรหน่วยความจำให้กับคิวรีแคชเท่าใด พูลบัฟเฟอร์ InnoDB มีราคาเท่าใด ส่วนที่เหลือของคอมพิวเตอร์ (เช่นกระบวนการที่ไม่เกี่ยวข้องกับ MySQL) มีมากแค่ไหน? เป็นต้น เนื่องจากฉันไม่ได้ใช้ MyISAM ฉันไม่จำเป็นต้องใส่หน่วยความจำจำนวนมากในคีย์แคชให้ถูกต้องหรือไม่

7
ระบบไฟล์ที่ดีที่สุดสำหรับการแทรกประสิทธิภาพบน PostgreSQL คืออะไร?
ฉันอยากรู้ว่ามีใครทำการทดลองหรือเปรียบเทียบระหว่างระบบไฟล์กับประสิทธิภาพของฐานข้อมูลหรือไม่ บน Linux ฉันสงสัยว่าระบบไฟล์ที่ดีที่สุดสำหรับฐานข้อมูล postgres คืออะไร นอกจากนี้การตั้งค่าใด (inode และอื่น ๆ ) เหมาะสำหรับมัน? นี่เป็นสิ่งที่อาจแตกต่างกันอย่างมากตามข้อมูลในฐานข้อมูลหรือไม่ หากคุณกำลังมองหาคำถามเกี่ยวกับประสิทธิภาพของระบบไฟล์ / ฐานข้อมูลโพสต์นี้มีข้อมูลที่ดี อย่างไรก็ตามฉันต้องการรับคำแนะนำเกี่ยวกับประสิทธิภาพการแทรกที่ต่างจากการอ่านมากที่สุด ขอบคุณสำหรับคำตอบที่ยอดเยี่ยม!

5
การปรับเปลี่ยนคอลัมน์ของตาราง mysql ที่มีขนาดใหญ่มากซึ่งมีการหยุดทำงานเพียงเล็กน้อยหรือไม่มีเลย
ฉันจำเป็นต้องทำการเปลี่ยนแปลงตารางเป็นระยะใน mysql 5.1 ส่วนใหญ่เป็นการเพิ่มคอลัมน์ ง่ายมากด้วยคำสั่งแก้ไขตาราง แต่ตอนนี้ตารางของฉันมีมากถึง 40 ล้านแถวและพวกมันกำลังเติบโตอย่างรวดเร็ว ... ดังนั้นคำสั่งเปลี่ยนตารางเหล่านั้นใช้เวลาหลายชั่วโมง ในอีกสองสามเดือนพวกเขาจะใช้เวลาหลายวันที่ฉันคาดเดา เนื่องจากฉันใช้ amazon RDS ฉันไม่สามารถมีเซิร์ฟเวอร์ทาสให้เล่นแล้วเลื่อนระดับเป็นโทได้ ดังนั้นคำถามของฉันคือถ้ามีวิธีการทำเช่นนี้ด้วยการหยุดทำงานน้อยที่สุด? ฉันไม่รังเกียจการดำเนินการที่ใช้เวลาเป็นชั่วโมงหรือเป็นวันถ้าผู้ใช้ยังคงสามารถใช้ฐานข้อมูลได้ ... อย่างน้อยพวกเขาสามารถอ่านได้ในขณะที่กำลังเพิ่มคอลัมน์หรือไม่? จะเกิดอะไรขึ้นถ้าแอพของฉันพยายามเขียน แทรกหรืออัปเดต ถ้ามันล้มเหลวทันทีนั่นก็ไม่เลวจริง ๆ ถ้ามันแค่แฮงค์และทำให้เกิดปัญหากับเซิร์ฟเวอร์ db นั่นเป็นปัญหาใหญ่ .. นี่ต้องเป็นปัญหาเกี่ยวกับการปรับสเกลทั่วไปทุกคนต้องเพิ่มคอลัมน์ .. โดยทั่วไปแล้วฐานข้อมูลการผลิตจะทำอย่างไร Slave -> การย้ายข้อมูลหลักหรือไม่ อัปเดต - ฉันลืมที่จะพูดถึงฉันใช้เครื่องมือจัดเก็บข้อมูล Innodb

2
วิธีคำนวณ max_connections สำหรับ PostgreSQL และ default_pool_size สำหรับ pgbouncer
มีกฎหรือสิ่งที่ฉันสามารถใช้ในการคำนวณตัวเลขที่ดีสำหรับmax_connections, default_pool_sizeและmax_client_conn? ค่าเริ่มต้นเป็นเลขคี่ PostgreSQL มีค่าเริ่มต้นเป็น max_connections = 100 ในขณะที่ pgbouncer มีค่าเริ่มต้นเป็น default_pool_size = 20 ไม่ควร default_pool_size สูงกว่า max_connections เสมอหรือ มิฉะนั้นประเด็นคืออะไร? ฉันคิดว่า pgbouncer ตั้งใจให้เราจัดการการเชื่อมต่อได้มากขึ้นโดยลดค่าใช้จ่ายลง (โดยใช้การเชื่อมต่อของ PostgreSQL อีกครั้ง) ฉันสับสน ฉันกำลังมองหาคำแนะนำคล้ายกับที่พบในวิกิของ PostgreSQLเช่น "พารามิเตอร์นี้ควรเป็น ~ 50% ของหน่วยความจำของคุณ" ฉันจำได้ว่ามีสเปรดชีตสำหรับ MySQL ที่จะให้คุณคำนวณพารามิเตอร์ประเภทนี้ มันยอดเยี่ยมมากที่มีบางอย่างเช่น PostgreSQL / pgbouncer

2
วิธีการเชื่อมต่อกับเซิร์ฟเวอร์ mongodb ผ่านทาง ssh tunnel
มันง่ายสำหรับฉันที่จะเชื่อมต่อกับเซิร์ฟเวอร์ mysql ระยะไกลของฉันบน AWS โดยใช้ภาคต่อแต่ฉันพยายามทำสิ่งเดียวกันกับ MongoDB ฉันพยายามตั้งค่า ssh tunnel ผ่าน command line ดังนี้: ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com ฉันยังลองเปลี่ยนโฮสต์ด้วยที่อยู่ IP ความคิดคือการส่งต่อการเชื่อมต่อ MongoDB ทั้งหมดบนพอร์ต 9999 ไปยังหนึ่งในโฮสต์บนพอร์ต 27,101 .. อย่างไรก็ตามเมื่อฉันเรียกใช้คำสั่ง: mongo --host localhost --port 9999 การเชื่อมต่อล้มเหลวฉันได้รับสิ่งนี้แทน: MongoDB shell version: 2.6.0 connecting to: localhost:9999/test channel 2: open failed: connect …

5
ฉันควรติดตั้งฐานข้อมูล 32 บิตหรือฐานข้อมูล 64 บิตหรือไม่
(ฉันอ่านมากเกี่ยวกับ 64-bit เทียบกับระบบปฏิบัติการ / แอพ 32 บิต แต่คำถามนี้เกี่ยวกับฐานข้อมูลโดยเฉพาะ) ฉันพยายามที่จะเข้าใจข้อดีข้อเสียของฐานข้อมูลแบบ 32 บิตและ 64 บิตและภายใต้เงื่อนไขว่ามันเริ่มมีเหตุผลที่จะใช้การติดตั้งแบบ 64 บิต ระบบฐานข้อมูลที่ฉันสนใจคือ: SQL Server 2008, MySQL และ PostgreSQL 9.0 ฉันได้อ่านแล้วว่า PostgreSQL รุ่น pre-9.0 มาใน 32 บิตสำหรับ Windows เท่านั้นและบทความนี้เกี่ยวกับการเรียกใช้ PostgreSQL 32- บิตบน 64- บิต Windowsจะกำจัดความสับสนของฉัน แต่ฉันกำลังมองหาข้อมูลเพิ่มเติม เมื่อใดที่ฉันจะได้รับประโยชน์จากการใช้ฐานข้อมูล 64 บิต (เช่นขนาดฐานข้อมูล / พื้นที่ว่างในดิสก์, หน่วยความจำระบบที่มีอยู่, ประเภทของข้อมูลที่ทราบว่าได้รับประโยชน์จากฐานข้อมูลใด, โปรแกรมฐานข้อมูลที่ใช้อยู่ ฯลฯ )

4
ฉันควรสำรองและกู้คืนฐานข้อมูล `mysql 'หรือไม่
ในกระบวนการสร้างโซลูชันอัตโนมัติสำหรับการสำรองและกู้คืนเซิร์ฟเวอร์ MySQL ทั้งหมดฉันเจอmysqlฐานข้อมูลที่ดูเหมือนว่ามีบัญชีผู้ใช้สิทธิ์ metadata สิ่งนั้น ควรสำรองฐานข้อมูลนี้หรือไม่ การสำรองและพยายามกู้คืนมันจะทำลายทุกสิ่งหรือไม่ ฉันมีเวลาที่ Googling สำหรับ "mysql สำรองฐานข้อมูล mysql" ที่คุณสามารถจินตนาการ

3
ชนิด "varchar" และ "text" แตกต่างกันใน PostgreSQL อย่างไร
สิ่งที่ฉันรู้เกี่ยวกับความแตกต่างของพวกเขานั้นvarcharมี จำกัด และtextไม่ใช่ เอกสารไม่ได้พูดถึงเกี่ยวกับเรื่องนี้ นั่นคือความแตกต่างเท่านั้นจริง ๆ ? ไม่คำนึงถึงประสิทธิภาพหรืออื่น ๆ ?

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