


Introduction aux stratégies d'optimisation des instructions SQL
1. Évitez l'analyse complète de la table
Pour optimiser la requête, essayez d'éviter l'analyse complète de la table. Tout d'abord, déterminez où et commandez par Créer. un index sur les colonnes concernées.
2. Évitez de juger les valeurs nulles
Essayez d'éviter de juger la valeur nulle des champs dans la clause Where, sinon le moteur abandonnera l'utilisation de l'index et effectuez l'analyse complète de la table, telle que :
select id from t where num is null
Vous pouvez définir la valeur par défaut 0 sur num, vous assurer qu'il n'y a pas de valeur nulle dans la colonne num de la table, puis interroger comme ceci :
select id from t where num=0
(Tutoriel vidéo d'apprentissage gratuit recommandé : Tutoriel vidéo mysql)
3. Évitez les jugements de valeur inégaux
<🎜. >doit être évité autant que possible dans la clause Where != ou l'opérateur <>, sinon le moteur abandonnera l'utilisation de l'index et effectuera une analyse complète de la table.
4. Évitez d'utiliser ou de logique
Vous devriez essayer d'éviter d'utiliser ou dans la clause Where pour connecter des conditions, sinon cela entraînera Le moteur abandonne l'utilisation de l'index et effectue une analyse complète de la table, telle que :select id from t where num=10 or num=20
select id from t where num=10 union all select id from t where num=20
5. Utiliser dans et non dans la logique avec prudence
in et not in doit également être utilisée avec prudence, sinon cela entraînera une analyse complète de la table, telle que :select id from t1 where num in(select id from t2 where id > 10)
select id from t1,(select id from t1 where id > 10)t2 where t1.id = t2.id
6. Faites attention aux requêtes floues
La requête suivante provoquera également une analyse complète de la table :select id from t where name like '%abc%'
7. Évitez les calculs de champs dans les conditions de requête
Vous devriez essayer d'éviter les opérations d'expression sur les champs de la clause Where, ce qui entraînera l'abandon du moteur d'utilisation de la clause Where. index. Analyse complète du tableau. Par exemple :select id from t where num/2=100
select id from t where num=100*2
8. Évitez d'effectuer des opérations de fonction sur les champs dans les conditions de requête
doit être évité autant autant que possible dans la clause Where Les opérations de fonction sont effectuées sur les champs du champ, ce qui amènera le moteur à abandonner l'utilisation de l'index et à effectuer une analyse complète de la table. Par exemple :select id from t where substring(name,1,3)='abc'--name 以abc 开头的id
select id from t where name like 'abc%'
9. Notez le point
10. Utilisation de l'index composite
Lors de l'utilisation d'un champ d'index comme condition, si l'index est un index composite, le premier champ de l'index doit être utilisé Ce n'est que lorsqu'il est utilisé comme condition que le système peut utiliser l'index, sinon l'index ne sera pas utilisé et l'ordre des champs doit être autant que possible cohérent avec l'ordre de l'index. 11. Ne définissez pas de requêtes irréprochables N'écrivez pas de requêtes dénuées de sens. Par exemple, si vous devez générer une structure de table vide :select col1,col2 into #t from t where 1=0
create table #t(...)
12 existe
select num from a where num in(select num from b)
select num from a where exists(select 1 from b where num=a.num)
13. L'index peut également échouer
并不是所有索引对查询都有效,SQL 是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL 查询可能不会去利用索引,如一表中有字段sex,male、female 几乎各一半,那么即使在sex 上建了索引也对查询效率起不了作用。
14、表格字段类型选择
尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。
这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。尽可能的使用varchar 代替char ,因为首先可变长度字段存储空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。
15、查询语法中的字段
任何地方都不要使用select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。
16、索引无关优化
不使用*、尽量不使用union,union all 等关键字、尽量不使用or 关键字、尽量使用等值判断。表连接建议不超过5 个。如果超过5 个,则考虑表格的设计。(互联网应用中)表连接方式使用外联优于内联。外连接有基础数据存在。
如:A left join B,基础数据是A。A inner join B,没有基础数据的,先使用笛卡尔积完成全连接,在根据连接条件得到内连接结果集。
大数据量级的表格做分页查询时,如果页码数量过大,则使用子查询配合完成分页逻辑。
Select * from table limit 1000000, 10 Select * from table where id in (select pk from table limit100000, 10)
相关文章教程推荐:mysql教程
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Sujets chauds





Oui, MySQL peut être installé sur Windows 7, et bien que Microsoft ait cessé de prendre en charge Windows 7, MySQL est toujours compatible avec lui. Cependant, les points suivants doivent être notés lors du processus d'installation: téléchargez le programme d'installation MySQL pour Windows. Sélectionnez la version appropriée de MySQL (communauté ou entreprise). Sélectionnez le répertoire d'installation et le jeu de caractères appropriés pendant le processus d'installation. Définissez le mot de passe de l'utilisateur racine et gardez-le correctement. Connectez-vous à la base de données pour les tests. Notez les problèmes de compatibilité et de sécurité sur Windows 7, et il est recommandé de passer à un système d'exploitation pris en charge.

Comment créer des tables à l'aide de instructions SQL dans SQL Server: Ouvrez SQL Server Management Studio et connectez-vous au serveur de base de données. Sélectionnez la base de données pour créer le tableau. Entrez l'instruction Créer la table pour spécifier le nom de la table, le nom de la colonne, le type de données et les contraintes. Cliquez sur le bouton Exécuter pour créer le tableau.

Les méthodes pour juger l'injection de SQL incluent: la détection des entrées suspectes, la visualisation des instructions SQL originales, l'utilisation d'outils de détection, la visualisation des journaux de la base de données et l'exécution des tests de pénétration. Une fois l'injection détectée, prenez des mesures pour corriger les vulnérabilités, vérifier les correctifs, surveiller régulièrement et améliorer la sensibilisation des développeurs.

Les méthodes pour vérifier les instructions SQL sont: Vérification de la syntaxe: utilisez l'éditeur SQL ou IDE. Vérification logique: vérifiez le nom de la table, le nom de la colonne, l'état et le type de données. Vérification des performances: utilisez Expliquez ou analysez pour vérifier les index et optimiser les requêtes. Autres vérifications: Vérifier les variables, les autorisations et les requêtes de test.

MySQL utilise des verrous partagés et des verrous exclusifs pour gérer la concurrence, fournissant trois types de verrouillage: verrous de table, verrous en ligne et verrous de page. Les verrous en ligne peuvent améliorer la concurrence et utiliser l'instruction pour la mise à jour pour ajouter des verrous exclusifs aux lignes. Les verrous pessimistes supposent des conflits et les verrous optimistes jugent les données via le numéro de version. Les problèmes de table de verrouillage communs se manifestent comme une requête lente, utilisez la commande show processList pour afficher les requêtes maintenues par la serrure. Les mesures d'optimisation incluent la sélection des indices appropriés, la réduction de la portée des transactions, les opérations par lots et l'optimisation des instructions SQL.

MySQL a une version communautaire gratuite et une version d'entreprise payante. La version communautaire peut être utilisée et modifiée gratuitement, mais le support est limité et convient aux applications avec des exigences de stabilité faibles et des capacités techniques solides. L'Enterprise Edition fournit une prise en charge commerciale complète pour les applications qui nécessitent une base de données stable, fiable et haute performance et disposées à payer pour le soutien. Les facteurs pris en compte lors du choix d'une version comprennent la criticité des applications, la budgétisation et les compétences techniques. Il n'y a pas d'option parfaite, seulement l'option la plus appropriée, et vous devez choisir soigneusement en fonction de la situation spécifique.

Cet article présente un tutoriel détaillé sur la jonction de trois tables à l'aide de instructions SQL, guidant les lecteurs pour apprendre à corréler efficacement les données dans différentes tables. Avec des exemples et des explications de syntaxe détaillées, cet article vous aidera à maîtriser les techniques de jonction des tables en SQL, afin que vous puissiez récupérer efficacement les informations associées de la base de données.

La récupération des lignes supprimées directement de la base de données est généralement impossible à moins qu'il n'y ait un mécanisme de sauvegarde ou de retour en arrière. Point clé: Rollback de la transaction: Exécutez Rollback avant que la transaction ne s'engage à récupérer les données. Sauvegarde: la sauvegarde régulière de la base de données peut être utilisée pour restaurer rapidement les données. Instantané de la base de données: vous pouvez créer une copie en lecture seule de la base de données et restaurer les données après la suppression des données accidentellement. Utilisez la déclaration de suppression avec prudence: vérifiez soigneusement les conditions pour éviter la suppression accidentelle de données. Utilisez la clause WHERE: Spécifiez explicitement les données à supprimer. Utilisez l'environnement de test: testez avant d'effectuer une opération de suppression.
