suchen
HeimDatenbankMySQL-Tutorial辛星让mysql跑得更快第二节之索引上部分_MySQL

如果把我们的数据库信息当做一本书或者一个字典,那么索引可以理解为它的目录,如果我们创建一个优秀的目录,那么我们检索信息就会快得多,如果我们创建一个渣渣索引,也有可能拖垮整个系统。

索引我们分为四类,通常分为四大类型,即主键索引、全文索引、唯一索引、普通索引,这是按照索引的类型来分的。所谓主键索引,那就是当我们创建一张表的时候,如果我们指定了一个主键,那么它就自动成为主键索引,比如SQL语句如下(这里的id就自动成为了主键索引):

create table xin(id int unsigned primary key auto_increment,
		name   varchar(32) not null default '');

一般来说,对于普通索引,我们可以在创建表的时候指定索引,也可以在创建表的时候指定索引,下面我们以县创建表然后再添加索引为例,看代码:

#创建一个数据表
create table xin(id int unsigned,
	name   varchar(32) not null default '');

#在该表上创建一个索引
create index xiaohei  on xin(id);
这里说一下把,这里的添加索引的格式是:create index 索引名 on 表名(列名);

然后说一下全文索引,所谓全文索引,主要是从数据库中搜索字符串信息的,比如我们逛很多论坛,它的搜索功能就特别需要全文索引了,我们的全文索引主要针对文件、文本的索引,而且目前来说,全文索引依然只对引擎MyIASM有效,咱们指定一下表的引擎就可以了,看下面代码:

#创建一个文章表,并且设置索引
create table article(id int primary key,
	title varchar(200) not null ,
	body  text,
	fulltext(title,body)
) engine = myisam ;
那么我们使用该全文索引的时候应该使用使用match和against,看下面操作:
#按照这种方式我们可以快速的使用全文索引来查找内容
select * from article where match(title,body)  against ('xin');
但是mysql自带的这个全文索引并不支持中文,我们可以考虑使用sphinx来支持中文,这里先不介绍。

对于unique索引,也就是唯一索引,我们直接在在列级完整性约束后面加一个unique即可,这里需要注意的是被unique修饰的字段是可以为空的,而且是可以有多个为空的,当然也可以像创建一个普通index那样去创建,但是此时的index必须在前面加上一个unique修饰符。

对于索引的删除,可以使用【alter table 表名 drop index 索引名】,但是我感觉我们使用【drop index 索引名 on 表名】更好一些。

那么我们怎么看一个表的索引呢,我们可以用【desc 表名】的方式来查看索引,我们还可以使用【show index from 表名】或者【show index from 表名】来查看一个表的索引。

Stellungnahme
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
Wie geht MySQL im Vergleich zu anderen RDBMs mit Parallelität um?Wie geht MySQL im Vergleich zu anderen RDBMs mit Parallelität um?Apr 29, 2025 am 12:44 AM

MySQLhandlesconcurrencyusingamixofrow-levelandtable-levellocking,primarilythroughInnoDB'srow-levellocking.ComparedtootherRDBMS,MySQL'sapproachisefficientformanyusecasesbutmayfacechallengeswithdeadlocksandlacksadvancedfeatureslikePostgreSQL'sSerializa

Wie behandelt MySQL Transaktionen im Vergleich zu anderen relationalen Datenbanken?Wie behandelt MySQL Transaktionen im Vergleich zu anderen relationalen Datenbanken?Apr 29, 2025 am 12:37 AM

MysqlHandLestransactionSeffektivtheInodbengine, unterstützend propertiessimilartopostgresqlandoracle.1) MysqlusesRepeAtReadastHeDeFaultISolationLevel, was kanbeadToreadcommittforhigh-Trafficcenarios.2) itopeTiPeTePectoreToRectcommittforhighscenarios.2) itopeTIPIPIPIPIPIPIPIMISCHISCHISCHISHEPERFORMERCREPHIPUTION.

Was sind die Datentypen in MySQL verfügbar?Was sind die Datentypen in MySQL verfügbar?Apr 29, 2025 am 12:28 AM

