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

การประเมินว่าระบบทำงานได้ดีพอที่จะเหมาะสมกับวัตถุประสงค์หรือไม่ โดยทั่วไปแล้วประสิทธิภาพหมายถึงความเร็วที่ระบบดำเนินการเสร็จสิ้นหรือชุดของการดำเนินงานเมื่อเวลาผ่านไป

15
MySQL สามารถทำการสืบค้นบนพันล้านแถวได้หรือไม่?
ฉันกำลังวางแผนในการจัดเก็บสแกนจากแมสสเปคโตรมิเตอร์ในฐานข้อมูล MySQL และต้องการทราบว่าการจัดเก็บและวิเคราะห์ข้อมูลจำนวนนี้เป็นไปได้จากระยะไกลหรือไม่ ฉันรู้ว่าประสิทธิภาพอาจแตกต่างกันไปขึ้นอยู่กับสภาพแวดล้อม แต่ฉันกำลังมองหาลำดับความสำคัญอย่างคร่าวๆ: ข้อความค้นหาจะใช้เวลา 5 วันหรือ 5 มิลลิวินาทีหรือไม่ รูปแบบอินพุต ไฟล์อินพุตแต่ละไฟล์มีสเปคโตรมิเตอร์วิ่งเดียว การทดสอบแต่ละครั้งประกอบด้วยชุดของการสแกนและการสแกนแต่ละครั้งจะมีชุดข้อมูลที่สั่งซื้อ มีข้อมูลเมตาเล็กน้อย แต่ส่วนใหญ่ของไฟล์ประกอบด้วยอาร์เรย์ int หรือ 32- หรือ 64- บิต ระบบโฮสต์ | ---------------- + ------------------------------- | | ระบบปฏิบัติการ | Windows 2008 64-bit | | รุ่น MySQL 5.5.24 (x86_64) | | ซีพียู | 2x Xeon E5420 (ทั้งหมด 8 คอร์) | …

7
ฉันจะเพิ่มประสิทธิภาพ mysqldump ของฐานข้อมูลขนาดใหญ่ได้อย่างไร
ฉันมีแอพพลิเคชั่น symfony ที่มีฐานข้อมูล InnoDB ที่ ~ 2GB พร้อม 57 ตาราง ขนาดส่วนใหญ่ของฐานข้อมูลอยู่ในตารางเดียว (~ 1.2GB) ฉันกำลังใช้ mysqldump เพื่อสำรองฐานข้อมูลทุกคืน เนื่องจากการเชื่อมต่อ comcast ของฉันบ่อยครั้งถ้าฉันเรียกใช้การถ่ายโอนข้อมูลด้วยตนเองการเชื่อมต่อกับเซิร์ฟเวอร์ของฉันจะหมดเวลาก่อนที่การถ่ายโอนข้อมูลเสร็จสมบูรณ์ทำให้ฉันต้องเรียกใช้การถ่ายโอนข้อมูลอีกครั้ง [ฉันกำลังเรียกใช้ cron ที่ถ่ายโอนข้อมูลทุกคืนนี่เป็นเพียงการทิ้งที่ฉันทำงานด้วยตนเอง] มีวิธีเพิ่มความเร็วในการทิ้งสำหรับปัญหาการหมดเวลาการเชื่อมต่อ แต่ยัง จำกัด เวลาที่เซิร์ฟเวอร์ครอบครองกระบวนการนี้หรือไม่ BTW ฉันกำลังทำงานในการลดขนาดของฐานข้อมูลโดยรวมเพื่อแก้ไขปัญหานี้

5
เป็นไปได้ไหมที่ทำให้ MySQL ใช้มากกว่าหนึ่งคอร์?
ฉันได้รับการนำเสนอด้วยเซิร์ฟเวอร์ MySQL เฉพาะที่ไม่เคยใช้มากกว่าหนึ่งคอร์ ฉันเป็นนักพัฒนามากกว่า DBA สำหรับ MySQL ดังนั้นต้องการความช่วยเหลือ ติดตั้ง เซิร์ฟเวอร์ค่อนข้างหนักด้วยการโหลดประเภท OLAP / DataWarehouse (DW): หลัก: 96GB RAM, 8 คอร์ + RAID 10 อาเรย์เดียว ทดสอบ: RAM 32GB พร้อม 4 คอร์ ฐานข้อมูลที่ใหญ่ที่สุดคือ 540 GB, รวมอยู่ที่ประมาณ 1.1TB และส่วนใหญ่เป็นตาราง InnoDB Solaris 10 Intel-64 MySQL 5.5.x หมายเหตุ: ฐานข้อมูลที่ใหญ่ที่สุดคือหนึ่งที่จำลองแบบจากเซิร์ฟเวอร์ OLTP DR และ DW จะถูกโหลดจากสิ่งนี้ มันไม่ใช่ DW …

