Heim Datenbank MySQL-Tutorial 一个实例讲解MySQL查询优化(三)_MySQL

一个实例讲解MySQL查询优化(三)_MySQL

Jun 01, 2016 pm 01:59 PM
公司 如何 查询

实例分析
  下面我们举一个制造公司的例子来说明如何进行查询优化。制造公司数据库中包括3个表,模式如下所示:

  1.part表

  零件号     零件描述        其他列

  (part_num) (part_desc)      (other column)

  102,032   Seageat 30G disk     ……

  500,049   Novel 10M network card  ……

  ……

实例分析

  下面我们举一个制造公司的例子来说明如何进行查询优化。制造公司数据库中包括3个表,模式如下所示:

  1.part表

  零件号     零件描述        其他列

  (part_num) (part_desc)      (other column)

  102,032   Seageat 30G disk     ……

  500,049   Novel 10M network card  ……

  ……

  2.vendor表

  厂商号      厂商名      其他列

  (vendor _num) (vendor_name) (other column)

  910,257     Seageat Corp   ……

  523,045     IBM Corp     ……

  ……

  3.parven表

  零件号     厂商号     零件数量

  (part_num) (vendor_num) (part_amount)

  102,032    910,257    3,450,000

  234,423    321,001    4,000,000

  ……

  下面的查询将在这些表上定期运行,并产生关于所有零件数量的报表:

  SELECT part_desc,vendor_name,part_amount

  FROM part,vendor,parven

  WHERE part.part_num=parven.part_num

  AND parven.vendor_num = vendor.vendor_num

  ORDER BY part.part_num

  如果不建立索引,上述查询代码的开销将十分巨大。为此,我们在零件号和厂商号上建立索引。索引的建立避免了在嵌套中反复扫描。关于表与索引的统计信息如下:

  表     行尺寸   行数量     每页行数量   数据页数量

  (table) (row size) (Row count) (Rows/Pages) (Data Pages)

  part    150     10,000    25       400

  Vendor   150     1,000     25       40

  Parven   13      15,000    300       50

  索引     键尺寸   每页键数量   页面数量

  (Indexes) (Key Size) (Keys/Page)   (Leaf Pages)

  part     4      500       20

  Vendor    4      500       2

  Parven    8      250       60

  看起来是个相对简单的3表连接,但是其查询开销是很大的。通过查看系统表可以看到,在part_num上和vendor_num上有簇索引,因此索引是按照物理顺序存放的。parven表没有特定的存放次序。这些表的大小说明从缓冲页中非顺序存取的成功率很小。此语句的优化查询规划是:首先从part中顺序读取400页,然后再对parven表非顺序存取1万次,每次2页(一个索引页、一个数据页),总计2万个磁盘页,最后对vendor表非顺序存取1.5万次,合3万个磁盘页。可以看出在这个索引好的连接上花费的磁盘存取为5.04万次。

  实际上,我们可以通过使用临时表分3个步骤来提高查询效率:

  1.从parven表中按vendor_num的次序读数据:

  SELECT part_num,vendor_num,price

  FROM parven

  ORDER BY vendor_num

  INTO temp pv_by_vn

  这个语句顺序读parven(50页),写一个临时表(50页),并排序。假定排序的开销为200页,总共是300页。

  2.把临时表和vendor表连接,把结果输出到一个临时表,并按part_num排序:

  SELECT pv_by_vn,* vendor.vendor_num

  FROM pv_by_vn,vendor

  WHERE pv_by_vn.vendor_num=vendor.vendor_num

  ORDER BY pv_by_vn.part_num

  INTO TMP pvvn_by_pn

  DROP TABLE pv_by_vn

  这个查询读取pv_by_vn(50页),它通过索引存取vendor表1.5万次,但由于按vendor_num次序排列,实际上只是通过索引顺序地读vendor表(40+2=42页),输出的表每页约95行,共160页。写并存取这些页引发5*160=800次的读写,索引共读写892页。

  3.把输出和part连接得到最后的结果:

  SELECT pvvn_by_pn.*,part.part_desc

  FROM pvvn_by_pn,part

  WHERE pvvn_by_pn.part_num=part.part_num

  DROP TABLE pvvn_by_pn

  这样,查询顺序地读pvvn_by_pn(160页),通过索引读part表1.5万次,由于建有索引,所以实际上进行1772次磁盘读写,优化比例为30∶1。笔者在Informix Dynamic

  Sever上做同样的实验,发现在时间耗费上的优化比例为5∶1(如果增加数据量,比例可能会更大)。

  小结

  20%的代码用去了80%的时间,这是程序设计中的一个着名定律,在数据库应用程序中也同样如此。我们的优化要抓住关键问题,对于数据库应用程序来说,重点在于SQL的执行效率。查询优化的重点环节是使得数据库服务器少从磁盘中读数据以及顺序读页而不是非顺序读页。

 

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

12306 So überprüfen Sie historische Ticketkaufdatensätze. So überprüfen Sie historische Ticketkaufdatensätze 12306 So überprüfen Sie historische Ticketkaufdatensätze. So überprüfen Sie historische Ticketkaufdatensätze Mar 28, 2024 pm 03:11 PM

