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

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

2
ทำไม MySQL อนุญาตให้มีการใช้นามแฝง SELECT?
ใน SQL เท่าที่ฉันรู้ลำดับการประมวลผลแบบสอบถามตรรกะซึ่งเป็นลำดับการตีความแนวคิดเริ่มต้นด้วย FROM ด้วยวิธีดังต่อไปนี้: จาก WHERE จัดกลุ่มตาม การมี เลือก สั่งโดย การติดตามรายการนี้เป็นเรื่องง่ายที่จะดูว่าทำไมคุณไม่สามารถเลือกชื่อแทนในส่วนคำสั่ง WHERE เนื่องจากยังไม่ได้สร้างชื่อแทน T-SQL (SQL Server) ทำตามสิ่งนี้อย่างเคร่งครัดและคุณไม่สามารถใช้นามแฝง SELECT ได้จนกว่าคุณจะผ่าน SELECT แต่ใน MySQL มันเป็นไปได้ที่จะใช้นามแฝง SELECT ในส่วนคำสั่ง HAVING แม้ว่ามันควรจะดำเนินการก่อน สิ่งนี้จะเป็นไปได้อย่างไร เพื่อให้ตัวอย่าง: SELECT YEAR(orderdate), COUNT(*) as Amount FROM Sales.Orders GROUP BY YEAR(orderdate) HAVING Amount>1; คำสั่งไม่ถูกต้องใน T-SQL (เนื่องจาก HAVING อ้างถึงนามแฝง SELECT Amount) ... …

2
สิ่งที่ max_allowed_packet มีขนาดใหญ่พอและทำไมฉันต้องเปลี่ยนมัน?
ฉันมี MySQL (5.5) ในการตั้งค่า master-slave และสร้างเซิร์ฟเวอร์ทาสอื่น ฉันหยุดทาสต้นฉบับทิ้งข้อมูลคัดลอกและนำเข้าอีกครั้งและทำงานได้ดี ฉันสังเกตเห็น master_log pos ของสลาฟดั้งเดิมและใช้คำสั่งเหล่านี้เพื่อตั้งค่าสลาฟใหม่ CHANGE MASTER TO MASTER_HOST='<ipaddress>', MASTER_USER='<username>', MASTER_PASSWORD='<password>', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000851', MASTER_LOG_POS=15824150, MASTER_CONNECT_RETRY=10; เมื่อฉันเริ่มทาสใหม่ที่ฉันได้รับ Last_IO_Error: มีข้อผิดพลาดร้ายแรง 1236 จากต้นแบบเมื่ออ่านข้อมูลจากบันทึกไบนารี: 'รายการบันทึกเหตุการณ์เกิน max_allowed_packet; เพิ่ม max_allowed_packet ในต้นแบบ ' อย่างไรก็ตามเมื่อฉันเริ่มต้นทาสดั้งเดิมมันก็ไม่เป็นไรและตอนนี้ก็กำลังซิงค์กันอยู่ ดังนั้นคำถาม: ค่าปัจจุบันคือ 16M ฉันจะรู้ได้อย่างไรว่าใหญ่แค่ไหน (ฉันค่อนข้างจะหลีกเลี่ยงการลองผิดลองถูกกับเซิร์ฟเวอร์ที่ใช้งานจริง) ทำไมฉันต้องเพิ่มมูลค่าให้กับนายเมื่อทาสดั้งเดิมถูกจัดการได้ดีปัญหาอาจจะเป็นกับทาสใหม่ได้หรือไม่ ปรับปรุง ฉันเพิ่ม max_allowed_packet เป็น 1073741824 ตามที่ Rolando แนะนำไว้กับเจ้านายทาสเก่าและทาสใหม่และเริ่มต้นใหม่ ( SET GLOBAL …

8
เกิดข้อผิดพลาดขณะกู้คืนฐานข้อมูลจาก SQL dump
ฉันยังใหม่กับ MySQL และใช้งานบน Windows ฉันพยายามกู้คืนฐานข้อมูลจาก dumpfile ใน MySQL แต่ฉันได้รับข้อผิดพลาดดังต่อไปนี้: $ >mysql -u root -p -h localhost -D database -o < dump.sql ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if …

2
คีย์ที่ซ้ำกันไม่ทำอะไรเลย
ฉันกำลังแทรกลงในตารางต่อไปนี้โดยใช้ LuaSQL กับ PtokaX API CREATE TABLE `requests` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `ctg` VARCHAR(15) NOT NULL, `msg` VARCHAR(250) NOT NULL, `nick` VARCHAR(32) NOT NULL, `filled` ENUM('Y','N') NOT NULL DEFAULT 'N', `dated` DATETIME NOT NULL, `filldate` DATETIME NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `nick_msg` (`nick`, `msg`), …

3
วิธีค้นหาชื่อคอลัมน์เฉพาะในตารางทั้งหมดใน MySQL Workbench
ใน MySQL Workbench เป็นไปได้ไหมที่จะค้นหาชื่อคอลัมน์ในตารางทั้งหมด? (การเขียนสตริงเพื่อค้นหาในฟิลด์ที่มุมขวาบนไม่ได้ทำอะไรเลย) ขอขอบคุณ.

