SQL优化索引的实操与功能
以下的文章主要介绍的是SQL优化索引问题,在一般的数据库中,用MySQLSQL优化索引来对相关数据库进行优化的使用率是相当高的。以下的文章主要是通过索引通常可以帮助我们解决大多数的SQL性能问题。 1. 索引的存储分类 MyISAM存储引擎的表的数据和索引时自动分
以下的文章主要介绍的是SQL优化索引问题,在一般的数据库中,用MySQLSQL优化索引来对相关数据库进行优化的使用率是相当高的。以下的文章主要是通过索引通常可以帮助我们解决大多数的SQL性能问题。
1. 索引的存储分类
MyISAM存储引擎的表的数据和索引时自动分开存储的,各自是独立的一个文件;InnoDB存储引擎的表的数据和索引时存储在同一表空间里面,但可以有多个文件组成。
MySQL中索引的存储类型目前只有两种(BTREE和HASH),具体和表的存储引擎相关;MyISAM和InnoDB存储引擎都只支持BTREE索引;MEMORY/HEAP存储引擎可以支持HASH和BTREE索引。
MySQL目前不支持函数索引,但是能对列的前面某一部分进行索引,例如name字段,可以以只取name的前4个字符进行MySQLSQL优化索引,这个特征可以大大缩小索引文件的大小。在设计表结构的时候也可以对文本列根据此特性进行灵活设计。例如
引用
<ol class="dp-xml"><li class="alt"><span><span>create index ind_company2_name on company2(name(4)) </span></span></li></ol>
2. MySQL如何使用索引
索引用于快速找出在某个列中有一特定值的行。对相关列使用索引时提高SELECT操作性能的最佳途径。
查询要使用索引最主要的条件是查询条件中需要使用索引关键字,如果是多列索引,那么只有查询条件使用了多列关
SQL优化索引问题
一般在数据中,很多朋友很喜欢用MySQLSQL优化索引来对数据库优化。通过索引通常可以帮助我们解决大多数的SQL性能问题。
1. 索引的存储分类
MyISAM存储引擎的表的数据和索引时自动分开存储的,各自是独立的一个文件;InnoDB存储引擎的表的数据和索引时存储在同一表空间里面,但可以有多个文件组成。
MySQL中索引的存储类型目前只有两种(BTREE和HASH),具体和表的存储引擎相关;MyISAM和InnoDB存储引擎都只支持BTREE索引;MEMORY/HEAP存储引擎可以支持HASH和BTREE索引。
MySQL目前不支持函数索引,但是能对列的前面某一部分进行索引,例如name字段,可以以只取name的前4个字符进行MySQLSQL优化索引,这个特征可以大大缩小索引文件的大小。在设计表结构的时候也可以对文本列根据此特性进行灵活设计。例如
引用
<ol class="dp-xml"><li class="alt"><span><span>create index ind_company2_name on company2(name(4)) </span></span></li></ol>
2. MySQL如何使用索引
索引用于快速找出在某个列中有一特定值的行。对相关列使用索引时提高SELECT操作性能的最佳途径。
查询要使用索引最主要的条件是查询条件中需要使用索引关键字,如果是多列索引,那么只有查询条件使用了多列关键字最左边的前缀时,才可以使用索引,否则将不能使用索引。
1. 使用索引
在MySQL中,下列几种情况下可能使用索引。
对于创建的多列索引,只要查询的条件中用到了最左边的列,MySQLSQL优化索引一般就会使用。
例如:
引用
我们首先按company_id ,Moneys的顺序创建一个复合索引
<ol class="dp-xml"><li class="alt"><span><span>create index ind_sales2_companyid_moneys on sales2(company_id,moneys) </span></span></li></ol>
如果按company_id进行表查询
引用
使用explain来分析下
<ol class="dp-xml"> <li class="alt"><span><span>explain select * from sales2 where </span><span class="attribute">company_id</span><span> =</span><span class="attribute-value">2000</span><span> \G; </span></span></li> <li> <span>explain select * from sales2 where </span><span class="attribute">moneys</span><span> = </span><span class="attribute-value">1</span><span>\G; </span> </li> </ol>
通过上面你可以发现即便where条件中不是用company_id 和 moneys的组合条件,索引仍然能用到,这就是索引的前缀特性。但是如果只按照moneys条件查询表,那么索引就不会被用到。
对于使用like的查询,后面如果是常量并且只有%号不在第一字符,MySQLSQL优化索引才能会被使用例如
引用
<ol class="dp-xml"> <li class="alt"><span><span>explain select * from company2 where name like "%3"\G; </span></span></li> <li><span>explain select * from company2 where name like "3%"\G; </span></li> </ol>
以上两句你可以认为是一样的。其实是不一样的。第一句其实没有用到索引,而第二句才能够利用到索引。另外如果like后面跟的是一个列的名字,那么索引也不会被使用。
如果对大是文本进行搜索,使用全文索引而不用使用like"%..%"
如果列名是索引,使用column_name is null 将使用索引如
查询name为nll的记录就用到了索引
引用
<ol class="dp-xml"><li class="alt"><span><span>explain select * from company2 where name is null \G; </span></span></li></ol>
2. 下面一些情况存在索引但不使用索引,你可能认为它会用,但是实际上它就是没用。
引用
1. 如果Mysql估计使用索引比全表扫描更慢,则不使用索引。
例如列key_part1均匀分布在1和100之间,下列查询中使用索引就不是很好
<ol class="dp-xml"><li class="alt"><span><span>select * from table_name where key_part1 </span><span class="tag">></span><span> 1 and key_part1 </span><span class="tag"><span> </span><span class="tag-name">90</span><span>; </span></span></span></li></ol>
2. 如果使用MEMORY/HEAP表并且where条件中不使用"="进行索引列,那么不会用到索引。heap表只有在" ="的条件下才会使用索引
3. 用or分割开的条件,如果or前的条件中的列有索引,而后面的列中没用索引,那么涉及的索引都不会被用到
4. 如果不是索引列的第一部分,那么也不会使用。
5. 如果like是以"%"开始
6. 如果列类型是字符串,那么一定记得在where条件中把字符常量值用引号引起来,否则即便这个列上有索引,Mysql也不会使用。因为MYSQL默认把输入的常量值进行转换以后才进行检索。
最后查看索引使用情况
如果索引正在工作,Handler_read_key的值将很高,这个值代表了一个行被MySQLSQL优化索引值读的次数,很低的值表明增加索引得到的性能改善不高,因为索引经常不被使用到。Handler_read_rnd_next的值高则说明查询运行低效,并且应该建立索引补救。
这个值的含义是在数据文件中读取下一行的请求数。如果正进行大量的表扫描,Handler_read_rnd_next的值较高,则通常说明表索引不正确或者写入的查询没有利用索引。
还记得怎么看Handler_read_rnd_next 吗? 使用
<ol class="dp-xml"><li class="alt"><span><span>show statuts like 'Handler_read_%'; </span></span></li></ol>
键字最左边的前缀时,才可以使用索引,否则将不能使用索引。
1. 使用索引
在MySQL中,下列几种情况下可能使用索引。
对于创建的多列索引,只要查询的条件中用到了最左边的列,MySQLSQL优化索引一般就会使用。
例如:
引用
我们首先按company_id ,Moneys的顺序创建一个复合索引
<ol class="dp-xml"><li class="alt"><span><span>create index ind_sales2_companyid_moneys on sales2(company_id,moneys) </span></span></li></ol>
如果按company_id进行表查询
引用
使用explain来分析下
<ol class="dp-xml"> <li class="alt"><span><span>explain select * from sales2 where </span><span class="attribute">company_id</span><span> =</span><span class="attribute-value">2000</span><span> \G; </span></span></li> <li> <span>explain select * from sales2 where </span><span class="attribute">moneys</span><span> = </span><span class="attribute-value">1</span><span>\G; </span> </li> </ol>
通过上面你可以发现即便where条件中不是用company_id 和 moneys的组合条件,索引仍然能用到,这就是索引的前缀特性。但是如果只按照moneys条件查询表,那么索引就不会被用到。
对于使用like的查询,后面如果是常量并且只有%号不在第一字符,MySQLSQL优化索引才能会被使用例如
引用
<ol class="dp-xml"> <li class="alt"><span><span>explain select * from company2 where name like "%3"\G; </span></span></li> <li><span>explain select * from company2 where name like "3%"\G; </span></li> </ol>
以上两句你可以认为是一样的。其实是不一样的。第一句其实没有用到索引,而第二句才能够利用到索引。另外如果like后面跟的是一个列的名字,那么索引也不会被使用。
如果对大是文本进行搜索,使用全文索引而不用使用like"%..%"
如果列名是索引,使用column_name is null 将使用索引如
查询name为nll的记录就用到了索引

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)

