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

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

7
ทำไมต้องใช้ innodb_file_per_table
มีบทความจำนวนมากเกินความจริง (IMHO ของหลักสูตร) innodb_file_per_tableจำเป็นที่จะต้องมี ฉันเข้าใจว่าด้วยinnodb_file_per_tableควรมีการควบคุมที่ดีกว่าตารางบุคคล เช่นการสำรองข้อมูลแต่ละตารางแยกจากกัน อย่างไรก็ตามการเรียกร้องเพื่อประสิทธิภาพที่ดีขึ้นเป็นที่น่าสงสัย ในการทดสอบของฉันไม่มีความแตกต่างของประสิทธิภาพinnodb_file_per_tableและibdata1ฐานข้อมูล 60GB แน่นอนว่ามันเป็นแบบทดสอบง่ายๆที่มีคำสั่งปกติและสถานการณ์อาจแตกต่างกันไปสำหรับการค้นหาที่ซับซ้อนในชีวิตจริง (นี่คือเหตุผลที่ฉันถามคำถามนี้) Linux 64 บิตพร้อมกับext4สามารถจัดการไฟล์ขนาดใหญ่ได้อย่างมีประสิทธิภาพ ด้วยinnodb_file_per_tableการดำเนินการดิสก์ I / O เพิ่มเติมจำเป็น และสิ่งนี้มีความสำคัญในข้อ จำกัดJOINและความซับซ้อนFOREIGN KEY Tablespace ใช้งานร่วมกันบน single ibdata; พื้นที่ตารางเฉพาะสำหรับตารางแยกต่างหากสามารถประหยัดพื้นที่ดิสก์ได้อย่างไร แน่นอนว่ามันเป็นเรื่องง่ายกว่าที่จะเพิ่มพื้นที่ว่างสำหรับแต่ละตารางด้วยALTERแต่ก็ยังเป็นกระบวนการที่มีราคาแพง (ด้วยการล็อคตาราง) คำถาม:ไม่innodb_file_per_tableมีผลกระทบต่อผลการดำเนินงานที่ดีขึ้นของ MySQL? ถ้าใช่ทำไม

3
ฉันควรเลือกชุดเปรียบเทียบใดสำหรับเว็บไซต์ภาษา muiti
การเปรียบเทียบมีผลกับความเร็วการสืบค้นหรือไม่? ขนาดของตารางเปลี่ยนไปตามการเปรียบเทียบหรือไม่? หากฉันต้องการสร้างเว็บไซต์ที่ต้องรองรับภาษาที่เป็นไปได้ทั้งหมด (ลองทำเช่น Google) ซึ่งจะเป็นการเปรียบเทียบที่แนะนำหรือไม่ ฉันจะต้องเก็บตัวอักษรเช่น日本語การค้นหาของฉันในเว็บไซต์จะต้องส่งคืนsomethingค่าsóméthíngอินพุตนั้นจะต้องตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ฉันจะรู้ได้อย่างไรว่าทางเลือกใดที่ดีที่สุด? การเปรียบเทียบชุดไหนที่เหมาะกับกรณีนี้มากที่สุด

2
ปรับปรุงประสิทธิภาพของ COUNT / GROUP-BY ในตาราง PostgresSQL ขนาดใหญ่?
ฉันใช้ PostgresSQL 9.2 และมีความสัมพันธ์ 12 คอลัมน์มีประมาณ 6,700,000 แถว มันมีโหนดในพื้นที่ 3 มิติแต่ละคนอ้างอิงผู้ใช้ (ผู้สร้างมัน) ในการสอบถามผู้ใช้รายใดที่สร้างจำนวนโหนดที่ฉันทำต่อไปนี้ (เพิ่มexplain analyzeสำหรับข้อมูลเพิ่มเติม): EXPLAIN ANALYZE SELECT user_id, count(user_id) FROM treenode WHERE project_id=1 GROUP BY user_id; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------- HashAggregate (cost=253668.70..253669.07 rows=37 width=8) (actual time=1747.620..1747.623 rows=38 loops=1) -> Seq Scan on treenode (cost=0.00..220278.79 rows=6677983 width=8) (actual time=0.019..886.803 rows=6677983 loops=1) …

