Heim Datenbank MySQL-Tutorial 数据库设计和查询的一些简单优化_MySQL

数据库设计和查询的一些简单优化_MySQL

Jun 01, 2016 pm 01:28 PM
数据库设计 网络 Material

bitsCN.com

  搜集了网络上的一些资料,关于数据库设计和和查询方面的简单优化,整理如下:

 

设计方面                                                                                                                                                                                                                       

1、设计表和表之间的关联,能够降低数据的冗余,保证了数据的完整性。但是多表之间的关联查询,却会降低性能,查询速度较低,尤其是数据量非常大的时候。2、增加数据冗余,会加快系统的响应时间,提高查询速度,但是如果冗余数据更新不及时,就会造成数据的不一致。3、所以对表之间的关联需要合理设计,关联的数据量是否非常大,查询是否频繁,关联的数据是否经常改变都需要考虑,以做出合理的数据冗余,保证数据的一致性,提高查询速度。4、最好不要用自增字段作为主键与其他表进行关联,这样不利于数据的迁移和数据的恢复,也不利于数据库的分区。5、表字段的长度不要设计过长,最好根据实际的长度选择字段类型,设置合适的长度,这样可以提高查询效率,建立索引的时候也可以降低资源的消耗。6、能够使用数字类型就尽量使用数字类型,数据库引擎在处理和连接时会逐个比较字符串中的每一个字符,而对于数字类型,只需要比较一次。7、不可变字符类型char查询快,但是耗存储空间;可变字符类型varchar查询相对慢一些但节省存储空间。在设计时可以灵活选择,如用户名、密码长度变化不大的字段可以用char,而对于评论等长度变化大的字段可以用varchar。
Nach dem Login kopieren

 

查询方面                                                                                                                                                                                                                        

1、在保证功能的基础上,尽可能减少对数据库的访问次数;尽量减少对表的访问行数;尽量最小化结果集。

2、用到几列就选择几列,不过多使用通配符

 

--少使用SELECT * FROM t_user;--用到几列选择几列SELECT username,password FROM t_user;
Nach dem Login kopieren

 

3、用到几行结果集就返回几行结果集,降低网络负担

SELECT username,password FROM t_user LIMIT 2;
Nach dem Login kopieren

4、尽量避免使用!=和操作符,否则查询用不到索引而会进行全表扫描

--尽量避免使用  和 !=SELECT * FROM t_user where username  'afei';SELECT * FROM t_user where username != 'afei';
Nach dem Login kopieren

 5、避免使用or来连接条件,否则查询用不到索引而会进行全表扫描

--尽量避免使用 ORSELECT * FROM t_user WHERE username = 'lihuai' OR username = 'afei';--可以使用 UNION ALL 代替SELECT * FROM t_user WHERE username = 'lihuai' UNION ALLSELECT * FROM t_user WHERE username = 'afei' 
Nach dem Login kopieren

6、尽量避免使用IN和NOT IN,否则查询用不到索引而会进行全表扫描

--在IN只有一个值时,还是可以用到索引mysql> explain SELECT * FROM t_user WHERE username IN ('lihuai') /G;*************************** 1. row ***************************           id: 1  select_type: SIMPLE        table: t_user         type: refpossible_keys: index_username          key: index_username      key_len: 18          ref: const         rows: 1        Extra: Using where1 row in set (0.00 sec)
Nach dem Login kopieren
--在IN中有两个以上的值时,无法再使用索引了SELECT * FROM t_user WHERE username IN ('lihuai','afei');
Nach dem Login kopieren
--尽量避免使用NOT INSELECT * FROM t_user WHERE username NOT IN ('lihuai','afei');
Nach dem Login kopieren

7、在模糊查询中,避免前端模糊,否则无法使用索引而会进行全表扫描

#--避免使用前端模糊查询SELECT * FROM t_user WHERE username LIKE '%lih%';SELECT * FROM t_user WHERE username LIKE '%lih'#--后端端模糊查询可以用到索引SELECT * FROM t_user WHERE username LIKE 'lih%'
Nach dem Login kopieren
mysql> explain SELECT * FROM t_user WHERE username LIKE 'lih%' /G;*************************** 1. row ***************************           id: 1  select_type: SIMPLE        table: t_user         type: rangepossible_keys: index_username          key: index_username      key_len: 18          ref: NULL         rows: 2        Extra: Using where1 row in set (0.00 sec)
Nach dem Login kopieren