Sujets chauds

HQL et SQL sont comparés dans le framework Hibernate : HQL (1. Syntaxe orientée objet, 2. Requêtes indépendantes de la base de données, 3. Sécurité des types), tandis que SQL exploite directement la base de données (1. Normes indépendantes de la base de données, 2. Exécutable complexe requêtes et manipulation de données).

Les téléphones mobiles vivox100 et x100 sont des modèles représentatifs de la gamme de produits de téléphonie mobile de Vivo. Ils représentent respectivement les niveaux de technologie haut de gamme de Vivo à différentes périodes. Par conséquent, ces deux téléphones mobiles présentent certaines différences en termes de conception, de performances et de fonctions. Cet article procédera à une comparaison détaillée entre ces deux téléphones mobiles en termes de comparaison des performances et d'analyse des fonctions pour aider les consommateurs à mieux choisir le téléphone mobile qui leur convient. Tout d’abord, examinons la comparaison des performances entre les vivox100 et x100. vivox100s est équipé des dernières

PHP est un langage de script côté serveur largement utilisé dans le développement Web. Sa fonction principale est de générer du contenu Web dynamique. Lorsqu'il est combiné avec HTML, il peut créer des pages Web riches et colorées. PHP est puissant. Il peut effectuer diverses opérations de base de données, opérations sur les fichiers, traitement de formulaires et autres tâches, offrant ainsi une interactivité et des fonctionnalités puissantes pour les sites Web. Dans les articles suivants, nous explorerons plus en détail le rôle et les fonctions de PHP, avec des exemples de code détaillés. Tout d’abord, jetons un coup d’œil à une utilisation courante de PHP : la génération de pages Web dynamiques : P

