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

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

2
InnoDB เก็บข้อมูลธุรกรรมไว้ก่อนที่จะส่งมอบที่ไหน
ฉันได้ทำการทดสอบบางอย่างโดยใช้READ_COMMITTEDและREAD_UNCOMMITTEDที่บ้านโดยใช้เทคโนโลยี JDBC ฉันเห็นว่าREAD_UNCOMMITTEDจริง ๆ แล้วสามารถอ่านข้อมูลที่ไม่มีข้อผูกมัดเช่นข้อมูลจากธุรกรรมบางรายการที่ยังไม่ได้รับการยืนยัน คำถาม ข้อมูลที่ไม่ได้รับการจัดเก็บอยู่ที่ไหนเช่นการREAD_UNCOMMITTEDทำธุรกรรมสามารถอ่านข้อมูลที่ปราศจากข้อผูกมัดจากการทำธุรกรรมอื่นได้หรือไม่ เหตุใดจึงเป็นไปไม่ได้ที่การREAD_COMMITTEDทำธุรกรรมในการอ่านข้อมูลที่ไม่มีข้อผูกมัดนั่นคือการ "อ่านสกปรก" กลไกอะไรบังคับใช้ข้อ จำกัด นี้

5
ไม่สามารถสร้างไฟล์ /var/lib/mysql/user.lower-test
ฐานข้อมูล MySQL มีปัญหาฟรีสองสามเดือน วันนี้เมื่อฉันตรวจสอบแพ็กเกจที่สามารถอัพเกรดได้โดยใช้ Synaptic Package Manager มันมาพร้อมกับส่วนประกอบ MySQL ต่างๆ (-common, -client, -server, etc) ฉันจึงตัดสินใจอัพเกรด (ฉันลืมที่จะทราบรุ่นที่ติดตั้ง แต่คิดว่ามันเป็น 5.6.21) เป็น 5.6.25-1-ubuntu2.0 หลังจากนั้นเมื่อฉันไปสอบถามฐานข้อมูลที่ฉันได้รับข้อความ: - Error occured: Can't connect to MySQL server on '127.0.0.1' (111) ฉันพบว่าเซิร์ฟเวอร์ไม่ทำงาน ในล็อกไฟล์ฉันชอบข้อความ: - Can't create file /var/lib/mysql/user.lower-test ฉันใช้เวลาหนึ่งชั่วโมงหรือมากกว่านั้นในการค้นหาข้อมูลและถึงแม้ว่าจะมีการรายงานปัญหาก่อนหน้านี้ แต่ฉันไม่ได้เห็นมันในบริบทของปัญหา 'โพสต์อัปเดต' ดังนั้นจึงไม่แน่ใจในขั้นตอนต่อไปของฉัน
12 mysql  linux 

2
การอัปเดตหลายแถวด้วยค่าที่แตกต่างกันในการสืบค้นเดียว
ฉันพยายามที่จะเข้าใจวิธีการปรับปรุงหลายแถวด้วยค่าที่แตกต่างกันและฉันไม่ได้รับมัน ทางออกมีอยู่ทุกที่ แต่สำหรับฉันมันดูยากที่จะเข้าใจ ตัวอย่างเช่นการอัพเดตสองรายการใน 1 ข้อความค้นหา: UPDATE mytable SET fruit='orange', drink='water', food='pizza' WHERE id=1; UPDATE mytable SET fruit='strawberry', drink='wine', food='fish' WHERE id=2; ฉันไม่เข้าใจว่ากรณีนี้เมื่อใด ... จากนั้น ... END ใช้งานได้และวิธีใช้งาน สงสัยว่ามีคนช่วยฉันได้ไหม
12 mysql  update 

2
ตั้งค่า character_set_client เป็น utf8mb4
ฉันพยายามแปลงฐานข้อมูลของฉันให้เป็นutf8mb4ไปตามคู่มือนี้ ฉันได้ตั้ง: [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] init-connect='SET NAMES utf8mb4' collation_server=utf8mb4_unicode_ci character_set_server=utf8mb4 skip-character-set-client-handshake แต่คุณค่าของcharacter_set_clientและcharacter_set_resultsยังคงไม่เปลี่ยนเป็น utf8mb4 mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; +--------------------------+--------------------+ | Variable_name | Value | +--------------------------+--------------------+ | character_set_client | utf8 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem …
12 mysql  collation  utf-8 

5
เหตุใดไฟล์บันทึกข้อมูล bin ของ MySQL ยังคงมีอยู่หลังจากการล้างข้อมูลหรือลบทิ้ง?
ฉันใช้ PURGE BINARY LOGS เช่นเดียวกับ FLUSH LOGS แต่ไดเรกทอรี mysql ยังคงมีไฟล์เหล่านี้: mysql-bin.000025 mysql-bin.000024 mysql-bin.000023 mysql-bin.000022 mysql-bin.000021 mysql-bin.000020 mysql-bin.000019 mysql-bin.index มีเหตุผลทำไมการใช้คำสั่งไม่ทำงาน? ไฟล์เหล่านี้ใช้พื้นที่มาก ฉันต้องการกำจัดพวกเขาอย่างปลอดภัย

