Inhaltsverzeichnis
面试题:谈谈如何优化MYSQL数据库查询,mysql数据库
Heim Backend-Entwicklung PHP-Tutorial 面试题:谈谈如何优化MYSQL数据库查询,mysql数据库_PHP教程

面试题:谈谈如何优化MYSQL数据库查询,mysql数据库_PHP教程

Jul 13, 2016 am 09:45 AM
mysql数据库

面试题:谈谈如何优化MYSQL数据库查询,mysql数据库

1、优化数据类型

  MySQL中数据类型有多种,如果你是一名DBA,正在按照优化的原则对数据类型进行严格的检查,但开发人员可能会选择他们认为最简单的方案,以加快编码速度,或者选择最明显的选择,因此,你可能面临的都不是最佳的选择,如果可能的话,你应该尝试以通用准则来改变这些决定。

  (1)避免使用NULL

  NULL对于大多数数据库都需要特殊处理,MySQL也不例外,它需要更多的代码,更多的检查和特殊的索引逻辑,有些开发人员完全没有意识到,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默认值。

  (2)仅可能使用更小的字段

  MySQL从磁盘读取数据后是存储到内存中的,然后使用cpu周期和磁盘I/O读取它,这意味着越小的数据类型占用的空间越小,从磁盘读或打包到内存的效率都更好,但也不要太过执着减小数据类型,要是以后应用程序发生什么变化就没有空间了。修改表将需要重构,间接地可能引起代码的改变,这是很头疼的问题,因此需要找到一个平衡点。

2、小心字符集转换

  客户端或应用程序使用的字符集可能和表本身的字符集不一样,这需要MySQL在运行过程中隐含地进行转换,此外,要确定字符集如UTF-8是否支持多字节字符,因此它们需要更多的存储空间。

3、优化count(my_col)和count(*)

  如果你使用MyISAM表,在没有where子句的情况下使用count(*)速度是很快的,因为行数量的统计是非常精确的,因此MySQL不会一行一行地去找,进而得出行数,如my_col列没有空值,那么和前面说的情况会一样,即count(my_col)速度也会很快。

  如果有where子句时使用count( ),基本上就无法进行更多优化了,在where子句中超出了明显的索引列,对于复杂的where子句,只有使用覆盖索引才有用。

  除了上面的建议外,你还可以使用汇总表,它们让你可以对表的内容保持更新,你可以使用触发器,或者应用程序逻辑保持汇总表总是最新状态,或者定期运行一个批处理作业保持填充最新的数据信息,如果你采用后者,你的信息将会非常接近,但不是精确的,依赖于批处理作业多久运行一次,这需要权衡应用程序对精确信息的需要,和保持数据更新的系统开销,要在这二者之间找到一个平衡点。

 

4、优化子查询

  遇到子查询时,MySQL查询优化引擎并不是总是最有效的,这就是为什么经常将子查询转换为连接查询的原因了,优化器已经能够正确处理连接查询了,当然要注意的一点是,确保连接表(第二个表)的连接列是有索引的,在第一个表上MySQL通常会相对于第二个表的查询子集进行一次全表扫描,这是嵌套循环算法的一部分。

  5、优化UNION

  在跨多个不同的数据库时使用UNION是一个有趣的优化方法,UNION从两个互不关联的表中返回数据,这就意味着不会出现重复的行,同时也必须对数据进行排序,我们知道排序是非常耗费资源的,特别是对大表的排序。

  UNION ALL可以大大加快速度,如果你已经知道你的数据不会包括重复行,或者你不在乎是否会出现重复的行,在这两种情况下使用UNION ALL更适合。此外,还可以在应用程序逻辑中采用某些方法避免出现重复的行,这样UNION ALL和UNION返回的结果都是一样的,但UNION ALL不会进行排序。

 

原文出自【比特网】:http://soft.chinabyte.com/database/254/11335754.shtml

 

相关阅读

mysql 的优化(如何查询mysql中执行效率低的sql语句)   

mysql 千万级数据库如何进行多张结构相同的表联合查询?如何优化或设置提高查询速度?

mysql数据库千万级别数据的查询优化和分页测试

mysql学习心得

优化Mysql数据库的8个方法

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1040157.htmlTechArticle面试题:谈谈如何优化MYSQL数据库查询,mysql数据库 1、优化数据类型 MySQL中数据类型有多种,如果你是一名DBA,正在按照优化的原则对数据...
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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

