Heim Datenbank MySQL-Tutorial 高性能MySql进化论(三):ID(标示符)的选择_MySQL

高性能MySql进化论(三):ID(标示符)的选择_MySQL

Jun 01, 2016 pm 01:30 PM
影响 数据库表

bitsCN.com

高性能MySql进化论(三):ID(标示符)的选择

 

在设计数据库表结构的时候,通常情况下每张表结构都有一个字段作为ID,因为 ID会被用来做查询,JOIN,FK等操作,所以ID设计的好坏对性能的影响很大。

 

在为ID选择合适的类型的时候不仅需要考虑这种类型在数据库中存储所占用的空间,还需要考虑该类型在计算或者是值比较时的特性,例如BIT类型存储的时候是二进制的形式,而在数字计算的上下文时,会被转换成对应的十进制形式。

 

对ID进行JOIN操作或者是被用来作为其他表的FK时,涉及的字段类型要保持完全的一致,即使类型都是整数,Unsigned/Signed这样的微小细节也要保持一致,否则在性能方面可能会有意想不到的性能问题,这种问题往往又是难以被发现的。如果使用的Storage Engine 是InnoDB,则可以有效的防止关联字段类型不匹配的问题,如果类型不匹配则会抛出 异常“ERROR 1005 (HY000): Can’t createtable”(VARCHAR(10)和VARCHAR(20)会被认为类型是完全相同的)。

 

创建ID时,要遵守“尽量最小类型原则”(在满足以后需求变化的情况下,要选择占用存储空间最小的类型),例如 有一张存储全国省份的表,对于这张种需求而言,TINYINT比INT更适合作为ID的类型,虽然选用TINYINT只是节省了3个BYTE, 但是在进行JOIN操作或者是作为FK时,性能可能会有很大的提升。

 

实际的应用开发中,ID的类型往往是多样的,例如INT,VARCHAR是比较常用的两种类型,但是有些情况下也可以使用ENUM作为ID的类型,下面的内容分别对这几种类型进行描述

 

整数类型

因为整数类型是一种简单的类型,对比于字符串它的处理更简单速度更快,而且它还支持AUTO_INCREMENT特性,所以一般情况下它是作为ID的首选类型

 

字符串

因为MySQL处理字符串要比整数消耗更多的存储/内存空间,而且速度也相对较慢,所以应该尽量避免使用字符串作为ID的类型。

在无法避免字符串作为ID的类型时,往往会采用“随机值”的策略来生成ID的值,常用的方法包括UUID,MD5, SHA1.在这种情况下需要额外注意,因为随机生成的ID值可能会带来以下三个问题:

         (1)    在执行INSERT语句时意味着索引值会被任意写到索引表的不同位置,这种对于磁盘的随机访问行为,将会导致插入操作的变慢,

         (2)    在执行SELECT操作时,因为逻辑相关的索引也被会被任意写到索引表的不同位置,也会导致查询的变慢。

         (3)    对于数据库提供的CACHE机制而言,这种随机值的策略产生的影响也是比较大的。因为CACHE往往是基于“热区”的原理来实现的,比如说索引表中有100个索引,你执行了多次的查询的结果都是索引表中的20-30这部分的索引,那么 MySQL  Serve为了提高查询效率会把20-30这部分索引的值放到CACHE中,如果你又有一些查询的结果是在30-40 之间的,那么Server会对CACHE进行更新。如果是基于随机的索引,意味着“热区”的区间将会很大,这将导致CACHE的命中率受到影响,而且也会导致CACHE的不断刷新。

如果存储UUID 值,则应该移除“-”符号;或者更好的做法是,用UNHEX() 函数转换UUID 值为16 字节的数字,并且存储在一个BINARY(16) 列中。检索时可以通过HEX()函数来格式化为十六进制格式。

 

枚举

对于ID来说,EMUM 和SET 类型通常是一个糟糕的选择,尽管对某些只包含固定状态或者类型的静态“定义表”来说可能是没有问题的。ENUM 和SET 列适合存储固定信息,例如有序的状态、产品类型、人的性别。没有特殊需求,应该放弃这个选择

 

bitsCN.com
Erklärung dieser Website
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

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

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

VBOX_E_OBJECT_NOT_FOUND(0x80bb0001)VirtualBox-Fehler VBOX_E_OBJECT_NOT_FOUND(0x80bb0001)VirtualBox-Fehler Mar 24, 2024 am 09:51 AM