Laden Sie die neueste Version der Ticketbuchungs-App 12306 herunter, mit der jeder sehr zufrieden ist. Es gibt viele Ticketquellen, die in der Software bereitgestellt werden -Namenauthentifizierung zum Online-Kauf von Tickets. Alle Benutzer können ganz einfach Reisetickets und Flugtickets kaufen und verschiedene Ermäßigungen genießen. Sie können auch im Voraus mit der Buchung beginnen, um Tickets zu erhalten. Damit können Sie mit einem Klick dorthin fahren, wo Sie möchten, und so das Reisen einfacher und bequemer gestalten Noch komfortabler: Der Herausgeber stellt die Details jetzt online dar. Bietet 12306 Benutzern die Möglichkeit, historische Ticketkaufaufzeichnungen einzusehen. 1. Öffnen Sie Railway 12306, klicken Sie unten rechts auf „Mein“ und dann auf „Meine Bestellung“. 2. Klicken Sie auf der Bestellseite auf „Bezahlt“. 3. Auf der kostenpflichtigen Seite

So überprüfen Sie Ihre akademischen Qualifikationen auf Xuexin.com So überprüfen Sie Ihre akademischen Qualifikationen auf Xuexin.com Mar 28, 2024 pm 04:31 PM

Wie kann ich meine akademischen Qualifikationen auf Xuexin.com überprüfen? Sie können Ihre akademischen Qualifikationen auf Xuexin.com überprüfen. Viele Benutzer wissen nicht, wie sie ihre akademischen Qualifikationen auf Xuexin.com überprüfen können Benutzer kommen vorbei und schauen sich um! Tutorial zur Nutzung von Xuexin.com: So überprüfen Sie Ihre akademischen Qualifikationen auf Xuexin.com 1. Zugang zu Xuexin.com: https://www.chsi.com.cn/ 2. Website-Abfrage: Schritt 1: Klicken Sie auf die Adresse von Xuexin.com Um die Startseite aufzurufen, klicken Sie oben auf [Bildungsabfrage]; Schritt 2: Klicken Sie auf der neuesten Webseite auf [Abfrage], wie durch den Pfeil in der Abbildung unten dargestellt. Schritt 3: Klicken Sie dann auf der neuen Seite auf [Anmelden bei akademischer Kreditdatei]. Schritt 4: Geben Sie auf der Anmeldeseite die Informationen ein und klicken Sie auf [Anmelden].

Zu welchem ​​Unternehmen gehört Blue Star Travel Yao? Zu welchem ​​Unternehmen gehört Blue Star Travel Yao? Mar 22, 2024 pm 03:41 PM

Blue Star Travel Yao steht nach der Veröffentlichung eines Werbevideos ganz oben auf der Liste. Viele Spieler sind sehr neugierig, von welchem ​​Unternehmen Blue Star Travel Yao stammt. Tatsächlich handelt es sich um ein neues Spiel des Shanghaier 2D-Herstellers Manjiu. Der folgende Herausgeber wird es Ihnen erklären. Hier ist die Einführung der Blue Star Yuanluyao Game Company. Kommen Sie und schauen Sie sich gemeinsam um. Von welchem ​​Unternehmen stammt Blue Star Travel Yao? Antwort: Es wurde von Manjiu Network ins Leben gerufen. 1. Zunächst einmal ist Blue Star Travel Yao ein Spiel von Manjus Big World RPG. Am 20. März wurde ein Werbevideo veröffentlicht. 2. Dieses Produkt erhält seine Versionsnummer im Oktober 2023. Die Marke und die Betriebseinheit des Spiels sind beide unter dem Namen eines Unternehmens mit dem Namen eingetragen. Letzteres wurde im Februar 2023 gegründet und auf der offiziellen Website ist zu sehen, dass sich der Hauptsitz in Singapur befindet. 3. Das zeigte das diesmal veröffentlichte 11-minütige Werbevideo

Vergleich der Ähnlichkeiten und Unterschiede zwischen MySQL und PL/SQL Vergleich der Ähnlichkeiten und Unterschiede zwischen MySQL und PL/SQL Mar 16, 2024 am 11:15 AM

MySQL und PL/SQL sind zwei unterschiedliche Datenbankverwaltungssysteme, die die Merkmale relationaler Datenbanken bzw. prozeduraler Sprachen darstellen. In diesem Artikel werden die Ähnlichkeiten und Unterschiede zwischen MySQL und PL/SQL anhand konkreter Codebeispiele zur Veranschaulichung verglichen. MySQL ist ein beliebtes relationales Datenbankverwaltungssystem, das Structured Query Language (SQL) zum Verwalten und Betreiben von Datenbanken verwendet. PL/SQL ist eine für Oracle-Datenbanken einzigartige prozedurale Sprache und wird zum Schreiben von Datenbankobjekten wie gespeicherten Prozeduren, Triggern und Funktionen verwendet. Dasselbe