1
วิธีการตรวจสอบว่ามี [การเชื่อมต่อที่ไม่ได้ใช้งานกับ] ธุรกรรมที่ไม่มีข้อผูกมัดใน PostgreSQL หรือไม่
ตามความเห็นเกี่ยวกับคำถามนี้ฉันถามเกี่ยวกับการเชื่อมต่อที่ไม่ได้ใช้งานใน PostgreSQL 9.2ธุรกรรมบางอย่างที่ไม่ได้รับการติดต่อ (อาจเกี่ยวข้องกับการเชื่อมต่อที่ไม่ได้ใช้งาน) อาจทำให้เกิดปัญหาประสิทธิภาพการทำงาน เป็นวิธีที่ดีในการตรวจสอบว่ามีการทำธุรกรรมที่ปราศจากข้อผูกมัด (คะแนนโบนัสหากมีวิธีที่จะรู้ว่าพวกเขากำลังเชื่อมต่ออยู่ไม่ได้ใช้งานหรือไม่)? ขอบคุณมาก ๆ!

3
ประสิทธิภาพของขั้นตอนการจัดเก็บเทียบกับแบบสอบถามแบบดิบ
ฉันได้อ่านมากทั้งสองด้านของการอภิปรายนี้: มีประสิทธิภาพที่มีนัยสำคัญที่จะได้รับโดยใช้วิธีการที่เก็บไว้เฉพาะกับแบบสอบถามแบบดิบหรือไม่ ฉันสนใจ SQL Server โดยเฉพาะ แต่จะสนใจในฐานข้อมูลใด ๆ และทั้งหมด

5
การปรับแต่งข้อความค้นหาควรเป็นแบบเชิงรุกหรือแบบตอบโต้?
ในฐานะนักพัฒนาซอฟต์แวร์และ DBA ที่ต้องการฉันพยายามผสมผสานแนวปฏิบัติที่ดีที่สุดเมื่อฉันออกแบบฐานข้อมูล SQL Server ของฉัน (99% ของเวลาที่ซอฟต์แวร์ตั้งอยู่บน SQL Server) ฉันทำการออกแบบที่ดีที่สุดก่อนและระหว่างการพัฒนา แต่ก็เหมือนกับนักพัฒนาซอฟต์แวร์อื่น ๆ ที่มีการเพิ่มฟังก์ชันการทำงานข้อบกพร่องและเพียงแค่การเปลี่ยนแปลงข้อกำหนดที่ต้องการเปลี่ยนแปลง / สร้างวัตถุฐานข้อมูล คำถามของฉันคือควรปรับแต่งการค้นหาเชิงรุกหรือปฏิกิริยา? กล่าวอีกนัยหนึ่งไม่กี่สัปดาห์หลังจากมีการแก้ไขโค้ด / ฐานข้อมูลจำนวนมากฉันควรตั้งวันเพื่อตรวจสอบประสิทธิภาพการค้นหาและปรับแต่งตามนั้น ถึงแม้ว่ามันจะดูเหมือนว่าจะทำงานโอเค ? หรือฉันควรทราบว่าประสิทธิภาพต่ำกว่าค่าเฉลี่ยควรเป็นการตรวจสอบฐานข้อมูลและกลับไปที่กระดานดำที่เป็นสุภาษิต การปรับแต่งข้อความค้นหาอาจใช้เวลานานและขึ้นอยู่กับการออกแบบฐานข้อมูลเริ่มต้นซึ่งอาจมีประโยชน์น้อยที่สุด ฉันอยากรู้อยากเห็นเกี่ยวกับวิธีการทำงานที่ได้รับการยอมรับ