8、避免对查询字段进行表达式和函数操作,否则无法使用索引而会进行全表扫描

#--避免对字段进行表达式操作SELECT * FROM t_user WHERE age/2 = 20;--可以改成这样SELECT * FROM t_user WHERE age = 20*2;#--避免对字段进行函数操作SELECT * FROM t_user WHERE SUBSTR(username,1,3) = 'lih';#--可以改成这样SELECT * FROM t_user WHERE username LIKE 'lih%';
Nach dem Login kopieren

9、很多时候可以使用EXISTS 替代 IN

--用INSELECT * FROM t_user t1 WHERE t1.username IN (SELECT t2.username FROM t_temp t2 WHERE t2.age=20);--用EXISTSSELECT * FROM t_user t1 WHERE EXISTS (SELECT 1 FROM t_temp t2 WHERE t1.username=t2.username AND t2.age=20);
Nach dem Login kopieren

两者的结果一样,但是EXISTS 的效率好于IN,EXISTS 不会产生大量锁定的表扫描

 

 

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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

So passen Sie die MTU-Größe unter Windows 11 an So passen Sie die MTU-Größe unter Windows 11 an Aug 25, 2023 am 11:21 AM

Wenn Sie unter Windows 11 plötzlich eine langsame Internetverbindung feststellen und alle Tricks ausprobiert haben, liegt das wahrscheinlich nicht an Ihrem Netzwerk, sondern an Ihrer maximalen Übertragungseinheit (MTU). Es können Probleme auftreten, wenn Ihr System Daten mit der falschen MTU-Größe sendet oder empfängt. In diesem Beitrag erfahren Sie, wie Sie die MTU-Größe unter Windows 11 ändern, um eine reibungslose und unterbrechungsfreie Internetverbindung zu gewährleisten. Was ist die Standard-MTU-Größe in Windows 11? Die standardmäßige MTU-Größe in Windows 11 beträgt 1500, was der maximal zulässige Wert ist. MTU steht für Maximum Transmission Unit. Dies ist die maximale Paketgröße, die im Netzwerk gesendet oder empfangen werden kann. jedes Support-Netzwerk

WLAN-Erweiterungsmodul ist gestoppt [Fix] WLAN-Erweiterungsmodul ist gestoppt [Fix] Feb 19, 2024 pm 02:18 PM

Wenn es ein Problem mit dem WLAN-Erweiterungsmodul Ihres Windows-Computers gibt, kann dies dazu führen, dass Sie nicht mehr mit dem Internet verbunden sind. Diese Situation ist oft frustrierend, aber glücklicherweise enthält dieser Artikel einige einfache Vorschläge, die Ihnen helfen können, dieses Problem zu lösen und Ihre drahtlose Verbindung wieder ordnungsgemäß funktionieren zu lassen. Behebung, dass das WLAN-Erweiterbarkeitsmodul nicht mehr funktioniert Wenn das WLAN-Erweiterbarkeitsmodul auf Ihrem Windows-Computer nicht mehr funktioniert, befolgen Sie diese Vorschläge, um das Problem zu beheben: Führen Sie die Netzwerk- und Internet-Fehlerbehebung aus, um drahtlose Netzwerkverbindungen zu deaktivieren und wieder zu aktivieren. Starten Sie den WLAN-Autokonfigurationsdienst neu. Ändern Sie die Energieoptionen. Ändern Erweiterte Energieeinstellungen Netzwerkadaptertreiber neu installieren Einige Netzwerkbefehle ausführen Schauen wir uns das nun im Detail an

So beheben Sie einen Win11-DNS-Serverfehler So beheben Sie einen Win11-DNS-Serverfehler Jan 10, 2024 pm 09:02 PM