Zu welchem ​​Unternehmen gehört die Hands-App? Zu welchem ​​Unternehmen gehört die Hands-App? Mar 13, 2024 am 11:10 AM

Hands-on ist eine brandneue Chat- und Dating-Software. Welches Unternehmen ist also die Hand-on-hand-App? Diese Software wurde von Tianjin Laifu Cultural Development Co., Ltd. erstellt. Sie können sie von der Xiaomi Mall und der Apple Mall herunterladen. Diese Einführung in das Unternehmen zur Erstellung von Hands-on-Apps kann Ihnen die spezifischen Methoden erläutern. Im Folgenden finden Sie eine detaillierte Einführung. Schauen Sie sich also um. Um welches Unternehmen handelt es sich bei der Qianshou-App? Antwort: Tianjin Laifu Cultural Development Co., Ltd. Detaillierte Beschreibung: Auf der offiziellen Software-Website https://www.qianshouapp.cn/ können Sie unten den Firmennamen sehen. Einführung in die Software: 1. Sie kann nach den Bedingungen filtern, die den Benutzern gefallen, und die benötigten Objekte schneller finden. 2. Es kann Benutzern helfen, schneller nach den benötigten Objekten zu suchen.

So überprüfen Sie das Aktivierungsdatum auf einem Apple-Mobiltelefon So überprüfen Sie das Aktivierungsdatum auf einem Apple-Mobiltelefon Mar 08, 2024 pm 04:07 PM

Wenn Sie das Aktivierungsdatum mit einem Apple-Mobiltelefon überprüfen möchten, überprüfen Sie es am besten anhand der Seriennummer im Mobiltelefon. Sie können es auch überprüfen, indem Sie die offizielle Website von Apple besuchen, es an einen Computer anschließen und einen Drittanbieter herunterladen Software eines Drittanbieters, um dies zu überprüfen. Wie kann ich das Aktivierungsdatum eines Apple-Mobiltelefons überprüfen? Antwort: Abfrage der Seriennummer, Abfrage der offiziellen Apple-Website, Abfrage der Software eines Drittanbieters 1. Der beste Weg für Benutzer ist, die Seriennummer ihres Mobiltelefons zu kennen Sie können die Seriennummer sehen, indem Sie „Einstellungen“, „Allgemein“, „Über dieses Gerät“ öffnen. 2. Anhand der Seriennummer können Sie nicht nur das Aktivierungsdatum Ihres Mobiltelefons ermitteln, sondern auch die Mobiltelefonversion, die Herkunft des Mobiltelefons, das Fabrikdatum des Mobiltelefons usw. überprüfen. 3. Benutzer besuchen die offizielle Website von Apple, um technischen Support zu finden, finden die Spalte „Service und Reparatur“ unten auf der Seite und überprüfen dort die iPhone-Aktivierungsinformationen. 4. Benutzer

Wie frage ich mit Oracle ab, ob eine Tabelle gesperrt ist? Wie frage ich mit Oracle ab, ob eine Tabelle gesperrt ist? Mar 06, 2024 am 11:54 AM

Titel: Wie kann ich mit Oracle abfragen, ob eine Tabelle gesperrt ist? In der Oracle-Datenbank bedeutet Tabellensperre, dass, wenn eine Transaktion einen Schreibvorgang für die Tabelle ausführt, andere Transaktionen blockiert werden, wenn sie Schreibvorgänge für die Tabelle ausführen oder strukturelle Änderungen an der Tabelle vornehmen möchten (z. B. Spalten hinzufügen, Zeilen löschen). , usw.). Im eigentlichen Entwicklungsprozess müssen wir häufig abfragen, ob die Tabelle gesperrt ist, um damit verbundene Probleme besser beheben und beheben zu können. In diesem Artikel wird erläutert, wie Sie mithilfe von Oracle-Anweisungen abfragen, ob eine Tabelle gesperrt ist, und es werden spezifische Codebeispiele aufgeführt. Um zu überprüfen, ob der Tisch gesperrt ist, haben wir

Entdecken Sie das Geheimnis des Unternehmens hinter dem Black Shark-Telefon Entdecken Sie das Geheimnis des Unternehmens hinter dem Black Shark-Telefon Mar 24, 2024 pm 10:15 PM

Als hochkarätiges Technologieunternehmen haben Black Shark-Mobiltelefone schon immer wegen ihrer leistungsstarken Leistung und ihrem ultimativen Spielerlebnis Aufmerksamkeit erregt. Über das Produkt selbst hinaus ist das Unternehmen hinter dem Black Shark jedoch von Geheimnissen umgeben. In diesem Artikel wird versucht, das Geheimnis des Unternehmens hinter dem Black Shark-Telefon aufzudecken und seine Entwicklungsgeschichte und Zukunftsaussichten zu untersuchen. Die Muttergesellschaft von Black Shark-Mobiltelefonen ist Beijing Black Shark Technology Co., Ltd., die 2017 gegründet wurde. Die Gründer des Unternehmens sind erfahrene Praktiker der Technologiebranche und hatten leitende Positionen in vielen namhaften Technologieunternehmen inne. Black Shark Technology hat es von Anfang an getan

See all articles