2
ใช้ข้อความสูงสุด MAX หรือเฉพาะเจาะจงน้อยกว่านั้น
มีคนถูกตรวจสอบรหัส DDL ของการสร้างตารางและแนะนำเมื่อพวกเขาเห็นผมเห็นโดยใช้VARCHAR(256)ฟิลด์สำหรับข้อความที่ผมคาดหวังว่าจะสวยขนาดเล็กเหมือนชื่อหรือสิ่งที่ฉันควรจะเสมอเพียงแค่ใช้VARCHAR(MAX)และเชื่อมโยงทำไมต้องใช้อะไร แต่ (สูงสุด varchar ) . ฉันอ่านมัน แต่ดูเหมือนว่ามันล้าสมัยเพราะมันมุ่งเน้นไปที่ปี 2005 และดูเหมือนจะไม่ได้เสนอเหตุผลที่แท้จริงในการจัดสรรที่อาจเกิดขึ้นถึง 2 GB ต่อแถวในเขตข้อมูลข้อความทั้งหมด จากมุมมองด้านประสิทธิภาพการจัดเก็บและอื่น ๆ เราควรตัดสินใจอย่างไรว่าจะใช้งานVARCHAR(MAX)หรือใช้SQL Server รุ่นใหม่ที่มีขนาดเฉพาะเจาะจงน้อยลง (เช่น 2008, 2012, 2014)

3
ค่าใช้จ่ายในการตรวจสอบแคชแบบสอบถามบ่อยครั้งคุ้มค่าหรือไม่
ขณะนี้ฉันกำลังทำงานกับฐานข้อมูล MySQL ที่เราเห็นการตรวจสอบความถูกต้องจำนวนมากจากแคชแบบสอบถามเป็นหลักเนื่องจากคำสั่ง INSERT, DELETE และ UPDATE จำนวนมากที่ถูกเรียกใช้งานในหลาย ๆ ตาราง สิ่งที่ฉันพยายามตรวจสอบคือการมีประโยชน์ใด ๆ หรือไม่ที่จะอนุญาตให้ใช้แคชแบบสอบถามสำหรับคำสั่ง SELECT ที่กำลังเรียกใช้กับตารางเหล่านี้ เนื่องจากพวกเขาได้รับการทำให้ใช้งานไม่ได้อย่างรวดเร็วดูเหมือนว่าสิ่งที่ดีที่สุดคือการใช้ SQL_NO_CACHE ในคำสั่ง SELECT ด้วยตารางเหล่านี้ ค่าใช้จ่ายในการตรวจสอบความถูกต้องบ่อยครั้งเป็นสิ่งที่คุ้มค่าหรือไม่? แก้ไข: ตามคำขอของผู้ใช้ @RolandoMySQLDBA ด้านล่างนี่คือข้อมูลเกี่ยวกับ MyISAM และ INNODB InnoDB ขนาดข้อมูล: 177.414 GB ขนาดดัชนี: 114.792 GB ขนาดโต๊ะ: 292.205 GB MyISAM ขนาดข้อมูล: 379.762 GB ขนาดดัชนี: 80.681 GB ขนาดโต๊ะ: 460.443 GB ข้อมูลเพิ่มเติม: เวอร์ชัน: …

2
Percona กับ MySQL
Percona คืออะไร มันแตกต่างจาก MySQL อย่างไร เมื่อใดที่เราควรพิจารณาเปลี่ยน (หรืออัปเกรด) จากสต็อก MySQL เป็น Percona เพื่อเพิ่มข้อ จำกัด บางอย่างในสถานการณ์ของเราเราเกือบจะใช้ InnoDB (ซึ่งฉันเข้าใจว่า Percona ได้ทำการปรับให้เหมาะสมมากที่สุด) ด้วยข้อ จำกัด คีย์ต่างประเทศที่กว้างขวางและขั้นตอนการจัดเก็บบางอย่าง สิ่งที่เรากำลังค้นหาอยู่ในปัจจุบันคือ MySQL นั้นทำการปรับแต่งข้อความค้นหาของเราอย่างไม่เหมาะสมดังนั้นแบบสอบถามใดก็ตามที่มีส่วนร่วมเกิน 3-4 รายการเราต้องสร้างอย่างชัดเจนด้วย STRAIGHT joins เพื่อปรับปรุงประสิทธิภาพ