Wenn Sie versuchen, ein Disk-Image in VirtualBox zu öffnen, wird möglicherweise eine Fehlermeldung angezeigt, die darauf hinweist, dass die Festplatte nicht registriert werden kann. Dies geschieht normalerweise, wenn die VM-Disk-Image-Datei, die Sie öffnen möchten, dieselbe UUID wie eine andere virtuelle Disk-Image-Datei hat. In diesem Fall zeigt VirtualBox den Fehlercode VBOX_E_OBJECT_NOT_FOUND(0x80bb0001) an. Wenn dieser Fehler auftritt, machen Sie sich keine Sorgen, es gibt einige Lösungen, die Sie ausprobieren können. Zunächst können Sie versuchen, mit den Befehlszeilentools von VirtualBox die UUID der Disk-Image-Datei zu ändern, um Konflikte zu vermeiden. Sie können den Befehl „VBoxManageinternal“ ausführen

Wie effektiv ist der Empfang von Telefonanrufen im Flugzeugmodus? Wie effektiv ist der Empfang von Telefonanrufen im Flugzeugmodus? Feb 20, 2024 am 10:07 AM

Was passiert, wenn jemand im Flugzeugmodus anruft? Mobiltelefone sind zu einem unverzichtbaren Werkzeug im Leben der Menschen geworden. Es ist nicht nur ein Kommunikationsmittel, sondern auch eine Sammlung von Unterhaltungs-, Lern-, Arbeits- und anderen Funktionen. Mit der kontinuierlichen Weiterentwicklung und Verbesserung der Mobiltelefonfunktionen werden die Menschen immer abhängiger von Mobiltelefonen. Mit der Einführung des Flugmodus können Menschen ihre Telefone während des Fluges bequemer nutzen. Manche Menschen sind jedoch besorgt darüber, welche Auswirkungen die Anrufe anderer Personen im Flugmodus auf das Mobiltelefon oder den Benutzer haben werden. In diesem Artikel werden verschiedene Aspekte analysiert und diskutiert. Erste

Wie schalte ich die Kommentarfunktion auf TikTok aus? Was passiert nach dem Deaktivieren der Kommentarfunktion auf TikTok? Wie schalte ich die Kommentarfunktion auf TikTok aus? Was passiert nach dem Deaktivieren der Kommentarfunktion auf TikTok? Mar 23, 2024 pm 06:20 PM

Auf der Douyin-Plattform können Nutzer nicht nur ihre Lebensmomente teilen, sondern auch mit anderen Nutzern interagieren. Manchmal kann die Kommentarfunktion zu unangenehmen Erlebnissen führen, wie z. B. Online-Gewalt, böswilligen Kommentaren usw. Wie kann man also die Kommentarfunktion von TikTok deaktivieren? 1. Wie schalte ich die Kommentarfunktion von Douyin aus? 1. Melden Sie sich bei der Douyin-App an und geben Sie Ihre persönliche Homepage ein. 2. Klicken Sie unten rechts auf „I“, um das Einstellungsmenü aufzurufen. 3. Suchen Sie im Einstellungsmenü nach „Datenschutzeinstellungen“. 4. Klicken Sie auf „Datenschutzeinstellungen“, um die Benutzeroberfläche für Datenschutzeinstellungen aufzurufen. 5. Suchen Sie in der Benutzeroberfläche für Datenschutzeinstellungen nach „Kommentareinstellungen“. 6. Klicken Sie auf „Kommentareinstellungen“, um die Kommentareinstellungsoberfläche aufzurufen. 7. Suchen Sie in der Benutzeroberfläche für Kommentareinstellungen nach der Option „Kommentare schließen“. 8. Klicken Sie auf die Option „Kommentare schließen“, um abschließende Kommentare zu bestätigen.

Sicherheitslücken bei der Dateieinbindung in Java und ihre Auswirkungen Sicherheitslücken bei der Dateieinbindung in Java und ihre Auswirkungen Aug 08, 2023 am 10:30 AM

Java ist eine häufig verwendete Programmiersprache zur Entwicklung verschiedener Anwendungen. Allerdings weist Java, genau wie andere Programmiersprachen, Sicherheitslücken und Risiken auf. Eine der häufigsten Schwachstellen ist die Dateieinschluss-Schwachstelle (FileInclusionVulnerability). In diesem Artikel werden das Prinzip, die Auswirkungen und die Vermeidung dieser Schwachstelle untersucht. Schwachstellen bei der Dateieinbindung beziehen sich auf die dynamische Einführung oder Aufnahme anderer Dateien in das Programm, die eingeführten Dateien werden jedoch nicht vollständig überprüft und geschützt

Die Auswirkungen der Datenknappheit auf das Modelltraining Die Auswirkungen der Datenknappheit auf das Modelltraining Oct 08, 2023 pm 06:17 PM