Um auf das Internet zuzugreifen, müssen wir beim Herstellen einer Verbindung zum Internet das richtige DNS verwenden. Wenn wir die falschen DNS-Einstellungen verwenden, wird auf die gleiche Weise ein DNS-Serverfehler angezeigt. Zu diesem Zeitpunkt können wir versuchen, das Problem zu lösen, indem wir in den Netzwerkeinstellungen auswählen, ob DNS automatisch abgerufen werden soll Lösungen. So beheben Sie den Win11-Netzwerk-DNS-Serverfehler. Methode 1: DNS zurücksetzen 1. Klicken Sie zunächst in der Taskleiste auf „Start“, suchen Sie die Symbolschaltfläche „Einstellungen“ und klicken Sie darauf. 2. Klicken Sie dann in der linken Spalte auf den Optionsbefehl „Netzwerk & Internet“. 3. Suchen Sie dann rechts die Option „Ethernet“ und klicken Sie zur Eingabe. 4. Klicken Sie anschließend in der DNS-Serverzuweisung auf „Bearbeiten“ und stellen Sie schließlich DNS auf „Automatisch (D.)“ ein

Beheben Sie „fehlgeschlagene Netzwerkfehler'-Downloads auf Chrome, Google Drive und Fotos! Beheben Sie „fehlgeschlagene Netzwerkfehler'-Downloads auf Chrome, Google Drive und Fotos! Oct 27, 2023 pm 11:13 PM

Was ist das Problem „Download aufgrund eines Netzwerkfehlers fehlgeschlagen“? Bevor wir uns mit den Lösungen befassen, wollen wir zunächst verstehen, was das Problem „Netzwerkfehler-Download fehlgeschlagen“ bedeutet. Dieser Fehler tritt normalerweise auf, wenn die Netzwerkverbindung während des Downloads unterbrochen wird. Dies kann verschiedene Gründe haben, wie z. B. eine schwache Internetverbindung, Netzwerküberlastung oder Serverprobleme. Wenn dieser Fehler auftritt, wird der Download gestoppt und eine Fehlermeldung angezeigt. Wie kann ein fehlgeschlagener Download mit Netzwerkfehler behoben werden? Die Meldung „Netzwerkfehler beim Herunterladen fehlgeschlagen“ kann beim Zugriff auf oder beim Herunterladen erforderlicher Dateien zu einem Hindernis werden. Unabhängig davon, ob Sie Browser wie Chrome oder Plattformen wie Google Drive und Google Fotos verwenden, wird dieser Fehler auftreten und Unannehmlichkeiten verursachen. Nachfolgend finden Sie Punkte, die Ihnen bei der Navigation und Lösung dieses Problems helfen sollen

Fix: WD My Cloud wird unter Windows 11 nicht im Netzwerk angezeigt Fix: WD My Cloud wird unter Windows 11 nicht im Netzwerk angezeigt Oct 02, 2023 pm 11:21 PM

Wenn WDMyCloud unter Windows 11 nicht im Netzwerk angezeigt wird, kann dies ein großes Problem sein, insbesondere wenn Sie Backups oder andere wichtige Dateien darin speichern. Dies kann ein großes Problem für Benutzer sein, die häufig auf Netzwerkspeicher zugreifen müssen. In der heutigen Anleitung zeigen wir Ihnen daher, wie Sie dieses Problem dauerhaft beheben können. Warum wird WDMyCloud nicht im Windows 11-Netzwerk angezeigt? Ihr MyCloud-Gerät, Ihr Netzwerkadapter oder Ihre Internetverbindung sind nicht richtig konfiguriert. Die SMB-Funktion ist nicht auf dem Computer installiert. Dieses Problem kann manchmal durch einen vorübergehenden Fehler in Winsock verursacht werden. Was soll ich tun, wenn meine Cloud nicht im Netzwerk angezeigt wird? Bevor wir mit der Behebung des Problems beginnen, können Sie einige Vorprüfungen durchführen:

Was soll ich tun, wenn die Erde in der unteren rechten Ecke von Windows 10 angezeigt wird, wenn ich nicht auf das Internet zugreifen kann? Verschiedene Lösungen für das Problem, dass die Erde in Win10 nicht auf das Internet zugreifen kann Was soll ich tun, wenn die Erde in der unteren rechten Ecke von Windows 10 angezeigt wird, wenn ich nicht auf das Internet zugreifen kann? Verschiedene Lösungen für das Problem, dass die Erde in Win10 nicht auf das Internet zugreifen kann Feb 29, 2024 am 09:52 AM