5
เหตุใดจึงต้องเริ่มต้นใหม่เป็นระยะ ๆ เพื่อให้อินสแตนซ์ของฉันทำงานได้ดี
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา เรามีเซิร์ฟเวอร์ฐานข้อมูลการผลิตใน SQL 2005 ทุกอย่างทำงานได้ตามปกติ แต่หลังจากผ่านไปสองสัปดาห์เราจะเห็นว่าประสิทธิภาพการทำงานลดลง การรีสตาร์ท SQL Server จะทำให้ประสิทธิภาพกลับสู่ปกติ พื้นหลังบางส่วน: ใช้งานฐานข้อมูลมากกว่า 1,200 ฐานข้อมูล (ส่วนใหญ่เป็นผู้เช่ารายเดียวและมีหลายผู้เช่า) ก่อนที่ใครจะบรรยายเกี่ยวกับการย้ายไปยังผู้เช่าหลายคนเท่านั้นมีเหตุผลที่ถูกต้องในการรักษาโครงสร้างนี้ ...... RAM คือ 16 GB หลังจากรีสตาร์ทจะใช้เวลาไม่นานสำหรับ SQL Server ที่จะกลับไปใช้งานขนาด 15 GB การเชื่อมต่อฐานข้อมูล Active มีประมาณ 80 การเชื่อมต่อซึ่งเรารู้สึกว่าค่อนข้างดีเนื่องจากมีพูลการเชื่อมต่อหนึ่งต่อเว็บเซิร์ฟเวอร์ต่อกระบวนการดังนั้นเราจึงไม่มีปัญหาการรั่วไหลของการเชื่อมต่อ เราได้ลองหลายสิ่งหลายอย่างในเวลาที่ไม่มาก: - รัน DBCC DROPCLEANBUFFERS (พร้อม CHECKPOINT) เพื่อล้างแคชข้อมูล …

5
การเริ่มต้นเซิร์ฟเวอร์ SQL ใหม่เร็วขึ้นหรือไม่
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันสังเกตเห็นว่า DBA บางตัวเริ่มการทำงานของ SQL Server บ่อยครั้งมากบางครั้งก็เป็นเวลากลางคืน ฉันเชื่อว่าพวกเขาทำเพื่อเพิ่มหน่วยความจำบางส่วนหรืออาจเพิ่มความเร็วการสืบค้นด้วย ฉันรู้ว่าหลังจากการรีสตาร์ทเคียวรีแผนต้องถูกคอมไพล์ใหม่ แต่ถึงอย่างนั้นฉันก็ยังสงสัยว่ามีประโยชน์สุทธิต่อการฝึกนี้หรือไม่ เป็นความจริงหรือไม่ที่การเริ่ม SQL Server ใหม่ทุกวันจะทำให้ทำงานเร็วขึ้นหรือไม่

6
วิธีที่เร็วที่สุดในการตรวจสอบว่าตาราง InnoDB เปลี่ยนไปหรือไม่
แอปพลิเคชันของฉันเข้มข้นมากฐานข้อมูล ขณะนี้ฉันใช้งาน MySQL 5.5.19 และใช้ MyISAM แต่ฉันอยู่ในขั้นตอนการโอนย้ายไปยัง InnoDB ปัญหาเดียวที่เหลืออยู่คือประสิทธิภาพการตรวจสอบ แอปพลิเคชันของฉันทำประมาณ 500-1,000 CHECKSUM TABLEข้อความต่อวินาทีในช่วงเวลาเร่งด่วนเนื่องจากไคลเอนต์ GUI กำลังสำรวจฐานข้อมูลอย่างต่อเนื่องเพื่อการเปลี่ยนแปลง (เป็นระบบตรวจสอบดังนั้นต้องตอบสนองและรวดเร็วมาก) ด้วย MyISAM จะมีการตรวจสอบสดที่คำนวณล่วงหน้าบนการปรับเปลี่ยนตารางและเร็วมาก อย่างไรก็ตามไม่มีสิ่งนั้นใน InnoDB ดังนั้นCHECKSUM TABLEช้ามาก ฉันหวังว่าจะสามารถตรวจสอบเวลาอัปเดตล่าสุดของตารางได้โชคไม่ดีที่ InnoDB ไม่สามารถใช้ได้เช่นกัน ฉันติดอยู่ในขณะนี้เนื่องจากการทดสอบแสดงให้เห็นว่าประสิทธิภาพของแอปพลิเคชันลดลงอย่างมาก มีรหัสบรรทัดมากเกินไปที่จะอัพเดตตารางดังนั้นการใช้ตรรกะในแอปพลิเคชันเพื่อเปลี่ยนตารางบันทึกไม่เป็นไปตามคำถาม มีวิธีใดที่รวดเร็วในการตรวจจับการเปลี่ยนแปลงในตาราง InnoDB หรือไม่

