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

MySQL ทุกรุ่น (ไม่ใช่ Microsoft SQL Server) โปรดเพิ่มแท็กเฉพาะเวอร์ชันเช่น mysql-5.7 หากเกี่ยวข้องกับคำถาม

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

1
mysqldump กับ INSERT …เมื่อทำซ้ำ
ฉันต้องการรวมข้อมูลจากฐานข้อมูลหนึ่งไปยังอีกฐานข้อมูลหนึ่ง ดังนั้นฉันจะสร้างการถ่ายโอนข้อมูลด้วยmysqldumpแล้วนำเข้าสู่ฐานข้อมูลอื่น (ที่มีโครงสร้างตารางเดียวกัน) ฉันไม่มีปัญหาใด ๆ (เช่นรายการซ้ำหรืออย่างอื่น) ในกรณีนี้ แต่ฉันจะทำการผสานเพื่อการทดสอบและฉันจะทำการผสานขั้นสุดท้ายในภายหลัง ดังนั้นฉันต้องการที่จะดำเนินการผสาน (ข้อมูลอาจมีการเปลี่ยนแปลง) ไม่กี่ครั้ง ขอให้สังเกตว่าแถวของฉันในตารางของฉันไม่เคยลบสามารถแทรกหรืออัปเดตได้เท่านั้น ฉันสามารถสร้าง mysqldump ด้วยตัวเลือก ON DUPLICATE ได้หรือไม่ หรือฉันอาจผสานการถ่ายโอนข้อมูลที่แทรกข้อมูลใหม่และอัปเดตข้อมูลที่แก้ไขแล้วได้หรือไม่ แน่นอนว่าฉันสามารถแทรกการON DUPLICATEถ่ายโอนข้อมูลได้ด้วยตนเอง แต่ฉันต้องการทำให้กระบวนการผสานเป็นไปโดยอัตโนมัติ


1
ความหมายของตัวกรองใน MySQL อธิบายคืออะไร?
ตามที่อธิบายไว้ในเอกสาร MySQL : คอลัมน์ที่กรองจะระบุเปอร์เซ็นต์ของแถวของตารางโดยประมาณที่จะถูกกรองตามเงื่อนไขของตาราง นั่นคือแถวแสดงจำนวนแถวที่ตรวจสอบโดยประมาณและแถวที่กรอง× / 100 แสดงจำนวนแถวที่จะเข้าร่วมกับตารางก่อนหน้า ก่อน MySQL 5.7.3 คอลัมน์นี้จะปรากฏขึ้นหากคุณใช้ EXPLAIN EXTENDED ในฐานะของ MySQL 5.7.3 เอาต์พุตที่ขยายเพิ่มจะถูกเปิดใช้งานโดยค่าเริ่มต้นและคำหลัก EXTENDED นั้นไม่จำเป็น ฉันยังไม่เข้าใจ ความหมายของ "ตัวกรอง" ที่นี่คืออะไร? เราจะได้ข้อมูลอะไรจากคอลัมน์นี้? ตัวอย่างเช่นเมื่อฉันเริ่มสอบถามบางแบบสอบถามจะแสดง 100 และบางคนแสดง 18 หรือต่ำกว่า 100 +-------------+-------+--------+---------+---------+------+----------+ | select_type | table | type | key | key_len | rows | filtered | +-------------+-------+--------+---------+---------+------+----------+ | PRIMARY …