4
ตาราง Mysqldump ยกเว้นบางฟิลด์
มีวิธีการ mysqldump ตารางที่ไม่มีเขตข้อมูลหรือไม่ ผมขออธิบาย: ฉันมีฐานข้อมูล MySQL testsเรียกว่า ในtestsฉันมี 3 ตาราง: USER, และTOTO TATAผมแค่อยากจะ mysqldump ฟิลด์ของตารางบางUSERดังนั้นไม่รวมเขตข้อมูลบางอย่างเช่นmail, ip_loginฯลฯ ฉันจะทำสิ่งนี้ได้อย่างไร
14 mysql  mysqldump 

4
MySQL โหลดข้อมูล INFILE ช้า 80% หลังจากป้อนกิ๊กเล็กน้อยด้วยเครื่องมือ InnoDB
ฉันกำลังโหลดไฟล์ 100GB ผ่าน LOAD DATA INFILE ฉันประสบความสำเร็จกับ MyISAM ไม่กี่ชั่วโมงและทำ ฉันลองใช้ InnoDB ตอนนี้ โหลดเริ่มต้นอย่างรวดเร็วที่มากกว่า 10MB / วินาที (ดูการขยายไฟล์ตารางfile_per_tableเปิดอยู่) แต่หลังจากนั้นประมาณ 5GB ของข้อมูลมันจะช้าลงเป็นช่วง 2-4MB / วินาทีเพราะฉันได้มากกว่า 20GB มันก็ลดลงประมาณ 2MB / วินาที ขนาดบัฟเฟอร์พูล InnoDB คือ 8G และฉันได้ทำสิ่งต่อไปนี้ก่อนที่จะใช้คำสั่งโหลดข้อมูล INFILE: SET @@session.sql_log_bin=0; SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0; alter table item_load disable keys; //Run LOAD DATA …

6
แยกตารางใน MySQL การปฏิบัติที่ดี?
ฉันเริ่มทำงานกับโครงการที่มีอยู่และผู้พัฒนาคนก่อนหน้าได้แบ่งตารางออกเป็น 10 ตารางแยกกันด้วยสคีมาที่เหมือนกัน แต่มีข้อมูลต่างกัน ตารางมีลักษณะดังนี้: [tableName_0] [tableName_1] [tableName_2] [tableName_3] [tableName_4] [tableName_5] [tableName_6] [tableName_7] [tableName_8] [tableName_9] คีย์หลักคือidฟิลด์จำนวนเต็ม แอปพลิเคชันใช้อัลกอริทึมแฮช ( idmod 10) เพื่อให้ทราบว่าตารางใดที่จะเข้าถึงเมื่อทำการค้นหา ตัวอย่างid= 10 [tableName_0]จะส่งผลให้ เมื่อรวมกันแล้วตารางอาจมี 100,000 แถวและอัตราการเติบโตค่อนข้างต่ำ ดังนั้นคำถามของฉันคือว่านี่เป็นทางออกที่ทำงานได้หรือไม่แม้ว่ามันจะเป็นแนวปฏิบัติที่ดีในทุกสถานการณ์ ทฤษฎีของฉันคือการผลักดันให้พวกเขารวมกันเพราะมันจะทำให้สิ่งต่าง ๆ ง่ายขึ้นเท่าที่UNIONs ฯลฯ ไป ข้อเสียเปรียบหลักคือการเปลี่ยนรหัสแอปพลิเคชันทั้งหมดและไม่ว่าจะคุ้มค่าในระยะยาวหรือไม่