« Comprendre VSCode : à quoi sert cet outil ? » 》En tant que programmeur, que vous soyez débutant ou développeur expérimenté, vous ne pouvez pas vous passer de l'utilisation d'outils d'édition de code. Parmi les nombreux outils d'édition, Visual Studio Code (VSCode en abrégé) est très populaire parmi les développeurs en tant qu'éditeur de code open source, léger et puissant. Alors, à quoi sert exactement VSCode ? Cet article approfondira les fonctions et les utilisations de VSCode et fournira des exemples de code spécifiques pour aider les lecteurs.

2024 est la première année des téléphones mobiles IA. De plus en plus de téléphones mobiles intègrent plusieurs fonctions IA. Grâce à la technologie intelligente IA, nos téléphones mobiles peuvent être utilisés plus efficacement et plus facilement. Récemment, la série Galaxy S24 lancée au début de l’année a encore une fois amélioré son expérience d’IA générative. Jetons un coup d’œil à l’introduction détaillée des fonctions ci-dessous. 1. Autonomisation profonde de l'IA générative. La série Samsung Galaxy S24 a apporté de nombreuses applications intelligentes grâce à l'autonomisation du Galaxy AI. Ces fonctions sont profondément intégrées à Samsung One UI6.1, permettant aux utilisateurs d'obtenir une expérience intelligente pratique à tout moment, de manière significative. améliorer les performances des téléphones mobiles. La fonction de recherche instantanée lancée par la série Galaxy S24 est l’un des points forts. Il suffit aux utilisateurs d’appuyer longuement.

La complexité temporelle mesure le temps d'exécution d'un algorithme par rapport à la taille de l'entrée. Les conseils pour réduire la complexité temporelle des programmes C++ incluent : le choix des conteneurs appropriés (tels que vecteur, liste) pour optimiser le stockage et la gestion des données. Utilisez des algorithmes efficaces tels que le tri rapide pour réduire le temps de calcul. Éliminez les opérations multiples pour réduire le double comptage. Utilisez des branches conditionnelles pour éviter les calculs inutiles. Optimisez la recherche linéaire en utilisant des algorithmes plus rapides tels que la recherche binaire.

Dogecoin est une crypto-monnaie créée sur la base de mèmes Internet, sans plafond d'approvisionnement fixe, avec des délais de transaction rapides, des frais de transaction faibles et une grande communauté de mèmes. Les utilisations incluent les petites transactions, les pourboires et les dons de bienfaisance. Cependant, son offre illimitée, la volatilité du marché et son statut de pièce de monnaie farfelue comportent également des risques et des inquiétudes. Qu’est-ce que Dogecoin ? Dogecoin est une crypto-monnaie créée à partir de mèmes et de blagues Internet. Origine et histoire : Dogecoin a été créé en décembre 2013 par deux ingénieurs logiciels, Billy Markus et Jackson Palmer. Inspiré du mème alors populaire « Doge », une photo comique représentant un Shiba Inu avec un anglais approximatif. Caractéristiques et avantages : Offre illimitée : contrairement à d’autres crypto-monnaies telles que Bitcoin

Quelle est la devise GateToken(GT) ? GT (GateToken) est l'actif natif de la chaîne GateChain et la devise officielle de la plateforme Gate.io. La valeur des pièces GT est étroitement liée au développement de l’écologie Gate.io et GateChain. Qu’est-ce que GateChain ? GateChain est née en 2018 et est une nouvelle génération de chaîne publique performante lancée par Gate.io. GateChain se concentre sur la protection de la sécurité des actifs en chaîne des utilisateurs et sur la fourniture de services de transaction décentralisés pratiques. L'objectif de GateChain est de créer un écosystème de stockage, de distribution et de transaction d'actifs numériques décentralisé, sécurisé et efficace au niveau de l'entreprise. Gatechain a l'original