In diesem Artikel wird die Lösung für das Problem vorgestellt, dass das Globussymbol im Win10-Systemnetzwerk angezeigt wird, aber nicht auf das Internet zugreifen kann. Der Artikel enthält detaillierte Schritte, die den Lesern helfen sollen, das Problem des Win10-Netzwerks zu lösen, das zeigt, dass die Erde keinen Zugriff auf das Internet hat. Methode 1: Direkt neu starten. Überprüfen Sie zunächst, ob das Netzwerkkabel nicht richtig eingesteckt ist und ob das Breitband im Rückstand ist. In diesem Fall müssen Sie den Router oder das optische Modem neu starten. Wenn auf dem Computer keine wichtigen Dinge erledigt werden, können Sie den Computer direkt neu starten. Die meisten kleineren Probleme können durch einen Neustart des Computers schnell behoben werden. Wenn festgestellt wird, dass die Breitbandanbindung nicht im Rückstand ist und das Netzwerk normal ist, ist das eine andere Sache. Methode 2: 1. Drücken Sie die [Win]-Taste oder klicken Sie auf [Startmenü] in der unteren linken Ecke. Klicken Sie im sich öffnenden Menüelement auf das Zahnradsymbol über dem Netzschalter.

So aktivieren/deaktivieren Sie Wake on LAN in Windows 11 So aktivieren/deaktivieren Sie Wake on LAN in Windows 11 Sep 06, 2023 pm 02:49 PM

Wake on LAN ist eine Netzwerkfunktion unter Windows 11, mit der Sie Ihren Computer aus der Ferne aus dem Ruhezustand oder Energiesparmodus wecken können. Während gelegentliche Benutzer es nicht oft verwenden, ist diese Funktion für Netzwerkadministratoren und Poweruser nützlich, die kabelgebundene Netzwerke verwenden. Heute zeigen wir Ihnen, wie Sie sie einrichten. Woher weiß ich, ob mein Computer Wake on LAN unterstützt? Um diese Funktion nutzen zu können, benötigt Ihr Computer Folgendes: Der PC muss an ein ATX-Netzteil angeschlossen sein, damit Sie ihn aus der Ferne aus dem Ruhezustand wecken können. Zugriffskontrolllisten müssen erstellt und allen Routern im Netzwerk hinzugefügt werden. Die Netzwerkkarte muss die Wake-up-on-LAN-Funktion unterstützen. Damit diese Funktion funktioniert, müssen sich beide Computer im selben Netzwerk befinden. Obwohl die meisten Ethernet-Adapter verwenden

So überprüfen Sie die Details und den Status der Netzwerkverbindung unter Windows 11 So überprüfen Sie die Details und den Status der Netzwerkverbindung unter Windows 11 Sep 11, 2023 pm 02:17 PM

Um sicherzustellen, dass Ihre Netzwerkverbindung ordnungsgemäß funktioniert oder um das Problem zu beheben, müssen Sie manchmal die Netzwerkverbindungsdetails unter Windows 11 überprüfen. Auf diese Weise können Sie eine Vielzahl von Informationen anzeigen, darunter Ihre IP-Adresse, MAC-Adresse, Verbindungsgeschwindigkeit, Treiberversion und mehr. In dieser Anleitung zeigen wir Ihnen, wie das geht. Wie finde ich Netzwerkverbindungsdetails unter Windows 11? 1. Verwenden Sie die App „Einstellungen“ und drücken Sie die +-Taste, um die Windows-Einstellungen zu öffnen. Navigieren Sie als Nächstes im linken Bereich zu „Netzwerk & Internet“ und wählen Sie Ihren Netzwerktyp aus. In unserem Fall ist das Ethernet. Wenn Sie ein drahtloses Netzwerk verwenden, wählen Sie stattdessen ein Wi-Fi-Netzwerk aus. Am unteren Bildschirmrand sollten Sie Folgendes sehen:

See all articles