一些能体现个人水平的SQL语句_MySQL
一些能体现个人水平的SQL语句
作为一名小小的开发人员,刚入门的时候觉得很难,过了一段时间之后,发现很简单,很快就可以搞定很bug了。然而这并不能说明你就已经很牛掰了,只能说,你不了解其他太多的东西。应该说,数据库有几个共同的命令,select , update , insert, replace, delete , truncate, drop,只要你学会了,你就感觉你可以为所欲为了。但是在这里,我要总结一些体现水平的语句,而这些东西恰好直接体现你个人的水平和经验问题。
1、show processlist : 查看mysql的进程情况,在网站很慢的时候,你应该要想到是不是有很多死的进程或者很耗时的进程,如果确实是这样,那你应该结束到一些。 kill 99 .
执行状态分析:
Sleep状态通常代表资源未释放,如果是通过连接池,sleep状态应该恒定在一定数量范围内,实战范例:因前端数据输出时(特别是输出到用户终端)未及时关闭数据库连接,导致因网络连接速度产生大量sleep连接,在网速出现异常时,数据库too many connections挂死 Waiting for net, reading from net, writing to net
偶尔出现无妨,如大量出现,迅速检查数据库到前端的网络连接状态和流量
案例:因外挂程序,内网数据库大量读取,内网使用的百兆交换迅速爆满,导致大量连接阻塞在waiting for net,数据库连接过多崩溃Locked状态,有更新操作锁定,通常使用innodb可以很好的减少locked状态的产生,但是切记,更新操作要正确使用索引,即便是低频次更新操作也不能疏忽。如上影响结果集范例所示。在myisam的时代,locked是很多高并发应用的噩梦。所以mysql官方也开始倾向于推荐innodb。
Copy to tmp table
索引及现有结构无法涵盖查询条件,才会建立一个临时表来满足查询要求,产生巨大的恐怖的i/o压力。很可怕的搜索语句会导致这样的情况,如果是数据分析,或者半夜的周期数据清理任务,偶尔出现,可以允许。频繁出现务必优化之。
Copy to tmp table通常与连表查询有关,建议逐渐习惯不使用连表查询。
实战范例:
u 某社区数据库阻塞,求救,经查,其服务器存在多个数据库应用和网站,其中一个不常用的小网站数据库产生了一个恐怖的copy to tmp table操作,导致整个硬盘i/o和cpu压力超载。Kill掉该操作一切恢复。
Sending data
Sending data并不是发送数据,别被这个名字所欺骗,这是从物理磁盘获取数据的进程,如果你的影响结果集较多,那么就需要从不同的磁盘碎片去抽取数据,偶尔出现该状态连接无碍。回到上面影响结果集的问题,一般而言,如果sending data连接过多,通常是某查询的影响结果集过大,也就是查询的索引项不够优化。
如果出现大量相似的SQL语句出现在show proesslist列表中,并且都处于sending data状态,优化查询索引,记住用影响结果集的思路去思考。
Storing result to query cache出现这种状态,如果频繁出现,使用setprofiling分析,如果存在资源开销在SQL整体开销的比例过大(即便是非常小的开销,看比例),则说明query cache碎片较多,使用flush query cache可即时清理,也可以做成定时任务
Query cache参数可适当酌情设置。
Freeing items
理论上这玩意不会出现很多。偶尔出现无碍,如果大量出现,内存,硬盘可能已经出现问题。比如硬盘满或损坏。
i/o压力过大时,也可能出现Free items执行时间较长的情况。
Sorting for 和Sending data类似,结果集过大,排序条件没有索引化,需要在内存里排序,甚至需要创建临时结构排序。
其他还有很多状态,遇到了,去查查资料。基本上我们遇到其他状态的阻塞较少,所以不关心
2、checksum 在逻辑备份时候前后是否可以用于验证数据一致性;
load data [local] infile $filename INTO TABLE table_name TERMINATED BY ',',从文件导入数据到数据库中。
指定Windows 路径名时,使用的是斜线而不是反斜线。如果要用反斜线,必须双写。
出于安全的原因,当读取位于服务器上的文本文件时,文件必须位于数据库目录下或者可以被所有用户读取。也就是说,当对服务器上的文件执行LOAD DATA INFILE 时,用户必须获得FILE 权限。
3、索引: 不必要的索引只会占用空间和时间,建立必要索引,唯一索引,主键索引。
4、联表操作:更新,updatetable1 t1 left join table2 t2 on t1.uid=t2.uid set t1.name=t2.name,t1.desc='xxxx' where t1.date='2015-10-11';删除:delete t1,t2,t3from table1 t1 left join table2 t2 on t1.uid=t2.uid inner join table3 t3 ont2.uid = t3.uid where t1.date='2015-10-11';事务:set@@autocommit=0;

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