3
วิธีแปลง mysql เป็น postgresql [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Exchange Administrators Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังมองหาเครื่องมือการแปลงเพื่อแปลงฐานข้อมูล mysql ขนาดใหญ่เป็น postgresql ฉันต้องการเครื่องมือ / สคริปต์เพื่อเป็น: ฟรี ทำงานภายใต้ Linux ใช้งานง่ายและไม่บั๊ก คุณลองและยืนยันว่าใช้งานได้จริง เด่นกว่าไม่ได้เขียนด้วย Java หรือ Ruby ฉันได้ลองใช้เครื่องมือต่าง ๆ ที่ระบุไว้ที่นี่แต่ไม่มีใครทำงานให้ฉันได้ ขอบคุณล่วงหน้า.

2
วิธีที่ดีที่สุดในการสร้างการติดตั้งการจำลองแบบ MySQL Master-Slave และแก้ไขปัญหาคืออะไร
ฉันยังใหม่กับการจัดการฐานข้อมูล ฉันประสบปัญหามากมายในขณะตั้งค่าการจำลองแบบ master-slave ของ mysql ฉันยังประสบปัญหาการแก้ไขปัญหาการจำลองแบบ mysql ปกติ ใครช่วยได้เข้าใจว่าฉันควรจัดการกับสิ่งเหล่านี้อย่างไร

4
หนึ่งฐานข้อมูลขนาดใหญ่เทียบกับคนที่เล็กกว่าหลายคน
เรามีสถานการณ์คือเราสามารถ (A) ปรับใช้อินสแตนซ์ของแอปพลิเคชันในฐานข้อมูล MySQL หนึ่งรายการโดยใช้คำนำหน้าตารางหรือ (B) ใช้ฐานข้อมูล MySQL ที่แตกต่างกันสำหรับแต่ละอินสแตนซ์ของแอปพลิเคชันเช่น ตั้งค่า "A": central_database app1_table1 app1_table2 app1_tablen ... appn_table1 appn_table2 appn_tablen ผลลัพธ์ที่ได้คือฐานข้อมูลขนาดใหญ่ที่มีตารางจำนวนมาก ตั้งค่า "B": app1_db table1 table2 tablen ... appn_db table1 table2 tablen ผลลัพธ์ที่ได้คือฐานข้อมูลจำนวนมากที่มีบางตาราง ทุกสิ่งเท่าเทียมกัน (เช่นจำนวนข้อมูลจำนวนอินสแตนซ์ของแอป ฯลฯ ) ข้อดีและข้อเสียของการใช้วิธีการอย่างใดอย่างหนึ่งคืออะไร อะไรจะเป็นอันตรายต่อประสิทธิภาพของฐานข้อมูลและการบำรุงรักษา แอปพลิเคชั่นนี้ใช้ PHP 5 รันบน Apache 2.x และเราใช้ MySQL 5.x ขอบคุณมากสำหรับเวลาและความคิดของคุณ!

5
เซิร์ฟเวอร์ MySQL หายไปจากการขัดขวางการนำเข้าของทิ้งขนาดใหญ่
ฉันพยายามนำเข้า sql dump ขนาดใหญ่ (2GB) ไปยัง mysql ในเครื่องของฉันบน mac ฉันสามารถทำสิ่งนี้ได้ในอดีต (ฉันใช้ MAMP) แต่ตอนนี้ฉันได้รับ ERROR 2006 (HY000) ที่บรรทัด 7758: เซิร์ฟเวอร์ MySQL หายไปทุกครั้งที่ฉันพยายามนำเข้าดัมพ์ ฐานข้อมูลมีตาราง innodb ฉันพยายามคัดลอกไฟล์ my-innodb-heavy-4G.cnf ไปยัง my.cnf ของฉันเพื่อดูว่าการตั้งค่าเหล่านั้นจะช่วยได้หรือไม่ แต่โชคไม่ดี ความคิดใด ๆ เกี่ยวกับสิ่งที่จะปรับแต่ง? ฉันใช้ "Mac OS X เวอร์ชั่น 10.6 (x86, 64- บิต), DMG Archive" จากที่นี่: http://dev.mysql.com/downloads/mysql/
14 mysql  innodb  dump  mac-os-x 

3
MySQL table_cache และ Opened_tables
ฉันเคยเห็นคนใช้การเปรียบเทียบของ Open_tables และ Opened_tables เพื่อประเมินว่า table_cache มีขนาดเล็กเกินไปใน MySQL อย่างไรก็ตามฉันเชื่อว่า Opened_tables สะสมตลอดเวลาดังนั้นนี่จึงไม่ใช่การเปรียบเทียบที่ถูกต้อง ข้อแม้เพียงข้อเดียวที่บางที Opened_tables อาจชนกับการพลาดเท่านั้น - ถึงแม้ว่าถ้าตารางที่เปิดต่อวินาทียังคงมีขนาดเล็กก็อาจไม่เป็นปัญหาสำหรับมันที่จะค่อยๆเติบโต หากเปรียบเทียบ Open_tables กับ Opened_tables ไม่ถูกต้องมีวิธีอื่นในการรับข้อมูลที่วัดได้จากสิ่งนี้หรือไม่? นี่คือ MySQL 5.0 แต่ยินดีต้อนรับความแตกต่างระหว่างเวอร์ชันด้วย

1
วิธีโยกย้ายตารางหยดขนาดใหญ่จาก mysql ไปยัง postgresql
ตอนนี้ฉันกำลังย้ายฐานข้อมูล MySQL ไปยัง PostgreSQL เกือบทุกอย่างเป็นไปด้วยดี (ดีหลังจาก googling มากมายสำหรับ mysqldump params และอื่น ๆ ) ยกเว้นตารางเดียวที่ฉันมี - จริง ๆ แล้วเป็นตารางที่สำคัญที่สุดในแอปของฉัน โครงสร้างตารางง่ายมาก: mysql> show create table samples; .. skipped ... CREATE TABLE `samples` ( `File_ID` int(11) NOT NULL, `File` longblob, PRIMARY KEY (`File_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=binary แต่มันมีขนาดใหญ่มาก (> 20 Gb) ฉันพยายามใช้ --hex-blob …

3
เครื่องมือเพิ่มประสิทธิภาพการสืบค้น MySQL อ่านสถิติดัชนีจากที่ใด
ฉันพยายามหาว่าตัวเพิ่มประสิทธิภาพ MySQL ได้รับรายการดัชนีที่มีอยู่ในตารางหรือไม่เมื่อประเมินค่าแบบสอบถาม (เตรียม) แบบสอบถาม

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