一个单引号引发的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查询的时候还是不厌其烦的加上单引号吧,似乎那没有坏处。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment optimiser les performances de SQLServer et MySQL afin qu'ils puissent fonctionner au mieux ? Résumé : Dans les applications de bases de données actuelles, SQLServer et MySQL sont les deux systèmes de gestion de bases de données relationnelles (SGBDR) les plus courants et les plus populaires. À mesure que la quantité de données augmente et que les besoins des entreprises continuent d’évoluer, l’optimisation des performances des bases de données devient particulièrement importante. Cet article présentera quelques méthodes et techniques courantes pour optimiser les performances de SQLServer et MySQL afin d'aider les utilisateurs à tirer parti de

Je ne sais pas quels paramètres ont été modifiés aujourd'hui. Lorsque j'écrivais un programme dans vim, j'ai constaté que ni les guillemets simples ni les guillemets doubles ne pouvaient être saisis. L'effet des guillemets doubles est ¨¨, ce qui provoquera une erreur de programme ! La raison de ce problème est que la disposition du clavier ne correspond pas à la situation réelle et doit être modifiée. Solution aux guillemets simples/doubles qui ne peuvent pas être saisis : (Remarque : si votre bureau est en anglais, veuillez le traduire vous-même.) 1. Cliquez sur Système-->Sélectionner la gestion-->Sélectionner le clavier et remplacez American International par l'anglais américain. style! 2. Cliquez sur Système-->Sélectionner les préférences-->Sélectionner le clavier. Vérifiez si les paramètres sont cohérents avec l'image ci-dessous : Rouvrez ensuite l'outil vim et le problème devrait être résolu !

Dans la base de données MySQL, l'indexation est un moyen très important d'optimisation des performances. Lorsque la quantité de données dans la table augmente, des index inappropriés peuvent ralentir les requêtes ou même provoquer des pannes de base de données. Afin d'améliorer les performances des bases de données, les index doivent être utilisés de manière rationnelle lors de la conception des structures de tables et des instructions de requête. L'index composite est une technologie d'indexation plus avancée qui améliore l'efficacité des requêtes en combinant plusieurs champs sous forme d'index. Dans cet article, nous détaillerons comment améliorer les performances de MySQL en utilisant des index composites. Qu'est-ce que l'indice composite

En PHP, les guillemets simples et les guillemets doubles sont deux méthodes courantes d'encapsulage de chaîne, et ils ont des caractéristiques et des règles différentes lorsqu'ils sont utilisés. Cet article analysera respectivement les règles d'utilisation des guillemets simples et des guillemets doubles, et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre leurs différences. 1. Règles d'utilisation des guillemets simples : le contenu entre guillemets simples sera affiché tel quel et les variables ou les caractères d'échappement ne seront pas analysés. Cela signifie qu'entre guillemets simples, PHP reconnaît la chaîne comme une séquence ordinaire de caractères et ne fait rien avec le contenu. entre guillemets simples

Dans MySQL, le niveau d'isolation des transactions est un concept très important, qui détermine la manière dont la base de données gère l'accès simultané aux données lorsque plusieurs transactions sont exécutées en même temps. Dans les applications pratiques, nous devons choisir le niveau d'isolation approprié en fonction des besoins spécifiques de l'entreprise pour améliorer les performances de MySQL. Tout d’abord, nous devons comprendre les quatre niveaux d’isolation des transactions de MySQL : READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ et SERIALIZA.

MySQL est un système de gestion de bases de données relationnelles largement utilisé. En raison de ses hautes performances, de son évolutivité et de sa nature open source, il est devenu le premier choix de nombreuses entreprises et particuliers. Cependant, à mesure que la quantité de données et la complexité des données continuent d'augmenter, des problèmes de performances de MySQL commencent à apparaître. L’un des problèmes de performances importants est le temps de requête. Le temps de requête fait référence au temps nécessaire pour une requête MySQL. Plus le temps de requête est court, plus les performances de MySQL sont élevées et la capacité à traiter davantage de requêtes de requête. Pour résoudre ce problème, nous pouvons analyser le temps de requête

MySQL est un système de gestion de bases de données relationnelles open source largement utilisé. De bonnes performances sont cruciales lorsque l’on traite d’énormes volumes de données. Le cache d'index MyISAM est une fonctionnalité très importante de MySQL, qui peut considérablement améliorer la vitesse et les performances de lecture des données. Dans cet article, nous examinerons en profondeur le fonctionnement du cache d'index MyISAM et comment configurer et optimiser le cache d'index pour améliorer les performances de MySQL. Qu’est-ce que le cache d’index MyISAM ? MyISAM est un index de stockage dans MySQL

La cardinalité d'index a un impact significatif sur les performances de la requête MySQL. Des index de cardinalité élevés peuvent localiser les données plus rapidement et optimiser les requêtes; Des index de cardinalité faibles peuvent entraîner une numérisation complète de la table. Les performances de la requête peuvent être efficacement améliorées en mettant régulièrement à la mise à jour les statistiques, en sélectionnant le type d'index approprié, en évitant l'oudeur et en utilisant un sur-indice.