1. Öffnen Sie zunächst die Unternehmenssoftware WeChat, die Sie auf Ihr Mobiltelefon heruntergeladen haben. Bei der Anmeldung stehen zwei Möglichkeiten zur Auswahl: Eine besteht darin, die WeChat-ID zu verwenden, die andere darin, eine Mobiltelefonnummer zu verwenden. 3. Zu diesem Zeitpunkt muss der Unternehmensadministrator Ihre Mobiltelefonnummer im Hintergrund hinzufügen. Anschließend identifiziert Enterprise WeChat das Unternehmen anhand Ihrer Mobiltelefonnummer. Zeigen Sie dann Ihr Unternehmen an und klicken Sie unten auf die Option „Unternehmen eingeben“. 4. Dann können Sie die Nutzung der Funktionen in der Software eingeben. Das Wichtigste ist, dass Ihre Mobiltelefonnummer vom Administrator zum Unternehmen hinzugefügt wird, sonst ist sie nicht verfügbar.

Viele Gamer sind sehr neugierig auf die Grafikkarte 3060 und möchten ein 3060-Display kaufen, wissen aber nicht, auf welchem Niveau sich die RTX 3060 befindet. Tatsächlich liegt diese Grafikkarte auch auf einem relativ Mainstream-Niveau. Was ist das Niveau der 3060-Grafikkarte: Antwort: Mainstream-Niveau. Diese RTX3060-Grafikkarte erfreut sich bei Spielern großer Beliebtheit und ist ebenfalls im Angebot. Sie verfügt über die einzigartigen Vorteile der RTX30-Serie und ist sehr kostengünstig. Spieler mit höheren Anforderungen an die Spielgrafik können sich für diese Grafikkarte entscheiden. Einführung zur 3060-Grafikkartenerweiterung: Bildrate: Sie wird von den meisten Spielern geliebt. Sie verfügt über einen großen Videospeicher von 12 GB und ist sehr beliebt. Mit 12 GB großem Videospeicher können AAA-Meisterwerke flüssig und ohne Verzögerung wiedergegeben werden, und die Bildrate kann sogar 60 erreichen. Preis-Leistungs-Verhältnis: it

Als neuer Star auf dem Mobiltelefonmarkt hat das Kirin 9000s in diesem Jahr viel Aufmerksamkeit auf sich gezogen. Da der Wettbewerb auf dem Smartphone-Markt immer härter wird, hat die Kirin-Serie als Flaggschiff-Prozessor von Huawei schon immer viel Aufmerksamkeit auf sich gezogen. Wie ist die Leistung und das Niveau des Kirin 9000 als neuester Prozessor? Im Folgenden wird der Kirin 9000 bewertet und seine Vor- und Nachteile unter verschiedenen Gesichtspunkten analysiert. Was zunächst die Leistung betrifft, wird der Kirin 9000s in einem fortschrittlichen 5-nm-Prozess hergestellt und integriert die neueste Co. von ARM