3
เปลี่ยนคอลัมน์คีย์หลักจาก INT ถึง BIGINT ในการผลิต (MySQL 5.6.19a)
ตาราง INNODB บางส่วนในฐานข้อมูลการผลิตของเรากำลังจะถึงขีด จำกัด INT AUTO_INCREMENT ที่ 2147483647 และเราจำเป็นต้องเปลี่ยนเป็น BIGINT มิฉะนั้นการเขียนจะเริ่มล้มเหลว ตารางอยู่ในฐานข้อมูล MySQL 5.6.19a ที่ใช้งานจริงบน Amazon RDS เราจะแก้ไขเช่นนี้ได้อย่างไรโดยไม่กระทบกับการอ่านและการแทรกที่เกิดขึ้นตลอดเวลา? เปลี่ยนตารางMYTABLEเปลี่ยนid idBIGINT ไม่ใช่ NULL AUTO_INCREMENT นี่คือ DDL สำหรับตาราง: CREATE TABLE `MYTABLE` ( `id` int(11) NOT NULL AUTO_INCREMENT, `siteId` int(11) NOT NULL, `filter` varchar(10) NOT NULL DEFAULT 'ALL', `date` varchar(10) NOT NULL, `cards` …
20 mysql  innodb 

6
นับว่าคอลัมน์สองแถวขึ้นไปในแถวหนึ่งมีค่าเกินกว่าค่าใด [บาสเกตบอลคู่คู่สามเท่า]
ฉันเล่นเกมบาสเก็ตบอลที่อนุญาตให้ส่งออกสถิติเป็นไฟล์ฐานข้อมูลดังนั้นจึงสามารถคำนวณสถิติจากเกมที่ไม่ได้นำมาใช้ในเกมได้ จนถึงตอนนี้ฉันก็ไม่มีปัญหาในการคำนวณสถิติที่ฉันต้องการ แต่ตอนนี้ฉันพบปัญหา: การนับจำนวน double double และ / หรือ triple doubles ที่ผู้เล่นทำในช่วงฤดูกาลจากสถิติของเกม คำจำกัดความของ double double และ double double มีดังนี้: สองครั้งสองครั้ง: double-double ถูกกำหนดเป็นผลการทำงานที่ผู้เล่นสะสมตัวเลขสองหลักรวมในสองในห้าหมวดหมู่สถิติ - คะแนน, รีบาวน์, ช่วยเหลือ, ขโมยและช็อตที่ถูกบล็อก - ในเกม สามคู่: Triple-Double ถูกกำหนดให้เป็นการแสดงที่ผู้เล่นสะสมตัวเลขสองหลักรวมในสามในห้าหมวดหมู่สถิติ - คะแนน, รีบาวน์, ช่วยเหลือ, ขโมยและช็อตที่ถูกบล็อก - ในเกม Quadruple-double (เพิ่มเพื่อความกระจ่าง) quadruple-double ถูกกำหนดให้เป็นประสิทธิภาพที่ผู้เล่นสะสมตัวเลขสองหลักรวมในสี่ในห้าหมวดหมู่ทางสถิติ ได้แก่ คะแนนรีบาวน์การช่วยเหลือการขโมยและช็อตที่ถูกบล็อกในเกม ตาราง "PlayerGameStats" จะเก็บสถิติสำหรับแต่ละเกมที่ผู้เล่นเล่นและมีลักษณะดังนี้: CREATE TABLE …

4
ทำความเข้าใจกับสถิติพูลบัฟเฟอร์ INNODB
หลังจากอ่านหน้านี้ในเอกสาร mysqlฉันพยายามเข้าใจการใช้งาน InnoDB ปัจจุบันของเรา ขณะนี้เราจัดสรร RAM ขนาด 6GB สำหรับบัฟเฟอร์พูล ขนาดฐานข้อมูลของเราใกล้เคียงกัน นี่คือผลลัพธ์จากshow engine innodb status\G(เรากำลังเรียกใช้ v5.5) ---------------------- BUFFER POOL AND MEMORY ---------------------- Total memory allocated 6593445888; in additional pool allocated 0 Dictionary memory allocated 1758417 Buffer pool size 393215 Free buffers 853 Database pages 360515 Old database pages 133060 Modified db …

1
ความแตกต่างของประสิทธิภาพระหว่าง MySQL และ PostgreSQL สำหรับสคีมา / คิวรีเดียวกัน [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นมือใหม่ DBA และฉันมีประสบการณ์ใน Microsoft SQL Server แต่ฉันต้องการข้ามไปยัง FLOSS ฉันเริ่มต้น บริษัท และเราพัฒนาแอพ (PHP) ด้วยแบ็กเอนด์ Postgres และเราทำการทดสอบบางอย่างเปรียบเทียบกับ MySQL ด้วย เราสังเกตว่า MySQL นั้นเร็วกว่า PostgreSQL สองเท่า ฉันทำการทดสอบประสิทธิภาพที่เป็นรูปธรรม: คอลัมน์เดียวกันในตารางที่มีประเภทข้อมูลคอลัมน์เทียบเท่า จำนวนแถวเท่ากัน ดัชนีเดียวกันในทั้งสอง (รวมคีย์หลัก) โหลด CPU ไม่ได้ใช้งานและเครื่อง Postgres ดีกว่ามาก และแบบสอบถามเดียวกัน (ชัด) ผมทำอะไรผิดหรือเปล่า? PS: ฉันอ่าน "howtos" มากมายเกี่ยวกับการปรับแต่งประสิทธิภาพของเอ็นจิ้นฐานข้อมูล PS (2): เรากำลังใช้ InnoDB …

1
เปลี่ยนเส้นทางข้อมูลที่มีอยู่
ฉันต้องการเปลี่ยนdatadirพา ธ ในmy.iniไฟล์ datadirเส้นทางที่มีอยู่คือC:/ProgramData/MySQL/MySQL Server 5.1/Data/ C:ไดรฟ์ของฉันมีขนาด 30 GB และโฟลเดอร์ข้อมูล MySQL มีพื้นที่ 25 GB ดังนั้นผมจึงต้องการที่จะเปลี่ยนไปdatadirF:/naveen/data เป็นไปได้ไหม เครื่องของฉันทำงานWindows Server 2003

2
MySQL: แบบสอบถามแบบลำดับชั้นต้นไม้
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา SUB-TREE ภายในต้นไม้ใน MySQL ใน MYSQL ของDatabase COMPANYฉันฉันมีความTable: Employeeสัมพันธ์แบบวนซ้ำพนักงานสามารถเป็นหัวหน้าของพนักงานคนอื่นได้ A self relationship of kind (SuperVisor (1)- SuperVisee (∞) ). แบบสอบถามเพื่อสร้างตาราง: CREATE TABLE IF NOT EXISTS `Employee` ( `SSN` varchar(64) NOT NULL, `Name` varchar(64) DEFAULT NULL, `Designation` varchar(128) NOT NULL, `MSSN` …

2
สิ่งที่ต้องตั้ง innodb_buffer_pool และทำไม ..
ฉันมีInnoDBดัชนีและข้อมูล170GB ฉันต้องปรับขนาด innodb_buffer_pool เพื่อประสิทธิภาพที่ดีขึ้นขนาดตารางสูงสุดของตาราง InnoDB (ดัชนี + ข้อมูล) คือ 28GB ดังนั้นสิ่งที่ควรมีขนาดที่เหมาะสมของ innodb_buffer_pool UPDATE เรากำลังจะย้ายฐานข้อมูลท้องถิ่นของเราไปยัง ec2 ดังนั้นจะตั้งค่า RAM ตามสถิติปัจจุบันของ innodb นั่นคือเหตุผลที่ฉันต้องการขนาดของบัฟเฟอร์พูลเพื่อให้เรามี RAM ที่มีอยู่ เปิดใช้งานไฟล์ต่อตารางแล้ว ฉันใช้เครื่องลีนุกซ์
20 mysql  innodb 


4
"สร้างดัชนี" ใน MySQL เป็นการดำเนินการเชิงเส้นหรือไม่
สิ่งที่ฉันหมายถึงคือต่อไปนี้: หากสร้างดัชนีบนตารางที่มีnแถวต้องใช้tเวลา จะสร้างดัชนีในตารางเดียวกันกับ1000*nใช้เวลาประมาณ1000*tเวลา สิ่งที่ฉันพยายามทำให้สำเร็จคือการประเมินเวลาที่ใช้ในการสร้างดัชนีในฐานข้อมูลการผลิตโดยการสร้างดัชนีเดียวกันในฐานข้อมูลทดสอบขนาดเล็กมาก
20 mysql  index 

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