3
การจำลองแบบ MySQL - ทาสจะล้าหลังอาจารย์อย่างต่อเนื่อง
ฉันใช้ MySQL-5.1.50 ด้วยการตั้งค่าการจำลองแบบ Master-slave ส่วนใหญ่เวลาที่ทาสล้าหลังนาย เมื่อฉันเรียกใช้show processlist;ไม่มีการสืบค้นที่ใช้เวลานาน ฉันเปิดใช้งานslow_logเช่นกัน อย่างไรก็ตามไม่พบการสืบค้นที่ทำงานช้า Slave จะส่งการแจ้งเตือนอย่างต่อเนื่องว่าการเรพลิเคทเป็นวินาทีหลังต้นแบบ บางครั้งเวลาล่าช้าจะเพิ่มขึ้น ฉันจะวินิจฉัยสาเหตุของปัญหาได้อย่างไร ฉันต้องการความช่วยเหลือเร่งด่วนเนื่องจากปัญหานี้ยังคงมีอยู่ในช่วง 20 วันที่ผ่านมา

1
วิธีการส่งออกฐานข้อมูล mysql ตามเงื่อนไขที่
ฉันต้องการส่งออกข้อมูลและโครงสร้างของตาราง แต่ข้อมูลจะต้องมีเงื่อนไขเฉพาะ (สถานะ WHERE = 0 และ id> 20) วิธีการส่งออกฐานข้อมูล mysql ขึ้นอยู่กับเงื่อนไขจาก phpMyAdmin หรืออะไร

2
ความสัมพันธ์แบบหนึ่งต่อหนึ่งเป็นมาตรฐานหรือไม่
พิจารณาว่าเรามีชุดข้อมูลสถิติขนาดใหญ่สำหรับบันทึก เช่น 20-30 INTคอลัมน์ มันจะดีกว่าหรือไม่ที่จะเก็บทั้งชุดไว้ในตารางเดียวเนื่องจากทั้งหมดนั้นเป็นของระเบียนหรือสร้างตารางอื่นที่เชื่อมโยงกับความสัมพันธ์แบบหนึ่งต่อหนึ่ง ข้อได้เปรียบของอดีตคือการหลีกเลี่ยงJOINและเข้าถึงข้อมูลสถิติทั้งหมดสำหรับบันทึกที่เกี่ยวข้องได้อย่างรวดเร็ว ข้อได้เปรียบของหลังคือการทำให้คอลัมน์เป็นระเบียบ คอลัมน์แรกนั้นเป็นแบบอ่านอย่างละเอียดและแบบที่สองเป็นแบบเขียนมาก แน่นอนฉันคิดว่ามันไม่มีผลกระทบอย่างมีนัยสำคัญต่อประสิทธิภาพเนื่องจากฉันใช้ InnoDB กับการบล็อกระดับแถว โดยทั่วไปฉันต้องการทราบว่าเป็นประโยชน์หรือไม่ในการแยกชุดข้อมูลที่แตกต่างกันสำหรับบันทึกเดียว?

5
MySQL - วิธีที่เร็วที่สุดในการเปลี่ยนตารางสำหรับ InnoDB
ฉันมีตาราง InnoDB ที่ฉันต้องการแก้ไข ตารางมีแถว ~ 80M และออกจากไม่กี่ดัชนี ฉันต้องการเปลี่ยนชื่อของคอลัมน์ใดคอลัมน์หนึ่งและเพิ่มดัชนีอีกสองสามรายการ วิธีที่เร็วที่สุดที่จะทำคืออะไร (สมมติว่าฉันสามารถประสบแม้กระทั่งการหยุดทำงาน - เซิร์ฟเวอร์เป็นทาสที่ไม่ได้ใช้)? คำว่า "ธรรมดา" alter tableคือทางออกที่เร็วที่สุดหรือไม่? ในเวลานี้สิ่งที่ฉันสนใจคือความเร็ว :)

2
ฉันสามารถเปลี่ยนชื่อค่าในคอลัมน์ MySQL ENUM ในหนึ่งแบบสอบถามได้หรือไม่
ENUM('value_one','value_two')สมมติว่าฉันมีตารางฐานข้อมูลที่มี ENUM('First value','Second value')ฉันต้องการที่จะเปลี่ยนที่ไปยัง ฉันกำลังทำสิ่งดังต่อไปนี้: ALTER TABLE `table` MODIFY `column` ENUM('value_one','value_two','First value','Second value'); UPDATE `table` SET `column`='First Value' WHERE `column`='value_one'; UPDATE `table` SET `column`='Second Value' WHERE `column`='value_two'; ALTER TABLE `table` MODIFY `column` ENUM('First value','Second value'); มีวิธีที่มีประสิทธิภาพมากขึ้นในการทำเช่นนี้ EG มีวิธีในการทำสิ่งนี้ให้สำเร็จด้วย คำสั่งเดียว ALTER TABLEหรือไม่?