Die Auswirkungen der Datenknappheit auf das Modelltraining erfordern spezifische Codebeispiele. In den Bereichen maschinelles Lernen und künstliche Intelligenz sind Daten eines der Kernelemente für das Training von Modellen. Ein Problem, mit dem wir in der Realität jedoch häufig konfrontiert sind, ist die Datenknappheit. Unter Datenknappheit versteht man die unzureichende Menge an Trainingsdaten oder das Fehlen annotierter Daten. In diesem Fall hat dies einen gewissen Einfluss auf das Modelltraining. Das Problem der Datenknappheit spiegelt sich hauptsächlich in den folgenden Aspekten wider: Überanpassung: Wenn die Menge an Trainingsdaten nicht ausreicht, ist das Modell anfällig für Überanpassung. Überanpassung bezieht sich auf eine übermäßige Anpassung des Modells an die Trainingsdaten.

Welche Probleme verursachen fehlerhafte Sektoren auf der Festplatte? Welche Probleme verursachen fehlerhafte Sektoren auf der Festplatte? Feb 18, 2024 am 10:07 AM

Fehlerhafte Sektoren auf einer Festplatte beziehen sich auf einen physischen Fehler der Festplatte, d. h. die Speichereinheit auf der Festplatte kann Daten nicht normal lesen oder schreiben. Die Auswirkungen fehlerhafter Sektoren auf die Festplatte sind sehr erheblich und können zu Datenverlust, Systemabsturz und verminderter Festplattenleistung führen. In diesem Artikel werden die Auswirkungen fehlerhafter Festplattensektoren und die damit verbundenen Lösungen ausführlich vorgestellt. Erstens können fehlerhafte Sektoren auf der Festplatte zu Datenverlust führen. Wenn ein Sektor auf einer Festplatte fehlerhafte Sektoren aufweist, können die Daten in diesem Sektor nicht gelesen werden, was dazu führt, dass die Datei beschädigt wird oder nicht mehr zugänglich ist. Diese Situation ist besonders schwerwiegend, wenn wichtige Dateien in dem Sektor gespeichert sind, in dem sich die fehlerhaften Sektoren befinden.

Welchen konkreten Einfluss haben Minenkarten auf das Spiel? Welchen konkreten Einfluss haben Minenkarten auf das Spiel? Jan 03, 2024 am 09:05 AM

Einige Benutzer denken vielleicht aus Kostengründen über den Kauf von Mining-Karten nach, aber einige Spieler sind besorgt über die Auswirkungen von Mining-Karten auf das Spielen. Werfen wir einen Blick auf die ausführliche Einführung unten. Welche Auswirkungen hat die Verwendung einer Mining-Karte zum Spielen? 1. Die Stabilität von Spielen mit einer Mining-Karte kann nicht garantiert werden, da die Lebensdauer der Mining-Karte sehr kurz ist und sie nach dem bloßen Spielen wahrscheinlich unbrauchbar wird. 2. Die Mining-Karte ist im Grunde eine kastrierte Version der Originalversion. Aufgrund langfristiger Abnutzung kann die Leistung in allen Aspekten schwach sein. 3. Auf diese Weise können Benutzer beim Spielen möglicherweise nicht alle Effekte des Spiels anzeigen. 4. Darüber hinaus altern die elektronischen Komponenten der Grafikkarte im Voraus, ganz zu schweigen davon, dass das Spielen auch die Grafikkarte verbraucht, sodass sie stärker entladen wird, was große Auswirkungen auf das Spiel hat. 5. Verwenden Sie im Allgemeinen Mining-Karten zum Spielen

Welche Auswirkungen haben Gehäuselecks auf den Computer? Welche Auswirkungen haben Gehäuselecks auf den Computer? Feb 22, 2024 pm 06:48 PM

Welche Auswirkungen haben Gehäuselecks auf Computer? Mit der kontinuierlichen Weiterentwicklung der Technologie sind Computer nach und nach zu einem unverzichtbaren Werkzeug im Leben der Menschen geworden, sie sind untrennbar mit der Nutzung von Computern verbunden. Doch während wir den Komfort genießen, den Computer mit sich bringen, müssen wir auch auf seine Sicherheit achten. Gehäuselecks sind ein potenzielles Problem, das, wenn es nicht rechtzeitig behoben wird, schwerwiegende Auswirkungen auf den Computer und den Benutzer haben kann. Erstens führt eine Gehäuseleckage zu Schäden an der Computerhardware. Das Motherboard, die Stromversorgung, die internen Schaltkreise und andere Komponenten des Computers befinden sich alle im Gehäuse

See all articles