PHP-Entwicklungspraxis: Verwenden Sie PHPMailer, um E-Mails an Benutzer in der MySQL-Datenbank zu senden PHP-Entwicklungspraxis: Verwenden Sie PHPMailer, um E-Mails an Benutzer in der MySQL-Datenbank zu senden Aug 05, 2023 pm 06:21 PM

PHP-Entwicklungspraxis: Verwenden Sie PHPMailer, um E-Mails an Benutzer in der MySQL-Datenbank zu senden. Einführung: Beim Aufbau des modernen Internets ist E-Mail ein wichtiges Kommunikationswerkzeug. Ob Benutzerregistrierung, Passwort-Zurücksetzung oder Bestellbestätigung im E-Commerce – das Versenden von E-Mails ist eine wesentliche Funktion. In diesem Artikel wird erläutert, wie Sie mit PHPMailer E-Mails senden und die E-Mail-Informationen in der Benutzerinformationstabelle in der MySQL-Datenbank speichern. 1. Installieren Sie die PHPMailer-Bibliothek PHPMailer

Go-Sprache und MySQL-Datenbank: Wie trennt man heiße und kalte Daten? Go-Sprache und MySQL-Datenbank: Wie trennt man heiße und kalte Daten? Jun 18, 2023 am 08:26 AM

Da die Datenmenge immer weiter zunimmt, wird die Datenbankleistung zu einem immer wichtigeren Thema. Die Verarbeitung heißer und kalter Daten ist eine effektive Lösung, die heiße und kalte Daten trennen und so die Systemleistung und -effizienz verbessern kann. In diesem Artikel wird erläutert, wie Sie mithilfe der Go-Sprache und der MySQL-Datenbank heiße und kalte Daten trennen. 1. Was ist die Verarbeitung heißer und kalter Daten? Die Verarbeitung heißer und kalter Daten ist eine Möglichkeit, heiße und kalte Daten zu klassifizieren. Unter Hot Data versteht man Daten mit hoher Zugriffshäufigkeit und hohen Leistungsanforderungen

Wie verwende ich die MySQL-Datenbank für die Zeitreihenanalyse? Wie verwende ich die MySQL-Datenbank für die Zeitreihenanalyse? Jul 12, 2023 am 08:39 AM

Wie verwende ich die MySQL-Datenbank für die Zeitreihenanalyse? Zeitreihendaten beziehen sich auf eine Sammlung von Daten, die in zeitlicher Reihenfolge angeordnet sind und zeitliche Kontinuität und Korrelation aufweisen. Die Zeitreihenanalyse ist eine wichtige Datenanalysemethode, mit der zukünftige Trends vorhergesagt, zyklische Veränderungen entdeckt, Ausreißer erkannt usw. werden können. In diesem Artikel stellen wir Ihnen zusammen mit Codebeispielen vor, wie Sie eine MySQL-Datenbank für die Zeitreihenanalyse verwenden. Erstellen Sie eine Datentabelle. Zuerst müssen wir eine Datentabelle erstellen, um Zeitreihendaten zu speichern. Angenommen, wir möchten die Zahl analysieren

Inwieweit kann ich MySQL-Datenbankkenntnisse entwickeln, um erfolgreich eingesetzt zu werden? Inwieweit kann ich MySQL-Datenbankkenntnisse entwickeln, um erfolgreich eingesetzt zu werden? Sep 12, 2023 pm 06:42 PM

Inwieweit kann ich MySQL-Datenbankkenntnisse entwickeln, um erfolgreich eingesetzt zu werden? Mit der rasanten Entwicklung des Informationszeitalters sind Datenbankverwaltungssysteme zu einem unverzichtbaren und wichtigen Bestandteil in allen Lebensbereichen geworden. Als weit verbreitetes relationales Datenbankverwaltungssystem verfügt MySQL über ein breites Spektrum an Anwendungsfeldern und Einsatzmöglichkeiten. Inwieweit müssen also MySQL-Datenbankkenntnisse entwickelt werden, um erfolgreich eingesetzt zu werden? Zunächst einmal ist die Beherrschung der Grundprinzipien und Grundkenntnisse von MySQL die grundlegendste Voraussetzung. MySQL ist eine relationale Open-Source-Datenbankverwaltung