3
LIKE ถูกนำไปใช้อย่างไร
ทุกคนสามารถอธิบายวิธีการใช้งานตัวดำเนินการ LIKE ในระบบฐานข้อมูลปัจจุบัน (เช่น MySQL หรือ Postgres) ได้อย่างไร หรือชี้ให้ฉันอ้างอิงบางอย่างที่อธิบายได้หรือไม่ แนวทางที่ไร้เดียงสาคือการตรวจสอบแต่ละเร็กคอร์ดดำเนินการจับคู่นิพจน์ปกติหรือการจับคู่สตริงบางส่วนในสาขาที่สนใจ แต่ฉันมีความรู้สึก (หวัง) ว่าระบบเหล่านี้ทำสิ่งที่ชาญฉลาดขึ้น

3
การนำเข้าการถ่ายโอนข้อมูล mysql ช้ามากบนเครื่องของนักพัฒนาของฉัน
ฉันมี SQL dump มันใหญ่มาก (411 MB) และใช้เวลา 10 นาทีในการนำเข้าบนเซิร์ฟเวอร์ A การนำเข้าเดียวกันบนเวิร์กสเตชัน B ของฉันมีการประเมิน (pipeviewer) 8 ชั่วโมงเพื่อนำเข้า (มันนำเข้า 31 MB ใน 40 นาที ) นี่คือปัจจัย 53 ที่ช้ากว่า รายละเอียด: Server A: MySQL Version: 5.5.30-1.1 (Debian) 2 GB RAM 1 core QEMU Virtual CPU version 1.0 - cpu MHz: 3400.020 Workstation B: MySQL …

1
SQL Server - ใครก็ตามที่ใช้ SUMA, ค่าสถานะการสืบค้นกลับ 8048 หรือค่าสถานะการติดตาม 8015
เมื่อเร็ว ๆ นี้รวมถึงการเริ่มต้นของ SQL Server ติดตามการตั้งค่าสถานะ 8048 เพื่อแก้ไขปัญหา contention spinlock ที่ร้ายแรงในระบบ SQL Server 2008 R2 สนใจที่จะได้ยินจากผู้อื่นที่พบกรณีการใช้งานที่ค่าประสิทธิภาพถูกส่งโดยการติดตามค่าสถานะ 8048 (เลื่อนระดับกลยุทธ์การจัดสรรหน่วยความจำแบบสอบถามจากโหนดต่อ NUMA ไปยังแกนหลัก), สถานะการติดตาม 8015 (SQL Server ละเว้นฟิสิคัล NUMA) หรือ SUMA ( มีการเข้าถึงหน่วยความจำที่สม่ำเสมอเพียงพอตัวเลือก BIOS ในเครื่อง NUMA บางเครื่อง) ติดตามสถานะ 8048 http://blogs.msdn.com/b/psssql/archive/2011/09/01/sql-server-2008-2008-r2-on-newer-machines-with-more-than-8-cpus -presented ต่อ Numa โหนด พ.ค. จำเป็นร่องรอยธง 8048.aspx ติดตามสถานะ 8015 http://blogs.msdn.com/b/psssql/archive/2010/04/02/how-it-works-soft-numa-io-completion-thread-lazy-writer-workers-and-memory -nodes.aspx รายละเอียดเกี่ยวกับปริมาณงานของระบบรวบรวมตัวชี้วัดจากระบบที่มีปัญหาและรวบรวมตัวชี้วัดจากระบบหลังจากการแทรกแซงตาม การตั้งค่าสถานะการสืบค้นกลับ …

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