5
จากชุดของค่าฉันจะค้นหาค่าที่ไม่ได้เก็บไว้ในคอลัมน์ของตารางได้อย่างไร
ฉันมีตารางที่จะเก็บจำนวนเต็มนับแสน desc id_key_table; +----------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+-------+ | id_key | int(16) | NO | PRI | NULL | | +----------------+--------------+------+-----+---------+-------+ จากโปรแกรมฉันมีจำนวนเต็มชุดใหญ่ ฉันต้องการดูว่าเลขจำนวนเต็มใดที่ไม่อยู่ในคอลัมน์ id_key ด้านบน จนถึงตอนนี้ฉันได้วิธีต่อไปนี้แล้ว: 1) วนซ้ำแต่ละจำนวนเต็มและทำ a: select count(*) count from id_key_table where id_key = :id_key เมื่อการนับเป็น 0 …
12 mysql 

1
ความหมายของ 'ล็อคบันทึก แต่ไม่ต้องรอช่องว่าง' ในรายงานการหยุดชะงัก
เกี่ยวกับความหมายของlocks rec but not gap waitingในธุรกรรม (1) ข้อใดที่ถูกต้อง? ได้รับการล็อคช่องว่างรอดัชนี X คลัสเตอร์อยู่หรือไม่ ได้รับดัชนีดัชนี X lock แล้วรอการล็อคช่องว่างอยู่หรือไม่ ธุรกรรมมี 31 แถว (1) ความหมายของแถวเหล่านั้นคืออะไร? สิ่งนี้แสดงถึงการล็อคช่องว่างหรือไม่? 0: len 4; hex 800c20d6; asc ;; .... 29: SQL NULL; 30: SQL NULL; รายงาน DEADLOCK ที่ตรวจพบล่าสุด LATEST DETECTED DEADLOCK ------------------------ 2015-09-25 15:27:24 1b8084000 *** (1) TRANSACTION: TRANSACTION 5226928, …
12 mysql  deadlock 

1
ดูการหยุดชะงักหลายครั้งที่ผ่านมา
ฉันเห็นว่าฉันสามารถดูการหยุดชะงักล่าสุดใน mysql / innodb แต่มีวิธีดูการหยุดชะงักที่ผ่านมาหรือไม่ เรามีปัญหาการหยุดชะงักสองประการประเด็นหนึ่งมีความสำคัญ การหยุดชะงักที่สำคัญน้อยกว่าเกิดขึ้นวันละหลายครั้งดังนั้นจึงกลายเป็นการหยุดชะงัก "ล่าสุด"

1
ทำไม LIKE ถึงเร็วกว่า MATCH ถึง 4 เท่า ... เทียบกับดัชนี FULLTEXT ใน MySQL
ฉันไม่ได้รับสิ่งนี้ ฉันมีตารางที่มีดัชนีเหล่านี้ PRIMARY post_id INDEX topic_id FULLTEXT post_text ตารางมี (เฉพาะ) 346 000 แถว ฉันพยายามที่จะดำเนินการ 2 แบบสอบถาม SELECT post_id FROM phpbb_posts WHERE topic_id = 144017 AND post_id != 155352 AND MATCH(post_text) AGAINST('http://rapidshare.com/files/5494794/photo.rar') ใช้เวลา 4.05 วินาทีในขณะที่ SELECT post_id FROM phpbb_posts WHERE topic_id=144017 AND post_id != 155352 AND post_text LIKE ('%http://rapidshare.com/files/5494794/photo.rar%') ใช้เวลา 0.027 …

1
INDEX บนคีย์หลักคอมโพสิตเป็นอย่างไรใน mysql
เมื่อสร้างคีย์หลักผสมสำหรับคอลัมน์สองคอลัมน์ขึ้นไปเช่นPRIMARY KEY(col1, col2, col3); ระบบจะINDEXแต่ละคอลัมน์แยกกันไหม เหตุผลที่ฉันถามคำถามนี้คือเมื่อเราใช้UNIQUE INDEX (col1, col2, col3)มันจะทำหน้าที่เป็นINDEXคอลัมน์แรกเท่านั้นและเราจำเป็นต้องสร้างINDEXคอลัมน์เพิ่มเติมสำหรับคอลัมน์อื่น ๆ ฉันต้องการทราบว่าเป็นกรณีสำหรับคีย์หลักคอมโพสิตด้วยหรือไม่

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