MySQL -Datentypen sind in numerische, Datum und Uhrzeit-, String-, Binär- und Räumtypen unterteilt. Durch die Auswahl des richtigen Typs können Sie die Datenbankleistung und die Datenspeicherung optimieren.

Was sind einige Best Practices für das Schreiben effizienter SQL -Abfragen in MySQL?Was sind einige Best Practices für das Schreiben effizienter SQL -Abfragen in MySQL?Apr 29, 2025 am 12:24 AM

Zu den Best Practices gehören: 1) Verständnis der Datenstruktur und der MySQL -Verarbeitungsmethoden, 2) geeignete Indizierung, 3) Auswahl*, 4) Verwenden geeigneter Join -Typen, 5) Unterabfragen mit Vorsicht verwenden, 6) Analyse von Abfragen mit Erklärung, 7) Die Auswirkungen von Abfragen auf Serverressourcen betrachten, 8) die Datenbank regelmäßig beibehalten. Diese Praktiken können MySQL -Abfragen nicht nur schnell, sondern auch Wartbarkeit, Skalierbarkeit und Ressourceneffizienz machen.

Wie unterscheidet sich MySQL von PostgreSQL?Wie unterscheidet sich MySQL von PostgreSQL?Apr 29, 2025 am 12:23 AM

MySQLisbetterforspeedandsimplicity,suitableforwebapplications;PostgreSQLexcelsincomplexdatascenarioswithrobustfeatures.MySQLisidealforquickprojectsandread-heavytasks,whilePostgreSQLispreferredforapplicationsrequiringstrictdataintegrityandadvancedSQLf

Wie geht MySQL mit der Datenreplikation um?Wie geht MySQL mit der Datenreplikation um?Apr 28, 2025 am 12:25 AM

MySQL verarbeitet die Datenreplikation durch drei Modi: Asynchron, halbsynchron und Gruppenreplikation. 1) Die asynchrone Replikationsleistung ist hoch, die Daten können jedoch verloren gehen. 2) Die halbsynchrone Replikation verbessert die Datensicherheit, erhöht jedoch die Latenz. 3) Die Gruppenreplikation unterstützt die Replikation und das Failover mit mehreren Master, die für Anforderungen an hoher Verfügbarkeit geeignet sind.

Wie können Sie die Erklärungserklärung verwenden, um die Abfrageleistung zu analysieren?Wie können Sie die Erklärungserklärung verwenden, um die Abfrageleistung zu analysieren?Apr 28, 2025 am 12:24 AM

Die Erklärungserklärung kann verwendet werden, um die SQL -Abfrageleistung zu analysieren und zu verbessern. 1. Führen Sie die Erklärung zur Erklärung aus, um den Abfrageplan anzuzeigen. 2. Analysieren Sie die Ausgabeergebnisse, achten Sie auf den Zugriffstyp, die Indexverwendung und den Verbindung der Reihenfolge. 3. Erstellen oder passen Sie die Indizes anhand der Analyseergebnisse an, optimieren Sie die Join -Operationen und vermeiden Sie die volle Tabellen -Scan, um die Effizienz der Abfrage zu verbessern.

Wie können Sie eine MySQL -Datenbank wiederherstellen und wiederherstellen?Wie können Sie eine MySQL -Datenbank wiederherstellen und wiederherstellen?Apr 28, 2025 am 12:23 AM

Die Verwendung von MySQldump für logische Sicherungen und MySQLenterPriseBackups für Hot Backup ist effektive Möglichkeiten, um MySQL -Datenbanken zu sichern. 1. Verwenden Sie MySQldump, um die Datenbank zu sichern: mysqldump-uroot-pmydatabase> mydatabase_backup.sql. 2. Verwenden Sie MySQLenterPriseBackup für Hot Backup: Mysqlbackup-User = Root-Password = Passwort-Backup-Dir =/path/to/backupbackup. Verwenden Sie bei der Wiederherstellung das entsprechende Leben

See all articles

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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor