一个单引号引发的MYSQL性能问题分析
刚刚我们说过了,生活中难免会有一些不如意,比如,我们用一个字符串类型的字段来作为主键,表面上,这太不如意了,然而,事实也证明这是有用的。
对于大型的系统而言,Oracle,SQLServer无疑是最好的选择,可看看现在越来越多的小网站,他们没有自己的服务器,只是买别人的空间和数据库,但这种小型的数据库在性能上当然和大型数据库没有对比性,但小型的数据库也要对自己的优化方式,今天和大家分享Mysql中加没加单引号的巨大区别,对于MYSQL性能优化很有意义。刚刚我们说过了,生活中难免会有一些不如意,比如,我们用一个字符串类型的字段来作为主键,表面上,这太不如意了,然而,事实也证明这是有用的。问题也就出来了,当在查询语句中对该字段值加上单引号和不加查询耗时相差百倍!
测试表:
代码如下:
CREATE TABLE `foo` ( `key` varchar(10) NOT NULL, `time` int(11) NOT NULL, PRIMARY KEY (`key`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;
然后插入30多万条数据,然后执行下面的SQL语句:
代码如下:
SELECT *FROM `foo`WHERE `key` =1293322797
查询花费 0.1288 秒,大约花费这么久的时间,然后,给1293322797加上单引号:
代码如下:
SELECT *FROM `foo`WHERE `key` ='1293322797'
查询花费 0.0009 秒,基本上相差100倍!!!也就是说不加单引号MYSQL性能损失了100倍,很震撼的比例!
后来用EXPLAIN分别跑了一下上面两条语句,见下面两张图:
没有单引号时
有单引号时
很明显,不使用单引号没有用上主索引,并进行了全表扫描,使用单引号就能使用上索引了。
后来我用大于分别进行了测试,返回的结果集相同,而他们的耗时和上面一样,用EXPLAIN测试,也和上面一样
代码如下:
SELECT *FROM `foo`WHERE `key` >1293322797SELECT *FROM `foo`WHERE `key` >'1293322797'
加单引号和不加单引号就是这么大的差别!就是会对mysql性能产生这么大的影响。
再后来,我将字段`key`换成INT类型,这时候,加不加单引号,就没有什么差别了,EXPLAIN显示他们都同样能够用上主索引,只是key_len变短了。
就是这些,综上所述,我们在写SQL查询的时候还是不厌其烦的加上单引号吧,似乎那没有坏处。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wie kann die Leistung von SQLServer und MySQL optimiert werden, damit sie ihre beste Leistung erbringen können? Zusammenfassung: In heutigen Datenbankanwendungen sind SQLServer und MySQL die beiden häufigsten und beliebtesten relationalen Datenbankverwaltungssysteme (RDBMS). Da die Datenmenge zunimmt und sich die Geschäftsanforderungen ständig ändern, ist die Optimierung der Datenbankleistung besonders wichtig geworden. In diesem Artikel werden einige gängige Methoden und Techniken zur Optimierung der Leistung von SQLServer und MySQL vorgestellt, damit Benutzer die Vorteile nutzen können

Ich weiß nicht, welche Einstellungen heute geändert wurden. Als ich ein Programm in vim schrieb, stellte ich fest, dass weder einfache noch doppelte Anführungszeichen eingegeben werden konnten. Die Wirkung doppelter Anführungszeichen ist ¨¨, was zu einem Programmfehler führt! Der Grund für dieses Problem liegt darin, dass das Tastaturlayout nicht der tatsächlichen Situation entspricht und geändert werden muss. Lösung für einfache/doppelte Anführungszeichen, die nicht eingegeben werden können: (Hinweis: Wenn Ihr Desktop auf Englisch ist, übersetzen Sie ihn bitte selbst.) 1. Klicken Sie auf „System“ -> „Verwaltung auswählen“ -> „Tastatur auswählen“ und ändern Sie „Amerikanisches International“ in „Amerikanisches Englisch“. Stil! 2. Klicken Sie auf System -> Einstellungen auswählen -> Tastatur auswählen. Überprüfen Sie, ob die Einstellungen mit dem Bild unten übereinstimmen: Öffnen Sie dann das vim-Tool erneut und das Problem sollte gelöst sein!

In der MySQL-Datenbank ist die Indizierung ein sehr wichtiges Mittel zur Leistungsoptimierung. Wenn die Datenmenge in der Tabelle zunimmt, können ungeeignete Indizes dazu führen, dass Abfragen langsamer werden oder sogar Datenbankabstürze verursachen. Um die Datenbankleistung zu verbessern, müssen Indizes beim Entwurf von Tabellenstrukturen und Abfrageanweisungen rational verwendet werden. Der zusammengesetzte Index ist eine fortschrittlichere Indizierungstechnologie, die die Abfrageeffizienz durch die Kombination mehrerer Felder als Indizes verbessert. In diesem Artikel erfahren Sie im Detail, wie Sie die MySQL-Leistung mithilfe zusammengesetzter Indizes verbessern können. Was ist ein zusammengesetzter Index?

In PHP sind einfache Anführungszeichen und doppelte Anführungszeichen zwei gängige Methoden zum Umschließen von Zeichenfolgen, und bei ihrer Verwendung weisen sie unterschiedliche Eigenschaften und Regeln auf. In diesem Artikel werden die Verwendungsregeln für einfache und doppelte Anführungszeichen analysiert und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, ihre Unterschiede besser zu verstehen. 1. Regeln für die Verwendung von einfachen Anführungszeichen: Der Inhalt in einfachen Anführungszeichen wird unverändert ausgegeben und die Variablen oder Escape-Zeichen werden nicht analysiert. Das bedeutet, dass PHP innerhalb einfacher Anführungszeichen die Zeichenfolge als gewöhnliche Zeichenfolge erkennt und nichts mit dem Inhalt unternimmt. innerhalb einfacher Anführungszeichen

In MySQL ist die Transaktionsisolationsstufe ein sehr wichtiges Konzept, das bestimmt, wie die Datenbank den gleichzeitigen Zugriff auf Daten handhabt, wenn mehrere Transaktionen gleichzeitig ausgeführt werden. In praktischen Anwendungen müssen wir die geeignete Isolationsstufe basierend auf den spezifischen Geschäftsanforderungen auswählen, um die Leistung von MySQL zu verbessern. Zunächst müssen wir die vier Transaktionsisolationsstufen von MySQL verstehen: READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ und SERIALIZA

MySQL ist ein weit verbreitetes relationales Open-Source-Datenbankverwaltungssystem. Beim Umgang mit großen Datenmengen ist eine gute Performance entscheidend. Der MyISAM-Index-Cache ist eine sehr wichtige Funktion von MySQL, die die Geschwindigkeit und Leistung des Datenlesens erheblich verbessern kann. In diesem Artikel befassen wir uns eingehend mit der Funktionsweise des MyISAM-Indexcaches und der Konfiguration und Optimierung des Indexcaches zur Verbesserung der MySQL-Leistung. Was ist der MyISAM-Index-Cache? MyISAM ist ein Speicherindex in MySQL

Jugendkardinalität hat erhebliche Auswirkungen auf die Leistung von MySQL -Abfragen. Hohe Kardinalitätsindizes können Daten schneller lokalisieren und Abfragen optimieren. Niedrige Kardinalitätsindizes können zu einem vollständigen Tischscannen führen. Die Abfrageleistung kann effektiv verbessert werden, indem die Statistiken regelmäßig aktualisiert, den entsprechenden Indextyp ausgewählt, Over-Index vermieden und über Index verwendet werden.

MySQL ist ein weit verbreitetes relationales Datenbankverwaltungssystem. Aufgrund seiner hohen Leistung, Skalierbarkeit und Open-Source-Natur ist es für viele Unternehmen und Einzelpersonen zur ersten Wahl geworden. Da jedoch die Datenmenge weiter zunimmt und die Komplexität der Daten immer weiter zunimmt, treten Leistungsprobleme bei MySQL auf. Eines der wichtigen Leistungsprobleme ist die Abfragezeit. Unter Abfragezeit versteht man die Zeit, die für eine MySQL-Abfrage benötigt wird. Je kürzer die Abfragezeit, desto höher ist die Leistung von MySQL und die Fähigkeit, mehr Abfrageanforderungen zu verarbeiten. Um dieses Problem zu lösen, können wir die Abfragezeit analysieren