6
วิธีตรวจสอบว่าจำเป็นต้องใช้ดัชนีหรือไม่
ฉันใช้เครื่องมือดัชนีอัตโนมัติบนฐานข้อมูล MS SQL ของเรา (ฉันแก้ไขสคริปต์ที่มาจาก Microsoft ซึ่งดูที่ตารางสถิติดัชนี - ดัชนีอัตโนมัติแบบดัชนี ) จากสถิติตอนนี้ฉันมีรายการคำแนะนำสำหรับดัชนีที่ต้องการสร้าง แก้ไข: ดัชนีที่อธิบายข้างต้นนำข้อมูลจาก DMV ที่บอกให้คุณทราบว่าโปรแกรมฐานข้อมูลจะใช้อะไรสำหรับดัชนีหากมีอยู่และสคริปต์ใช้คำแนะนำ Top x (ตามการค้นหาผู้ใช้ส่งผลกระทบ ฯลฯ ) และวางลงในตาราง (แก้ไขด้านบนบางส่วนมาจากคำตอบของ Larry Coleman ด้านล่างเพื่อชี้แจงสิ่งที่สคริปต์กำลังทำอยู่) เนื่องจากฉันยังใหม่กับผู้ดูแลฐานข้อมูลและมีการค้นหาอย่างรวดเร็วทั่วเน็ตฉันลังเลที่จะกระโดดและเพิ่มดัชนีที่แนะนำอย่างสุ่มสี่สุ่มห้า อย่างไรก็ตามไม่มีประสบการณ์ในสาขานี้ฉันกำลังมองหาคำแนะนำเกี่ยวกับวิธีตรวจสอบว่าคำแนะนำนั้นจำเป็นหรือไม่ ฉันจำเป็นต้องเรียกใช้ SQL Profiler หรือไม่ควรตรวจสอบรหัสที่สืบค้นตารางหรือไม่ และคุณมีคำแนะนำอื่น ๆ อีกไหม?

7
Guid vs INT - คีย์ไหนดีกว่ากัน?
ผมเคยถูกอ่านไปรอบ ๆ เหตุผลที่จะใช้หรือไม่และGuidint intมีขนาดเล็กลงเร็วขึ้นและง่ายต่อการจดจำตามลำดับเวลา และสำหรับGuidข้อได้เปรียบเดียวที่ฉันพบคือมันไม่เหมือนใคร ในกรณีGuidใดจะดีกว่าintและทำไม? จากสิ่งที่ฉันเห็นintไม่มีข้อบกพร่องยกเว้นโดยการ จำกัด จำนวนซึ่งในหลายกรณีไม่เกี่ยวข้อง ทำไมถึงถูกGuidสร้างขึ้นมา? ฉันคิดว่ามันมีจุดประสงค์อื่นนอกเหนือจากการให้บริการเป็นกุญแจหลักของตารางง่ายๆ (ตัวอย่างของแอปพลิเคชันจริงที่ใช้Guidกับบางสิ่ง) (Guid = UniqueIdentifier) ​​พิมพ์บน SQL Server

8
การจับคู่รูปแบบด้วย LIKE, SIMILAR TO หรือนิพจน์ปกติใน PostgreSQL
ฉันต้องเขียนคำถามง่ายๆที่ฉันไปหาชื่อของคนที่เริ่มต้นด้วย B หรือ D: SELECT s.name FROM spelers s WHERE s.name LIKE 'B%' OR s.name LIKE 'D%' ORDER BY 1 ฉันสงสัยว่าถ้ามีวิธีที่จะเขียนสิ่งนี้เพื่อให้มีประสิทธิภาพมากขึ้น ดังนั้นฉันสามารถหลีกเลี่ยงorและ / หรือlike?