So führen Sie eine inkrementelle Datensicherung der MySQL-Datenbank mit der Go-Sprache durch So führen Sie eine inkrementelle Datensicherung der MySQL-Datenbank mit der Go-Sprache durch Jun 17, 2023 pm 02:28 PM

Mit zunehmender Datenmenge wird die Sicherung der Datenbank immer wichtiger. Für die MySQL-Datenbank können wir die Go-Sprache verwenden, um eine automatisierte inkrementelle Sicherung zu erreichen. In diesem Artikel wird kurz vorgestellt, wie Sie mithilfe der Go-Sprache eine inkrementelle Sicherung von MySQL-Datenbankdaten durchführen. 1. Installieren Sie die Go-Sprachumgebung. Zuerst müssen wir die Go-Sprachumgebung lokal installieren. Sie können auf der offiziellen Website das entsprechende Installationspaket herunterladen und installieren. 2. Installieren Sie die entsprechende Bibliothek. Die Go-Sprache bietet viele Bibliotheken von Drittanbietern für den Zugriff auf MySQL-Datenbanken, darunter die am häufigsten verwendeten

Wie verwende ich die MySQL-Datenbank für die Bildverarbeitung? Wie verwende ich die MySQL-Datenbank für die Bildverarbeitung? Jul 14, 2023 pm 12:21 PM

Wie verwende ich die MySQL-Datenbank für die Bildverarbeitung? MySQL ist ein leistungsstarkes relationales Datenbankverwaltungssystem, das nicht nur zum Speichern und Verwalten von Daten, sondern auch zur Bildverarbeitung verwendet werden kann. In diesem Artikel wird die Verwendung einer MySQL-Datenbank für die Bildverarbeitung vorgestellt und einige Codebeispiele bereitgestellt. Bevor Sie beginnen, stellen Sie sicher, dass Sie eine MySQL-Datenbank installiert haben und mit grundlegenden SQL-Anweisungen vertraut sind. Erstellen Sie eine Datenbanktabelle. Erstellen Sie zunächst eine neue Datenbanktabelle zum Speichern der Bilddaten. Der Aufbau der Tabelle kann wie folgt sein

MySQL-Datenbank und Go-Sprache: Wie führt man Daten-Caching durch? MySQL-Datenbank und Go-Sprache: Wie führt man Daten-Caching durch? Jun 17, 2023 am 10:05 AM

In den letzten Jahren erfreut sich die Go-Sprache bei Entwicklern immer größerer Beliebtheit und hat sich zu einer der bevorzugten Sprachen für die Entwicklung leistungsstarker Webanwendungen entwickelt. MySQL ist ebenfalls eine beliebte Datenbank, die weit verbreitet ist. Bei der Kombination dieser beiden Technologien ist Caching ein sehr wichtiger Teil. Im Folgenden wird erläutert, wie Sie mit der Go-Sprache den Cache der MySQL-Datenbank verwalten. Das Konzept des Cachings In Webanwendungen ist Caching eine mittlere Schicht, die erstellt wurde, um den Datenzugriff zu beschleunigen. Es wird hauptsächlich zum Speichern häufig angeforderter Daten verwendet

Wie stelle ich mithilfe der Go-Sprache eine zuverlässige MySQL-Datenbankverbindung her? Wie stelle ich mithilfe der Go-Sprache eine zuverlässige MySQL-Datenbankverbindung her? Jun 17, 2023 pm 07:18 PM

Aufgrund der großen Datenmengen, die gespeichert und verarbeitet werden müssen, ist MySQL zu einer der am häufigsten verwendeten relationalen Datenbanken in der Anwendungsentwicklung geworden. Die Go-Sprache erfreut sich bei Entwicklern aufgrund ihrer effizienten Parallelitätsverarbeitung und prägnanten Syntax immer größerer Beliebtheit. Dieser Artikel führt die Leser dazu, eine zuverlässige MySQL-Datenbankverbindung über die Go-Sprache zu implementieren, sodass Entwickler Daten effizienter abfragen und speichern können. 1. Mehrere Möglichkeiten für die Go-Sprache, eine Verbindung zur MySQL-Datenbank herzustellen. Normalerweise gibt es drei Möglichkeiten, eine Verbindung zur MySQL-Datenbank in der Go-Sprache herzustellen: 1. Bibliothek eines Drittanbieters

See all articles