Mit der Entwicklung von Webanwendungen wurde die PHP-Sprache in großem Umfang in der Webentwicklung eingesetzt. In der PHP8.0-Version wurde eine neue Sprachfunktion eingeführt – die Multi-Catch-Anweisung. Was ist eine Multi-Catch-Anweisung? In früheren PHP-Versionen mussten Entwickler mehrere Catch-Anweisungen schreiben, um mehrere Ausnahmetypen zu behandeln. Der folgende Codeblock zeigt beispielsweise die Behandlung von zwei verschiedenen Ausnahmen: try{//Somecodethatmay

Horizontal scrollbare Abschnitte sind ein gängiges Webdesign-Muster, das zur Anzeige von Inhalten verwendet wird, die über die Breite des Ansichtsfensters hinausgehen. Dieses Designmuster ermöglicht Benutzern das horizontale Scrollen und bietet so eine einzigartige und ansprechende Möglichkeit, große Bilder, Galerien, Zeitleisten, Karten und andere Inhalte anzuzeigen. Dies wird durch die Verwendung von CSS-Eigenschaften wie overflow-x:auto oder overflow-x:scroll erreicht. Dies nutzt native Browserfunktionen für horizontales Scrollen und reagiert auf alle Geräte. Ermöglicht eine einfache Navigation und Erkundung von Inhalten. Es sind keine zusätzlichen Bibliotheken oder Plugins erforderlich. Der Algorithmus verwendet die Klasse „Container“, um Containerelemente zu definieren. Setzen Sie die Eigenschaft „overflow-x“ des Containers auf „auto“, um horizontales Scrollen zu ermöglichen. Container

Wie implementiert man die Anweisung zum Einfügen von Daten in MySQL? Bei der Verwendung einer MySQL-Datenbank ist das Einfügen von Daten ein sehr einfacher und häufiger Vorgang. Durch das Einfügen von Daten können neue Datensätze zu Datenbanktabellen hinzugefügt werden, um den Geschäftsbetrieb zu unterstützen. In diesem Artikel wird erläutert, wie Sie mit der INSERT-Anweisung in MySQL Dateneinfügungsvorgänge implementieren, und es werden spezifische Codebeispiele bereitgestellt. Die INSERT-Anweisung in MySQL wird verwendet, um neue Datensätze in die Datenbanktabelle einzufügen. Das grundlegende Syntaxformat lautet wie folgt: INSERTINTOt

Um Python von Grund auf zu lernen, müssen Sie zunächst die Arten von Flusskontrollanweisungen verstehen! Python ist eine einfache und leistungsstarke Programmiersprache, die in der Datenanalyse, künstlichen Intelligenz, Netzwerkentwicklung und verschiedenen Bereichen des wissenschaftlichen Rechnens weit verbreitet ist. Als Anfänger ist es sehr wichtig, grundlegende Flusskontrollanweisungen zu beherrschen, da sie die Grundlage für die Verwirklichung logischer Urteile und die Steuerung des Programmausführungsflusses bilden. In Python gibt es drei Haupttypen von Flusskontrollanweisungen: sequentielle Strukturen, bedingte Strukturen und Schleifenstrukturen. Im Folgenden werden diese drei Prozesssteuerungsanweisungen im Detail vorgestellt und die entsprechenden Angaben gegeben

Die Verwendung der try-Anweisung in C# erfordert spezifische Codebeispiele. C# ist eine objektorientierte Programmiersprache, in der die try-Anweisung eine Struktur zum Erfassen und Behandeln von Ausnahmen ist. Mit der try-Anweisung können wir Code schreiben, um eventuell auftretende Ausnahmen zu behandeln und so die Stabilität und Zuverlässigkeit des Programms zu verbessern. In diesem Artikel stellen wir die Verwendung der try-Anweisung in C# vor und stellen einige spezifische Codebeispiele bereit, um den Lesern das Verständnis zu erleichtern. In C# besteht die try-Anweisung aus try-Block, Catch-Block und optionalfina