3
ดัชนีคอมโพสิตยังดีสำหรับการค้นหาในเขตข้อมูลแรกหรือไม่
สมมติว่าผมมีตารางที่มีสาขาและA Bฉันจะทำให้คำสั่งปกติA+ ดังนั้นฉันสร้างดัชนีคอมโพสิตในB (A,B)คำสั่งในการค้นหาAจะได้รับการปรับให้เหมาะสมอย่างเต็มที่โดยดัชนีคอมโพสิตหรือไม่ นอกจากนี้ผมสร้างดัชนีในAแต่ Postgres Aยังคงใช้ดัชนีคอมโพสิตสำหรับการค้นหาเท่านั้น หากคำตอบก่อนหน้าเป็นบวกฉันคิดว่ามันไม่สำคัญ แต่ทำไมมันถึงเลือกดัชนีคอมโพสิตตามค่าเริ่มต้นหากมีAดัชนีเดียว

4
วัดขนาดของแถวตาราง PostgreSQL
ฉันมีตาราง PostgreSQL select *ช้ามากในขณะที่select idดีและรวดเร็ว ฉันคิดว่าอาจเป็นไปได้ว่าขนาดของแถวนั้นใหญ่มากและใช้เวลาในการขนส่งสักครู่หรืออาจเป็นปัจจัยอื่น ฉันต้องการฟิลด์ทั้งหมด (หรือเกือบทั้งหมด) ดังนั้นการเลือกเฉพาะเซ็ตย่อยไม่ใช่การแก้ไขด่วน การเลือกเขตข้อมูลที่ฉันต้องการยังคงช้า นี่คือคีคีโต๊ะของฉันลบชื่อ: integer | not null default nextval('core_page_id_seq'::regclass) character varying(255) | not null character varying(64) | not null text | default '{}'::text character varying(255) | integer | not null default 0 text | default '{}'::text text | timestamp with time zone …

4
แหล่งข้อมูลที่เชื่อถือได้ที่ <> และ! = เหมือนกันในประสิทธิภาพใน SQL Server
ลองพิจารณาคำตอบนี้เพื่อให้ความมั่นใจแก่ผู้ถามเกี่ยวกับ&lt;&gt;โอเปอเรเตอร์ที่: &lt;&gt;คือ ... !=เช่นเดียวกับ แต่จากนั้นผู้แสดงความคิดเห็นท่อขึ้นและพูดว่า: มันเป็นความจริงที่ว่าพวกมันใช้งานได้เหมือนกัน อย่างไรก็ตามเครื่องมือเพิ่มประสิทธิภาพการใช้ SQL นั้นแตกต่างกันมาก = /! = จะถูกประเมินว่าเป็นความจริง / เท็จในขณะที่ &lt;&gt; หมายถึงเครื่องยนต์ต้องมองและดูว่าค่ามากกว่าหรือน้อยกว่าหมายถึงค่าใช้จ่ายในการทำงานที่มากขึ้น สิ่งที่ควรพิจารณาเมื่อเขียนข้อความค้นหาที่อาจมีราคาแพง ฉันมั่นใจว่านี่เป็นเท็จ แต่เพื่อที่จะจัดการกับความคลางแคลงที่อาจเกิดขึ้นฉันสงสัยว่าทุกคนสามารถให้แหล่งข้อมูลที่เชื่อถือได้หรือเป็นที่ยอมรับเพื่อพิสูจน์ว่าผู้ประกอบการเหล่านี้ไม่เพียง แต่ใช้งานได้เหมือนกัน

2
จะเร็วกว่าอะไรแบบสอบถามขนาดใหญ่หรือแบบสอบถามขนาดเล็กจำนวนมาก
ฉันทำงานให้กับ บริษัท ที่แตกต่างกันและฉันสังเกตเห็นว่าบางคนชอบที่จะมีมุมมองที่จะเข้าร่วมโต๊ะกับ "ญาติ" ทั้งหมดของมัน แต่ในบางครั้งเราจำเป็นต้องใช้เพียง 1 คอลัมน์เท่านั้น ดังนั้นจะเร็วกว่าที่จะทำการเลือกแบบง่าย ๆ แล้ว "เข้าร่วม" ในรหัสระบบหรือไม่ ระบบอาจเป็น php, java, asp, ภาษาใด ๆ ที่เชื่อมต่อกับฐานข้อมูล ดังนั้นคำถามคือสิ่งที่เร็วไปจากฝั่งเซิร์ฟเวอร์ (php, java, asp, ruby, python ... ) ไปยังฐานข้อมูลรันหนึ่งแบบสอบถามที่ได้รับทุกสิ่งที่เราต้องการหรือไปจากฝั่งเซิร์ฟเวอร์ไปยังฐานข้อมูลและเรียกใช้ แบบสอบถามที่ได้รับคอลัมน์จากตารางเดียวเท่านั้นหรือไม่

4
ดัชนีค้นหา vs สแกนดัชนี
ดูที่แผนการดำเนินการของคิวรีที่รันช้าและฉันสังเกตว่าบางโหนดเป็นดรรชนีและบางอันก็สแกนดรรชนี ความแตกต่างระหว่างกับการค้นหาดัชนีและการสแกนดัชนีคืออะไร? แบบไหนดีกว่ากัน? SQL จะเลือกอย่างใดอย่างหนึ่งได้อย่างไร ฉันรู้ว่านี่คือคำถาม 3 ข้อ แต่ฉันคิดว่าการตอบคำถามแรกจะอธิบายคำถามอื่น ๆ

6
เกี่ยวกับประสิทธิภาพของฐานข้อมูลแบบเธรดเดียวกับเธรดแบบมัลติเธรด
H2 เป็นฐานข้อมูลเธรดเดียวที่มีชื่อเสียงที่ดีเกี่ยวกับประสิทธิภาพ ฐานข้อมูลอื่นเป็นแบบมัลติเธรด คำถามของฉันคือ: ฐานข้อมูลแบบหลายเธรดน่าสนใจกว่าฐานข้อมูลเธรดเดียวเมื่อใด มีผู้ใช้กี่คน? มีกี่กระบวนการ ทริกเกอร์คืออะไร? ใครบ้างมีประสบการณ์แบ่งปัน สรุป คอขวดปกติคือการเข้าถึงดิสก์ SSD นั้นเร็ว แต่เปราะบาง (ต้องมีขั้นตอนการทำงานล้มเหลว) ข้อความค้นหายาวหนึ่งข้อความในระบบเธรดเดียวจะบล็อกข้อความอื่น ๆ ทั้งหมด การกำหนดค่าระบบมัลติเธรดสามารถยุ่งยากได้ ฐานข้อมูลแบบมัลติเธรดมีประโยชน์แม้ในระบบแกนเดี่ยว

3
ประสิทธิภาพของการใช้ CHAR กับ VARCHAR ในฟิลด์ขนาดคงที่คืออะไร
ฉันมีคอลัมน์ที่จัดทำดัชนีซึ่งจัดเก็บ MD5 แฮช ดังนั้นคอลัมน์จะเก็บค่า 32 อักขระเสมอ ไม่ว่าจะด้วยเหตุผลใดก็ตามสิ่งนี้ถูกสร้างขึ้นเป็น varchar แทนที่จะเป็นถ่าน มันคุ้มค่าปัญหาของการโยกย้ายฐานข้อมูลเพื่อแปลงเป็นถ่านหรือไม่ นี่คือใน MySQL 5.0 พร้อม InnoDB


7
ทำไมไม่ใช้ตารางแทนมุมมองที่ปรากฏขึ้น
ฉันใหม่สำหรับฐานข้อมูล Oracle ถ้าฉันเข้าใจถูกต้องแล้ว materialized view คือมุมมองที่ชุดผลลัพธ์ถูกบันทึกเป็นตารางฟิสิคัลในฐานข้อมูลและมุมมอง / ตารางนี้จะรีเฟรชเบสในพารามิเตอร์บางตัว หากมุมมองถูกบันทึกเป็นตารางจริงทำไมไม่เก็บข้อมูลไว้ในตารางตั้งแต่แรก? ดังนั้นประโยชน์ของการใช้มุมมองที่เป็นรูปธรรมแทนที่จะเป็นตารางคืออะไร

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