Home » Best Choice access variable in abfrage New Update

Best Choice access variable in abfrage New Update

by Tratamien Torosace

You are viewing this post: Best Choice access variable in abfrage New Update

Siehe Thema access variable in abfrage


Table of Contents

Form.Refresh-Methode (Access) | Microsoft Docs New

06.01.2021 · expression Eine Variable, die ein Form-Objekt darstellt. Rückgabewert. Nichts. Bemerkungen . Das Verwenden der Methode Refresh entspricht dem Auswählen von Aktualisieren auf der Registerkarte Startseite. Microsoft Access aktualisiert Datensätze automatisch, basierend auf der Einstellung Aktualisierungsintervall auf der Registerkarte …

+ ausführliche Artikel hier sehen

Read more

Inhaltsverzeichnis

Form.Refresh-Methode (Zugriff)

Artikel

01.06.2021

2 Minuten Lesezeit

2 Mitwirkende Ist diese Seite hilfreich? Ja Nein Haben Sie weiteres Feedback für uns? Feedback wird an Microsoft gesendet: Wenn Sie auf die Schaltfläche „Senden“ klicken, wird Ihr Feedback zur Verbesserung von Microsoft-Produkten und -Diensten verwendet

Datenschutzrichtlinie Absenden Vielen Dank.

In diesem Artikel

Die Refresh-Methode aktualisiert sofort die Datensätze in der zugrunde liegenden Datensatzquelle für ein bestimmtes Formular oder Datenblatt, um Änderungen widerzuspiegeln, die Sie oder andere Benutzer in einer Mehrbenutzerumgebung an den Daten vorgenommen haben

Syntax

Ausdruck

Aktualisierung

Ausdruck Eine Variable, die ein Form-Objekt darstellt

Rückgabewert

Gar nichts

Bemerkungen

Die Verwendung der Methode „Aktualisieren“ entspricht der Auswahl von „Aktualisieren“ auf der Registerkarte „Startseite“

Microsoft Access aktualisiert Datensätze automatisch basierend auf der Einstellung „Aktualisierungsintervall“ auf der Registerkarte „Erweitert“ des Dialogfelds „Access-Optionen“, die festgelegt wird, indem Sie die Schaltfläche „Microsoft Office“ und dann „Access – Options is available“ auswählen

ODBC-Datenquellen werden basierend auf der Einstellung „ODBC-Aktualisierungsintervall“ auf der Registerkarte „Erweitert“ des Dialogfelds „Zugriffsoptionen“ aktualisiert

Sie können die Refresh-Methode verwenden, um Änderungen am aktuellen Datensatz in einem Formular oder Datenblatt anzuzeigen, seit die Datensatzquelle, die dem Formular oder Datenblatt zugrunde liegt, zuletzt aktualisiert wurde

In einer Access-Datenbank zeigt die Refresh-Methode nur Änderungen an Datensätzen im aktuellen Recordset an

Da die Refresh-Methode die Datenbank nicht wirklich erneut abfragt, enthält das aktuelle Recordset keine Datensätze, die der Datenbank seit der letzten Abfrage hinzugefügt wurden, und schließt keine Datensätze aus, die seit der letzten Abfrage aus der Datenbank gelöscht wurden oder die den Kriterien der Abfrage oder des Filters entsprechen entsprechen nicht mehr

Um die Datenbank erneut abzufragen, verwenden Sie die Requery-Methode

Wenn die Datensatzquelle für ein Formular erneut abgefragt wird, gibt das aktuelle Recordset alle Daten in der Datensatzquelle genau wieder

In einem Access-Projekt (.adp) fragt die Refresh-Methode die Datenbank erneut ab und zeigt neue oder geänderte Datensätze an oder entfernt gelöschte Datensätze aus der Tabelle, auf der das Formular basiert

Das Formular wird auch aktualisiert, um Datensätze anzuzeigen, die auf Änderungen an der Filter-Eigenschaft des Formulars basieren

Hinweis Es ist oft schneller, ein Formular oder Datenblatt zu aktualisieren, als es erneut abzufragen

Dies gilt insbesondere, wenn die anfängliche Ausführung langsam war

Verwechseln Sie die Refresh-Methode nicht mit der Repaint-Methode, die den Bildschirm mit ausstehenden visuellen Änderungen zeichnet

Beispiel

Im folgenden Beispiel wird die Refresh-Methode verwendet, um die Datensätze in der zugrunde liegenden Datensatzquelle für das Formular „Customers“ zu aktualisieren, wenn das Formular den Fokus erhält

Private Sub Form_Activate() Me.Refresh End Sub

Unterstützung und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfe dazu, wie Sie Support erhalten und Feedback geben können.

パラメータを使用したExcelでのSQLServerデータのクエリ New Update

Video ansehen

Neue Informationen zum Thema access variable in abfrage

access variable in abfrage Einige Bilder im Thema

 New パラメータを使用したExcelでのSQLServerデータのクエリ
パラメータを使用したExcelでのSQLServerデータのクエリ New

DoCmd.OpenForm-Methode (Access) | Microsoft Docs Update

08.11.2021 · expression Eine Variable, die ein DoCmd-Objekt darstellt. Parameter. Name Erforderlich/Optional Datentyp Beschreibung; FormName: Erforderlich: Variant: Ein Zeichenfolgenausdruck, der dem gültigen Namen eines Formulars in der aktuellen Datenbank entspricht. Wenn Sie Visual Basis-Code, der die OpenForm-Methode enthält, in einer …

+ hier mehr lesen

Read more

Inhaltsverzeichnis

DoCmd.OpenForm-Methode (Zugriff)

Artikel

11.08.2021

2 Minuten Lesezeit

2 Mitwirkende Ist diese Seite hilfreich? Ja Nein Haben Sie weiteres Feedback für uns? Feedback wird an Microsoft gesendet: Wenn Sie auf die Schaltfläche „Senden“ klicken, wird Ihr Feedback zur Verbesserung von Microsoft-Produkten und -Diensten verwendet

Datenschutzrichtlinie Absenden Vielen Dank.

In diesem Artikel

Die OpenForm-Methode führt die OpenForm-Aktion in Visual Basic aus.

Syntax

expression.OpenForm(FormularName, Ansicht, FilterName, WhereCondition, DataMode, WindowMode, OpenArgs)

Ausdruck Eine Variable, die ein DoCmd-Objekt darstellt

Parameter

Name Erforderlich/Optional Datentyp Beschreibung FormName Erforderlich Variant Ein Zeichenfolgenausdruck, der der gültige Name eines Formulars in der aktuellen Datenbank ist

Wenn Sie Visual Basic-Code ausführen, der die OpenForm-Methode in einer Bibliotheksdatenbank enthält, sucht Microsoft Access zuerst nach dem Formular mit diesem Namen in der Bibliotheksdatenbank und dann in der aktuellen Datenbank

View Optional AcFormView Eine AcFormView-Konstante, die die Ansicht angibt, in der das Formular geöffnet werden soll

Der Standardwert ist acNormal

FilterName Optional Variant Ein Zeichenfolgenausdruck, der mit dem gültigen Namen einer Abfrage in der aktuellen Datenbank übereinstimmt

WhereCondition Optional Variant Ein Zeichenfolgenausdruck, der einer gültigen SQL-WHERE-Klausel ohne das Wort WHERE entspricht

DataMode Optional AcFormOpenDataMode Eine AcFormOpenDataMode-Konstante, die den Dateneingabemodus für das Formular angibt

Dies gilt nur für Formulare, die in der Formularansicht oder Datenblattansicht geöffnet werden

Der Standardwert ist acFormPropertySettings

WindowMode Optional AcWindowMode Eine AcWindowMode-Konstante, die den Fenstermodus angibt, in dem das Formular geöffnet wird

Der Standardwert ist acWindowNormal

OpenArgs Optionale Variante Ein Zeichenfolgenausdruck

Dieser Ausdruck wird verwendet, um die OpenArgs-Eigenschaft des Formulars festzulegen

Diese Einstellung kann per Code in einem Formularmodul verwendet werden, z

B

das offene Ereignisverfahren

Auf die OpenArgs-Eigenschaft kann auch in Makros und Ausdrücken verwiesen werden

Angenommen, das Formular, das Sie öffnen, ist eine Liste von Kunden in einem fortlaufenden Formular

Wenn Sie möchten, dass der Fokus beim Öffnen des Formulars auf einen bestimmten Datensatz verschoben wird, können Sie den Kundennamen mit dem OpenArgs-Argument angeben und dann die FindRecord-Methode verwenden, um den Fokus auf den Datensatz für den Kunden mit dem angegebenen Namen zu verschieben.

Hinweise

Sie können die OpenForm-Methode verwenden, um ein Formular in der Formularansicht, Formularentwurfsansicht, Seitenansicht oder Datenblattansicht zu öffnen

Sie können den Dateneingabemodus und den Fenstermodus für das Formular auswählen und die Datensätze einschränken, die das Formular anzeigt von 256 Zeichen ist).

Beispiel

Dieses Beispiel öffnet das Personalformular in der Formularansicht und zeigt nur die Datensätze an, die den Namen „Buchwald“ im Feld Nachname haben

Die angezeigten Datensätze können bearbeitet und neue Datensätze hinzugefügt werden

DoCmd.OpenForm “Mitarbeiter”, , ,”Nachname = ‘König'”

Das folgende Beispiel öffnet das Formular frmMainEmployees in der Formularansicht und zeigt nur Datensätze an, die für die Abteilung gelten, die im Kombinationsfeld cboDept ausgewählt wurde

Die angezeigten Datensätze können bearbeitet und neue Datensätze hinzugefügt werden

Private Sub cmdFilter_Click() DoCmd.OpenForm “frmMainEmployees”, , , “DepartmentID=” & cboDept.Value End Sub

Das folgende Beispiel zeigt, wie das WhereCondition-Argument der OpenForm-Methode verwendet wird, um die Datensätze zu filtern, die in einem Formular angezeigt werden, während es geöffnet wird

Private Sub cmdShowOrders_Click() If Not Me.NewRecord Then DoCmd.OpenForm “frmOrder”, _ WhereCondition:=”CustomerID=” & Me.txtCustomerID End If End Sub

Unterstützung und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfe dazu, wie Sie Support erhalten und Feedback geben können.

Visual basic.net: retrieve data from access database- in VB.net New Update

Video ansehen

Weitere Informationen zum Thema access variable in abfrage

access variable in abfrage Einige Bilder im Thema

 Update Visual basic.net: retrieve data from access database- in VB.net
Visual basic.net: retrieve data from access database- in VB.net Update

VBA-Forum – Das Forum zu Microsoft VBA Update

Das deutschprachige Forum zu Microsoft VBA. Thema: Eröffnet von: Letzte Nachricht: Von: Antworten: Gelöst: Beliebig erweiterbarer Fragebogen

+ mehr hier sehen

Access – Berechnete Felder in Abfragen – Direkt berechnet oder mit Funktionen New Update

Video unten ansehen

Weitere Informationen zum Thema access variable in abfrage

access variable in abfrage Ähnliche Bilder im Thema

 Update New Access - Berechnete Felder in Abfragen - Direkt berechnet oder mit Funktionen
Access – Berechnete Felder in Abfragen – Direkt berechnet oder mit Funktionen New

Namenskonvention (Datenverarbeitung) – Wikipedia Neueste

bytZaehler für eine Zähler-Variable vom Typ byte (bis zur Größe 255), intZaehler für eine Zähler-Variable vom Typ integer (von −32768 bis +32767), lngZaehler für eine Zähler-Variable vom Typ long (>32767), sngQuotient für das Gleitkommaergebnis einer Division vom Typ Single, dblQuotient für das Gleitkommaergebnis einer Division vom Typ Double, curNetto für …

+ mehr hier sehen

Read more

Namenskonventionen sind Vorgaben/Vorschriften/Empfehlungen für Programmierer, Datenbankentwickler etc

zur Benennung von Bezeichnern (Namen) für Objekte im Quelltext von Software

Durch ihre Verwendung sollen die Namen dieser Objekte nach einheitlichen Regeln gebildet werden – im Rahmen der Syntaxvorschriften der Programmiersprache und auch programmübergreifend – wodurch das Software-Qualitätsmerkmal Änderbarkeit (Wartbarkeit) durch leichteres Verständnis des Programms unterstützt wird Text

Solche Regeln gelten – meist unternehmens- oder projektspezifisch – grundsätzlich für alle in der Programmierung verwendeten Konstrukte – wie Datenfelder (Variablen, Konstanten), Objekte,[1] Funktionen, Typen, Klassen, Module, Prozeduren, Befehlstextabschnitte etc

und soll zu “lesbarem Code” beitragen[2]

Ähnliche Konventionen (sie werden fast immer mit dem Plural bezeichnet) bestehen für den Einrückungsstil und für das Einfügen von Kommentaren in den Quellcode von Programmen

der Programmierstil für den Programmcode

Je nach Situation/Unternehmen können sie verpflichtend oder freiwillig formuliert sein

Ungarische Notation [ bearbeiten | Quelle bearbeiten ]

In der Microsoft-Welt wurde früher die sogenannte ungarische Schreibweise verwendet, mit der aus dem Anfang einer Kennung auf Art oder Zweck einer Kennung geschlossen werden kann

Allerdings verbietet Microsoft nun die Verwendung der ungarischen Schreibweise.[3] Stattdessen sollten Variablen nach Clean-Code-Richtlinien benannt werden

Kodierung des Typs im Namen [ edit | Quelle bearbeiten ]

Von der Programmierung für ganze Zahlen, Fließkommazahlen, Sonderformate und Zeichenketten:

bytCounter für eine Zählervariable vom Typ Byte (bis Größe 255),

für eine Zählervariable vom Typ Byte (bis Größe 255), intCounter für eine Zählervariable vom Typ Integer (von −32768 bis +32767),

für eine Zählvariable vom Typ Integer (von −32768 bis +32767), lngZaehler für eine Zählvariable vom Typ Long (>32767),

für eine Zählervariable vom Typ long (>32767), sngQuotient für das Fließkommaergebnis einer Division vom Typ single,

für das Fließkommaergebnis einer Single-Typ-Division, dblQuotient für das Fließkomma-Ergebnis einer Double-Typ-Division,

für das Gleitkommaergebnis einer Division vom Typ Double, curNetto für Währungsbeträge vom Typ Currency,

für Währungsbeträge vom Typ Currency, strFirstName für alphanumerische Zeichenfolgen vom Typ String,

Kodierung der Verwendung im Namen [edit | Quelle bearbeiten ]

Für Objekte (hier: relationale Datenbank):

tblKunde für eine Tabelle mit Kundenstammdaten

für eine Tabelle, die Kundenstammdaten enthält, qryPLZ4 für eine Abfrage, die alle Kunden aus dem PLZ-Bereich 40000 bis 49999 zusammenstellt

für eine Abfrage, die alle Kunden aus dem PLZ-Bereich 40000 bis 49999 zusammenfasst, frmOrder für ein Formular, in dem Kunden bestellen erfasst/angezeigt/geändert/gelöscht werden

für ein Formular, in dem Kundenaufträge eingegeben/angezeigt/geändert/gelöscht werden können, repUms2005-12_Knd1010 für einen Report, in dem alle Umsätze des Kunden mit der Kundennummer 1010 im Dezember 2005 aufgelistet sind

Konstanten in C [ edit | Quelle bearbeiten ]

In der Programmiersprache C und anderen Teilen der Unix-Welt ist es üblich, Konstanten in Großbuchstaben zu deklarieren (z

B

sngUMSATZTEUER_ERMAESSIGT für den reduzierten Mehrwertsteuersatz) – insbesondere für Präprozessor-Makroparameter

Namenskonventionen für Java [ bearbeiten | Quelle bearbeiten ]

Die Programmierrichtlinien für die Programmiersprache Java legen Namenskonventionen für verschiedene Sprachelemente fest, unabhängig von ihrer Verwendung.[4] Im Allgemeinen sollten Java-Bezeichner in Kleinbuchstaben geschrieben werden (auch Camel-Case-Notation genannt) und keine Unterstriche (“_”) enthalten, mit Ausnahme von Konstanten (siehe unten)

Klassennamen sollten Substantive sein und mit einem Großbuchstaben beginnen, z

B

String oder ArrayList.

oder

Methodennamen sollten Verben sein und mit einem Kleinbuchstaben beginnen, z

z.B

hinzufügen oder entfernen

Bestimmte Abfragemethoden weichen oft von dieser Regel ab, indem sie keine Verben sind, sondern beispielsweise toString oder isEmpty.

oder

Insbesondere Abfragemethoden weichen häufig von dieser Regel ab, da sie keine Verben sind und stattdessen beispielsweise oder benannt werden

Konstantennamen sollten nur in Großbuchstaben geschrieben werden, wobei die einzelnen Wörter durch Unterstriche getrennt werden, z

B

MIN_VALUE.

Ein Leitfaden zur Benennung von Variablen, eine Variante davon als „Leszynski Naming Convention“ (LNC) i

W

Zur Verwendung unter Microsoft Access und Visual Basic for Applications beantragt

Andere Namensregeln [ bearbeiten | Quelle bearbeiten ]

Weitere Vorgaben oder Empfehlungen zur Benennung von Objekten im Quelltext, die oft nur als Empfehlung gedacht sind, können sein: Sprechende Objektbezeichner [Bearbeiten | Quelle bearbeiten ]

Für Konstrukte, die in der Programmierung über Bezeichner angesprochen werden, kann durch Namenskonventionen dafür gesorgt werden, dass diese weitgehend „sprechend“ gewählt werden

Die Identifikatoren (im Kontext der Programmumgebung) sollten mehr oder weniger “selbsterklärend” sein, um die semantische Bedeutung und Verwendung der Elemente auch Personen aufzuzeigen, die nicht an der ursprünglichen Entwicklung des Programms beteiligt waren

wie “Rechnungsbetrag”), es kann zB festgelegt werden, ob die Identifikatoren aus mehreren Teilen bestehen können/sollen (zB zur Unterscheidung von Objekten in unterschiedlichen Rollen), ob Formatinformationen in die Objektbeschreibung aufgenommen werden sollen, die Reihenfolge in welchen Namensteilen angeordnet werden sollen, ob einzelne Bestandteile der Kennung z

B

mit einem Bindestrich oder Unterstrich getrennt oder ob Abkürzungen verwendet werden sollen

Beispiel mit Gegenbeispiel: MWSt_Amount = Rechnungsbetrag_Nto * MWSt_Prozent statt Betrag1 = Betrag2 * Prozent

In den Anfängen der Datenverarbeitung – z.B

B

durch Programmiersprachen oder die Verwendung von Lochkarten – bestehende Beschränkungen in der Länge von Bezeichnern sind in heutigen Systemen meist nicht mehr relevant

Andere Konzepte zur Benennung [ edit | Quelle bearbeiten ]

In der Programmierung ist es üblich, beschreibende Namen zu verwenden, um neben dem funktionalen Sinn in der Anwendung (der semantischen Bedeutung) mehrere andere (relativ unabhängige) Eigenschaften der Elemente zu identifizieren, für die einige gemeinsame Konzepte von Präfixen/Suffixen im Bezeichner haben aufgetaucht:

Datentypen

Indirektionen – Referenztypen, auch Referenzen oder Zeiger genannt

Sichtbarkeit/Umfang/Änderbarkeit

09 / 28-変数の初期化-MSAccessVBA中間チュートリアル New

Video ansehen

Neue Informationen zum Thema access variable in abfrage

access variable in abfrage Ähnliche Bilder im Thema

 Update New 09 / 28-変数の初期化-MSAccessVBA中間チュートリアル
09 / 28-変数の初期化-MSAccessVBA中間チュートリアル Update

LINQ – Wikipedia New

LINQ ist eine Sammlung von Erweiterungsmethoden, die auf Monaden operieren. Zudem gibt es in einigen .NET-Sprachen wie C#, VB.NET und F# eigene Schlüsselwörter für eine vorbestimmte Menge an LINQ-Methoden. Monaden werden in .NET als generische Klassen oder Interfaces mit einzelnem Typargument (z. B. IEnumerable < T >, IObservable < T >) abgebildet.

+ mehr hier sehen

Read more

Dieser Artikel behandelt das Verfahren für den Zugriff auf Daten

Für den Vergnügungskomplex von Las Vegas siehe The LINQ

LINQ (Abkürzung für Language Integrated Query; Aussprachelink) ist eine programmatische Methode von Microsoft für den Zugriff auf Daten

LINQ wurde unter der Leitung von Erik Meijer[1] entwickelt und erschien erstmals mit dem. NET Framework 3.5

Ziel von LINQ [ edit | Quelle bearbeiten ]

Die Daten, auf die ein Programm zugreift, stammen aus unterschiedlichen Quellen.[2] Dazu gehören[3]

interne Quellen wie Felder und Objektlisten und Hierarchien

externe Quellen wie XML-Dokumente, Datenbanktabellen, Textdateien, Excel-Dateien, E-Mail-Nachrichten, SharePoint-Listen und viele andere

Jede dieser Datenquellen hat ihre eigenen Zugriffsmethoden

Daher muss sich der Programmierer im Einzelfall mit den Details der jeweiligen Methode auseinandersetzen

Außerdem muss jedes Mal, wenn Daten von einer Quelle zu einer anderen Art von Quelle verschoben werden, das Programm geändert werden

LINQ versucht, dieses Problem zu lösen, indem es eine konsistente Methode für den gesamten Datenzugriff innerhalb der. NET-Entwicklungsplattform bereitstellt

Die Syntax von Abfragen in LINQ ähnelt der von SQL

Im Gegensatz zu SQL stellt LINQ aber auch Sprachelemente zur Verfügung, die geeignet sind, auf hierarchische und Netzwerkstrukturen zuzugreifen, indem sie die dort vorhandenen Beziehungen ausnutzen.[4] LINQ ist eine Sammlung von Erweiterungsmethoden, die mit Monaden arbeiten.[6][7] Außerdem haben einige. NET-Sprachen wie C#, VB.NET und F# ihre eigenen Schlüsselwörter für einen vorgegebenen Satz von LINQ-Methoden.[8][9] Monaden werden in. NET als generische Klassen oder Schnittstellen mit einem einzigen Typargument dargestellt (z

B

IEnumerable , IObservable )

LINQ-Anweisungen werden direkt als Quellcode in. NET-Programme eingebettet.[10] Dadurch kann der Code vom Compiler auf Fehler überprüft werden

Andere Methoden wie ADO und ODBC verwenden jedoch Abfragezeichenfolgen

Diese können nur zur Laufzeit interpretiert werden; Fehler erscheinen dann schwerwiegender und sind schwieriger zu analysieren

Innerhalb des Quellprogramms in C# oder VB.NET präsentiert LINQ die Abfrageergebnisse als streng typisierte Aufzählungen.[11] Es garantiert somit Typsicherheit zur Kompilierzeit

Sogenannte LINQ-Provider[2] (englisch LINQ provider) übersetzen die LINQ-Anweisungen in die speziellen Zugriffsmethoden der jeweiligen Datenquelle

Die folgenden Anbieter sind innerhalb der. NET-Plattform verfügbar:[12]

LINQ to Objects für den Zugriff auf Objektlisten und Hierarchien im Arbeitsspeicher

für den Zugriff auf Objektlisten und Hierarchien im Speicher LINQ to SQL für die Abfrage und Bearbeitung von Daten in MS-SQL-Datenbanken

zum Abfragen und Bearbeiten von Daten in MS-SQL-Datenbanken LINQ to Entities zum Abfragen und Bearbeiten von Daten im relationalen ADO.NET-Modell; [13]

zum Abfragen und Bearbeiten von Daten im relationalen Modell von ADO.NET; LINQ to XML für den Zugriff auf XML-Inhalt

für den Zugriff auf XML-Inhalt LINQ to DataSet für den Zugriff auf ADO.NET-Datensammlungen und -Tabellen

für den Zugriff auf ADO.NET-Datensammlungen und Tabellen LINQ to SharePoint für den Zugriff auf SharePoint-Daten.[14]

Wichtige Konzepte [Bearbeiten| Quelle bearbeiten ]

Die Beispiele sind in C#, sofern nicht anders angegeben

Faule Auswertung [ bearbeiten | Quelle bearbeiten ]

LINQ-Ausdrücke werden nicht ausgeführt, wenn sie definiert sind, sondern wenn der Wert abgefragt wird

Dies wird als verzögerte Bewertung (auch verzögerte Bewertung) bezeichnet

Dadurch kann die Abfrage auch mehrfach verwendet werden.

var zahlen = neue Liste < int > () { 1 , 2 , 3 , 4 }; // Liste mit 4 Zahlen // Abfrage wird definiert aber nicht ausgewertet var query = from x in numbers select x ; Zahlen

add(5); // füge eine 5

Zahl hinzu // jetzt wird die Abfrage ausgewertet Console

WriteLine ( Abfrage

Count ()); // 5 Zahl

add(6); // füge eine 6

Zahl hinzu Console

WriteLine ( Abfrage

Count ()); // 6

Lazy Evaluation kann auf verschiedene Weise implementiert werden

Beispielsweise verwendet LINQ to Objects Delegaten, während LINQ to SQL stattdessen die IQueryable-Schnittstelle implementiert

Damit das Abfrageergebnis nicht verändert wird, muss es in einen anderen Typ konvertiert werden

Dafür werden Konvertierungsmethoden wie AsEnumerable() , ToArray() , ToList() , ToDictionary() , ToLookup() etc

verwendet

Wenn die LINQ-Abfrage eine Funktion aufruft, die eine Ausnahmebehandlung erfordert, muss der Try-Catch-Block von der Abfrage und nicht von ihrer Konstruktion verwendet werden

Auflösung der Erweiterungsmethode [ bearbeiten | Quelle bearbeiten ]

LINQ-Funktionen werden als Erweiterungsmethoden implementiert

Gegeben sei eine Aufzählung von Elementen eines Typs:

Die Methode Where() zum Filtern nach beliebigen Kriterien kann nun über eine Erweiterungsmethode (wieder-)implementiert werden:

public static class EnumerableExtensions { public static IEnumerable < T > Where < T >( this IEnumerable < T > source , Func < T , bool > predicate ) { foreach ( var element in source ) { if ( predicate ( element )) yield return element ; } } }

Bestimmte. NET-Sprachen haben ihre eigenen Schlüsselwörter, um die Methoden aufzurufen:

var query = von e in Angestellten wobei e

DepartmentId == 5 select e ;

Diese Schlüsselwörter werden vom Compiler in die entsprechenden Methodenaufrufe aufgelöst:

var Abfrage = Mitarbeiter

Wobei ( e => e

DepartmentId == 5 )

Wählen Sie ( e => e );

Da es sich um Erweiterungsmethoden handelt, muss der Compiler die Methodenaufrufe in einen Aufruf der Methoden der entsprechenden Erweiterungsklasse auflösen:

var query = Enumerable

Wählen Sie ( EnumerableExtensions

Where ( employee , e => e

DepartmentId == 5 ), e => e );

Wichtige Operatoren [Bearbeiten | Quelle bearbeiten ]

From definiert die Datenquelle einer Abfrage (query) oder Unterabfrage (subquery), sowie eine Bereichsvariable (range variable), die ein einzelnes Element der Datenquelle (data source) darstellt

from rangeVariable in dataSource //.

.

Abfragen können mehrere from-Possess-Operationen haben, um Joins aus mehreren Datenquellen zu ermöglichen

Es ist zu beachten, dass die Join-Bedingung für mehrere From-Operationen durch die Datenstruktur definiert ist und sich vom Konzept eines Joins in relationalen Datenbanken unterscheidet

var queryResults = von c in Kunden von o in Bestellungen select new { c

Namen, ach

OrderId , o

Preise };

oder kürzer:

var queryResults = from c in Kunden, o in Aufträgen wählen Sie neu {c

Namen, ach

OrderId , o

Preise };

Wo definiert einen Filter für die auszuwählenden Daten

var queryResults = von c in Kunden von o in Bestellungen wo o

Datum > DatumUhrzeit

Jetzt – TimeSpan

FromDays(7) wählen Sie neu { c

Namen, ach

OrderId , o

Preise };

Select definiert eine Projektion oder die Form des Ergebnisses der LINQ-Abfrage

Eine Teilmenge von Eigenschaften wird häufig mithilfe anonymer Klassen (z

B

new { …, … } ) oder, beginnend mit C# 7.0, Werttupeln ( (…, …) ) projiziert

Group wird verwendet, um Elemente nach einem bestimmten Schlüssel zu gruppieren:

var groupedEmployees = from e in Employees group e by e

Abteilung ; // nach Abteilung gruppieren

Als Schlüssel kann auch ein anonymer Typ aus mehreren Schlüsseln verwendet werden:

var groupedEmployees = from e in Employees group e by new { e

Abteilung , z

Alter }; // nach Abteilung und Alter gruppieren

Into kann verwendet werden, um das Ergebnis einer Auswahl-, Gruppierungs- oder Join-Operation in einer temporären Variablen zu speichern.

var groupedEmployees = from e in Employees group e by e

Department in EmployeesByDepartment select new { Department = EmployeesByDepartment

Schlüssel , EmployeesByDepartment

Anzahl() };

OrderBy und ThenBy [ bearbeiten | Quelle bearbeiten ]

OrderBy und ThenBy werden verwendet, um eine Liste von Elementen in aufsteigender Reihenfolge zu sortieren

var groupedEmployees = from e in Employees orderby e

Alter // Mitarbeiter nach Alter ordnen; jüngste zuerst dannby e

name // gleichaltrige Mitarbeiter nach Namen bestellen; A-bis-Z sortieren select e ;

Mit OrderByDescending und ThenByDescending wird die Liste in absteigender Reihenfolge sortiert:

var groupedEmployees = from e in Employees orderby e

Alter absteigend // älteste zuerst dannby e

Name absteigend // von Z nach A sortieren select e ;

Reverse kehrt die Reihenfolge der Elemente um

Join ermöglicht Inner Joins, Group Joins und Left Outer Joins

Inner Join Ein Inner Join ordnet die äußere Datenquelle der inneren Datenquelle zu und gibt ein “flaches” Ergebnis zurück

Elemente der äußeren Datenquelle, die kein übereinstimmendes Element der inneren Datenquelle haben, werden verworfen

var productCategories = von c in Kategorien // äußere Datenquelle Join p in Produkte // innere Datenquelle auf c

CategoryId ist gleich p

CategoryId // Kategorien ohne Produkte werden ignoriert select new { c

Kategoriename , p

Produktname };

Gruppenbeitritt Ein Gruppenbeitritt erstellt eine hierarchische Ergebnismenge

Dabei werden die Elemente der inneren Datenquelle mit den entsprechenden Elementen der äußeren Datenquelle gruppiert

Elemente, für die es kein entsprechendes Element in der äußeren Datenquelle gibt, werden mit einem leeren Array verknüpft

var productCategories = von c in Kategorien Join p in Produkte auf c

CategoryId ist gleich p

CategoryId in productsInCategory select new { c

CategoryName , Products = productsInCategory };

Ein Gruppenbeitritt kann in SQL nicht zugeordnet werden, da SQL keine hierarchische Ergebnismenge zulässt

VB.NET hat ein eigenes Schlüsselwort, Group Join

Left Outer Join Ein Left Outer Join ordnet die äußere Datenquelle der inneren Datenquelle zu und gibt ein “flaches” Ergebnis zurück

Elemente in der äußeren Datenquelle, die kein übereinstimmendes Element in der inneren Datenquelle haben, werden mit einem Standardwert versehen

Um den Standardwert zu definieren, wird die Erweiterungsmethode DefaultIfEmpty() verwendet, die leere Enumerationen in eine Einzelelement-Enumeration mit einem Standardwert umwandelt:

var productCategories = von c in Kategorien Join p in Produkte auf c

CategoryId ist gleich p

CategoryId in productsInCategory von pic in productsInCategory

DefaultIfEmpty ( new Product ( CategoryId = 0 , ProductId = 0 , ProductName = String

Empty )) select new { c

Kategoriename , p

Produktname };

Let ermöglicht das Speichern des Ergebnisses einer Unterabfrage in einer Variablen zur späteren Verwendung in der Abfrage

var OrdersByProducts = von c in Kategorien Join p in Produkte auf c

CategoryId ist gleich p

CategoryId in productsByCategory lassen ProductCount = productsByCategory

Count () order by ProductCount select new { c

CategoryName , ProductCount };

Any wird verwendet, um festzustellen, ob eine Sequenz leer ist oder ein bestimmtes Prädikat enthält

bool containsAnyElements = Enumerable

Leer()

irgendein(); // false bool containsSix = Enumerable

Bereich ( 1 , 10 )

Beliebig ( x => x == 6 ); // wahr

Contains wird verwendet, um festzustellen, ob ein bestimmter Wert in einer Sequenz enthalten ist

bool containsSix = Aufzählbar

Bereich ( 1 , 10 )

enthält (6); // wahr

Skip and Take [Bearbeiten| Quelle bearbeiten ]

Überspringen wird verwendet, um eine bestimmte Anzahl von Elementen in einer Sequenz zu überspringen

Take wird verwendet, um eine maximale Anzahl von Elementen aus einer Sequenz auszuwählen

IEnumerable < int > Numbers = Enumerable

Bereich ( 1 , 10 )

Überspringen ( 2 )

nimm ( 5 ); // {3,4,5,6,7}

Außerdem sind die Erweiterungsmethoden SkipWhile() und TakeWhile() definiert, für die separate Schlüsselwörter in VB.NET definiert sind

Diese Methoden ermöglichen die Verwendung eines Prädikats, das definiert, welche Elemente übersprungen oder ausgewählt werden

Distinct wird verwendet, um eindeutige Elemente einer Sequenz auszuwählen

IEnumerable < int > MultipleNumbers = neue Liste < int > () { 0 , 1 , 2 , 3 , 2 , 1 , 4 }; IEnumerable < int > DistinctNumbers = MultipleNumbers

unterscheidbar(); // {0,1,2,3,4}

Union, Intersect und Except [Bearbeiten| Quelle bearbeiten ]

Die Mengenoperatoren Union, Intersect und Except können für eine Liste von Elementen verwendet werden:

var NumberSet1 = { 1 , 5 , 6 , 9 }; var NumberSet2 = { 4 , 5 , 7 , 11 }; var union = NumberSet1

Union( NumberSet2 ); // 1,5,6,9,4,7,11 var schneiden = NumberSet1

Schnittmenge ( NumberSet2 ); // 5 var außer = NumberSet1

Außer( NumberSet2 ); // 1,6,9

Aggregate wird verwendet, um eine Aggregatfunktion auf eine Datenquelle anzuwenden

var nums = neu []{ 1 , 2 , 3 , 4 , 5 }; var sum = nums

Aggregate ( ( a , b ) => a + b ); // Summe = 1+2+3+4+5 = 15

Wichtige Aggregatfunktionen sind ebenfalls vordefiniert

Zu den vordefinierten Aggregatfunktionen gehören Count() , LongCount() , Sum() , Min() , Max() und Average().

Zip kombiniert zwei Sequenzen miteinander, bis eine Sequenz endet

IEnumerable < string > Days = new List < string >() { “Montag” , “Dienstag” , “Mittwoch” , “Donnerstag” , “Freitag” , “Samstag” , “Sonntag” }; IEnumerable < int > Numbers = Enumerable

Bereich ( 1 , 10 ); // {1,2,3,4,5,6,7,8,9,10} // Zahlen 8..10 werden ignoriert IEnumerable < string > NumberedDays = Days

Zip ( Zahlen , ( Tag , Zahl ) => String

Format ( “{0}:{1}” , Zahl , Tag ) ); // {“1:Montag”, “2:Dienstag”,. .., “7:Sonntag”}

Concat hängt eine weitere Sequenz desselben Typs an eine Sequenz an

SequenceEqual prüft, ob zwei Sequenzen gleich lang sind und ob die Elemente an der jeweiligen Position der entsprechenden Sequenzen gleich sind

Zum Vergleich werden entweder die IEqualityComparer-Schnittstelle, die Equals()-Methode von TSource oder die GetHashCode()-Methode abgefragt

SelectMany[15] wird im Wesentlichen verwendet, um eine Hierarchie zu glätten

SelectMany funktioniert wie der Bind-Operator >>= , auch Schaufel genannt, in Haskell

Klasse Buch { öffentlicher String Titel { erhalten ; setzt ; } öffentliche Liste Autoren { get ; setzt ; } } Klasse Autor { öffentlicher String Name { get ; setzt ; } } class Foo { public IEnumerable < string > GetAuthorsFromBooks ( IEnumerable < Book > books ) { // Eingabemonade: Enumerable Book Author // Ausgabemonade: Enumerable Author return books

SelectMany ( Buch => Buch

Autoren ); } }

Ein typischer Anwendungsfall zum Vereinfachen einer Hierarchie besteht darin, alle Dateien in einem Verzeichnis und den Unterverzeichnissen des Verzeichnisses aufzulisten

IEnumerable < string > GetFilesInSubdirectories ( string rootDirectory ) { var directoryInfo = new DirectoryInfo ( rootDirectory ); // Stammverzeichnis abrufen return directoryInfo

GetDirectories () // Verzeichnisse im Stammverzeichnis abrufen

SelectMany ( dir => GetFilesInSubdirectories ( dir

FullName )) // rekursives Abflachen der Verzeichnishierarchie

Concat( directoryInfo

GetFiles ()

Select ( file => file

FullName )); // den Dateinamen für jede Datei in den Verzeichnissen abrufen }

LINQ definiert verschiedene Selektoren für skalare Ergebnisse:

Skalare LINQ-Selektoren Methode Ergebnis ElementAt(n) Gibt das n-te Element zurück, wenn die Abfrage ein oder mehrere Ergebnisse zurückgibt

Löst eine Ausnahme aus, wenn weniger als n Ergebnisse zurückgegeben werden

ElementAtOrDefault(n) Gibt das n-te Element zurück, wenn die Abfrage ein oder mehrere Ergebnisse zurückgibt

Gibt den Standardwert zurück, wenn weniger als n Ergebnisse zurückgegeben werden

First() Gibt das erste Element zurück, wenn die Abfrage ein oder mehrere Ergebnisse zurückgibt

Löst eine Ausnahme aus, wenn keine Ergebnisse zurückgegeben werden

FirstOrDefault() Gibt das erste Element zurück, wenn die Abfrage ein oder mehrere Ergebnisse zurückgibt

Gibt den Standardwert zurück, wenn keine Ergebnisse zurückgegeben werden

Last() Gibt das letzte Element zurück, wenn die Abfrage ein oder mehrere Ergebnisse zurückgibt

Löst eine Ausnahme aus, wenn keine Ergebnisse zurückgegeben werden

LastOrDefault() Gibt das letzte Element zurück, wenn die Abfrage ein oder mehrere Ergebnisse zurückgibt

Gibt den Standardwert zurück, wenn keine Ergebnisse zurückgegeben werden

Single() Gibt das einzelne Element zurück, das die Anfrage zurückgegeben hat

Löst eine Ausnahme aus, wenn null oder mehr Ergebnisse zurückgegeben werden

SingleOrDefault() Gibt das eine Element zurück, das die Anfrage zurückgegeben hat

Gibt den Standardwert zurück, wenn keine Ergebnisse zurückgegeben werden

Löst eine Ausnahme aus, wenn mehrere Ergebnisse zurückgegeben werden

Erweitern von LINQ [ Bearbeiten | Quelle bearbeiten ]

Definition eigener Monaden [ bearbeiten | Quelle bearbeiten ]

LINQ kann auf jede Monade angewendet werden

Monaden sind hier Adapter (englisch: Wrapper) für einen bestimmten Typ

Vordefinierte Monaden sind z.B

IEnumerable , IList , Nullable and Task.

Es können aber auch eigene Monaden wie zB IRepository oder IHandler erstellt werden um die zu erweitern Funktionalität von LINQ

Dazu müssen entsprechende Erweiterungsmethoden definiert werden

Die Verwendung von Monaden dient dazu, die Menge an Boilerplate-Code zu reduzieren

Die einfachste Monade ist die Identität, die in. NET allgemein als Identity bezeichnet wird:

öffentliche Klasse Identität {öffentlicher T-Wert {get; privater Satz; } öffentliche Identität (T-Wert) {Wert = Wert; } }

Für diese Klasse können nun folgende Erweiterungsmethoden erstellt werden:

// Unit-Methode // Wandelt jeden Wert in eine Identität um public static Identity < T > ToIdentity < T >( this T value ) { return new Identity < T >( value ); } // bind method // verknüpft Funktionen, die eine Identität zurückgeben public static Identity < B > Bind < A , B >( this Identity < A > m , Func < A , Identity < B >> f ) { return f ( m

Wert ); }

Diese Monade kann nun als Lambda-Ausdruck (als beliebige Komposition) verwendet werden:

var hallo = “Hallo”

ToIdentity()

Bind ( h => “Monad”

ToIdentity ()

Bind ( m => String

Format ( “{0} {1}!” , h , m ) )); Konsole

WriteLine ( hallo

Value ); // “Hallo Monade!”

Um die Monade in LINQ zu verwenden, muss eine SelectMany()-Erweiterungsmethode implementiert werden

Dies ist nur ein Alias ​​für Bind()

Es gibt also eine Möglichkeit

Umbenennen/Einkapseln der bind()-Methode Erstellen und Umbenennen/Einkapseln der bind()-Methode mit Funktionszusammenstellung both:

// SelectMany = Öffentliche statische Identität binden < B > SelectMany < A , B > ( this Identity < A > m , Func < A , Identity < B >> f ) { return Bind ( m , f ); // alternativ mit aufgelöstem Bind(): // return f(m.Value); } // Bindung mit Funktionskomposition public static Identity < C > SelectMany < A , B , C > ( this Identity < A > m , Func < A , Identity < B >> f , Func < A , B , C > select ) { return select ( m

Value , m

Bind ( f )

Value )

ZuIdentität(); // alternativ mit aufgelöstem Bind(): // return select(m.Value, f(m.Value).Value).ToIdentity(); }

Die Monade kann nun mit LINQ-Schlüsselwörtern verarbeitet werden:

var hallo = von h in “Hallo”

ToIdentity() von m in “Monad”

ToIdentity () wählen Sie String

Format( “{0} {1}!” , h , m ); Konsole

WriteLine ( hallo

Value ); // “Hallo Monade!”

Eine weitere einfache Monade ist Maybe , die ähnlich wie die Nullable -Struktur[16][17] funktioniert

Die Maybe-Monade kann auf verschiedene Arten implementiert werden: Variante 1 HasValue-Eigenschaft bestimmt, ob Maybe Nothing (d

h

leer) ist

Definition der Monade:

Klasse Vielleicht < T > { public Readonly Statisch Vielleicht < T > Nichts = neu Vielleicht < T > (); öffentlicher T-Wert { erhalten ; privater Satz; } public bool HasValue {get; privater Satz; } Vielleicht () { HasValue = false ; } public Vielleicht (T-Wert) {Wert = Wert; HasValue = true ; } public override string ToString () { return (HasValue)? Werte

ToString (): Zeichenkette

Leer ; } }

Definition der Einheitsmethode:

public static Vielleicht < T > ToMaybe < T > ( this T value ) { return new Maybe < T > ( value ); }

Methodendefinition binden:

privat statisch Vielleicht < U > Bind < T , U > ( this Vielleicht < T > m , Func < T , Vielleicht < U >> f ) { return ( m

HasValue ) ? f ( m

Wert ) : Vielleicht < U >

Gar nichts ; } public static Vielleicht < U > SelectMany < T , U > ( this Vielleicht < T > m , Func < T , Vielleicht < U >> f ) { return Bind < T , U > ( m , f ); } public static Maybe < C > SelectMany < A , B , C > ( this Maybe < A > m , Func < A , Maybe < B >> f , Func < A , B , C > select ) { return m

Bind ( x => f ( x )

Bind ( y => select ( x , y )

ToMaybe ())); }

Verwenden:

// Null-Propagation von Nullables var r = von x in 5

ToMaybe () von y in Maybe < int >

Nichts auswählen x + y ; Konsole

WriteLine( r

Wert ); // Zeichenkette.Leer

Variante 2 konkreter Typ bestimmt ob nichts oder etwas

Definition der Monade:

öffentliche Schnittstelle Vielleicht < T >{} öffentliche Klasse Nichts < T > : Vielleicht < T > { public override string ToString () { return String

Leer ; } } öffentliche Klasse Etwas < T > : Vielleicht < T > { public T Value { get ; privater Satz; } public Etwas (T-Wert) {Wert = Wert; } public override string ToString () { Rückgabewert

ToString(); } }

Definition der Einheitsmethode:

public static Vielleicht < T > ToMaybe < T >( this T value ) { return new Something < T >( value ); }

Methodendefinition binden:

private static Maybe < B > Bind < A , B >( this Maybe < A > m , Func < A , Maybe < B >> f ) { var some = m as Something < A >; zurück (einige == null)? new Nothing < B >() : f ( some

Value ); } public static Vielleicht < B > SelectMany < A , B > ( this Vielleicht < A > m , Func < A , Vielleicht < B >> f ) { return Bind < A , B > ( m , f ); } public static Maybe < C > SelectMany < A , B , C > ( this Maybe < A > m , Func < A , Maybe < B >> f , Func < A , B , C > select ) { return m

Bind ( x => f ( x )

Bind ( y => select ( x , y )

ToMaybe ())); }

Verwenden:

var r = from x in 5

ToMaybe () // Something from y in new Nothing () select x + y ; Konsole

WriteLine(r); // Zeichenkette.Leer

Eigene Operatoren definieren [ edit | Quelle bearbeiten ]

Operatoren in LINQ können durch Bereitstellen einer geeigneten Erweiterungsmethode erweitert werden

Hier können auch Standardoperatoren überschrieben werden

Beispiel 1 Wiederkehrende Personen, die an einem bestimmten Datum Geburtstag haben

public static class PersonExtensions { public static IEnumerable < TPerson > FilterByBirthday < TPerson >( this IEnumerable < TPerson > persons ) where TPerson : Person { return FilterByBirthday ( persons , DateTime

Now ); } public static IEnumerable < TPerson > FilterByBirthday < TPerson > ( this IEnumerable < TPerson > persons , DateTime date ) where TPerson : Person { var birthdayPersons = select p in persons where p

See also  Best virtualbox iscsi New

Geburtstag

Tag == Datum

Tag, an dem p

Geburtstag

Monat == Datum

Monat auswählen p ; // gebe die Liste der Personen für jeden zurück ( Person p in birthdayPersons ) yield return p ; } }

Aufrufen der neuen Erweiterungsmethode

personsToCongratulate = persons

FilterNachGeburtstag();

Beispiel 2 Definition einer Methode, die die Menge der ältesten Personen in einer Liste zurückgibt

Es soll auch möglich sein, eine Delegate-Funktion anzugeben, um beispielsweise Verstorbene herauszufiltern

public static class PersonExtensions { public static IEnumerable < TPerson > Oldest < TPerson >( this IEnumerable < TPerson > source , Func < TPerson , Boolean > predicate ) where TPerson : Person { // Personen nach Kriterien filtern var persons = from p in source where Prädikat (p) wähle p aus; // bestimme das Alter der ältesten Personen int oldestAge = ( from p in persons orderby p

Age descending select p

Age )

Erste(); // erhalte die Liste der ältesten Personen var oldestPersons = wähle p in Personen aus, wobei p

Alter == jüngstes Alter select p ; // gebe die Liste der ältesten Personen für jeden zurück ( Person p in oldestPersons ) yield return p ; } public static IEnumerable < TPerson > Oldest ( this IEnumerable < TPerson > source ) where TPerson : Person { return Oldest ( source , x => true ); } }

Aufrufen der neuen Erweiterungsmethode

ältestenLebendenPersonen = Personen

Älteste ( p => p

Living == true );

Implementieren Ihres eigenen LINQ-Anbieters [ bearbeiten | Quelle bearbeiten ]

Das Schreiben eines eigenen LINQ-Anbieters ist eine gute Idee, wenn Sie einen Dienst aufrufen möchten, der eine bestimmte Syntax (SQL, XML usw.) erfordert

Um dies zu ermöglichen, muss die IQueryable-Schnittstelle implementiert werden

Mit dieser Schnittstelle kann der LINQ-Ausdrucksbaum analysiert und in das entsprechende Zielformat konvertiert werden

Reaktive Erweiterungen [ Bearbeiten | Quelle bearbeiten ]

Die Reactive Extensions (kurz: Rx) sind eine Erweiterung von LINQ, die auf IObservable anstatt auf IEnumerable arbeitet

Es ist eine Implementierung des Observer-Entwurfsmusters

Vergleich von Rx mit LINQ Operationstyp nach dem CQS-Prinzip Command (Command) Query (Query) Definition hat Seiteneffekte Gibt Daten zurück Pattern Observer Iterator Implementierung in. NET Framework Rx (IObservable) LINQ (IEnumerable) Pattern Pipes und Filter Map/Reduce Asynchronicity Alle Befehle können asynchron ausgeführt werden

Ergebnisse werden mit asynchronen Benachrichtigungen oder gemeldet

Für die Statusabfrage zurückgegebene Token

Die Rx erlauben eine ereignisgesteuerte Programmierung ohne Callback-Funktionen

Gelegentlich werden die Rx als „LINQ to Events“ bezeichnet

LINQ to DataSet [ bearbeiten | Quelle bearbeiten ]

Das folgende Beispiel zeigt das Abfragen einer Tabelle mit Linq

Unter folgendem Pfad ist eine vorhandene Access-Datenbank erforderlich: C:\database.mdb mit einer Produkttabelle, die die Felder ID, Name und EanCode enthält

Die Tabelle wird als Klasse modelliert und über Attribute mit Metadaten versehen, die die Abbildung auf die Datenbank beschreiben

Dazu muss im Projektordner unter References.

using System ein Verweis auf die System.Data.Linq.Dll hinzugefügt werden. Data.Linq.Mapping ; [Table(Name = “Products”)] class Product { [Column(Name = “id”, IsPrimaryKey = true)] public int ID ; [Column(Name = “Name”)] public string Name ; [Column(Name = “Ean”)] public string EanCode ; }

Jetzt können Sie die Tabelle abfragen

Im folgenden Beispiel werden alle Produkte aufgelistet, deren Produktname mit einem A beginnt

Die Produkte sind nach ihrer ID sortiert.

mit System.Configuration ; // für ConfigurationManager mit System.Data ; // für alle Schnittstellentypen mit System.Data.Common ; // für DbProviderFactories class Foo () { public static void Main () { // Verbindungseinstellungen von app.config abrufen var cs = ConfigurationManager

ConnectionStrings[ “MeinVerbindungsString” ]; var factory = DbProviderFactories

GetFactory(cs.ProviderName); using ( IDbConnection connection = new factory

CreateConnection ( cs

ConnectionString )) { connection

offen(); DataContext db = neuer DataContext ( Verbindung ); Tabelle < Produkt > Tabelle = db

GetTable < Produkt > (); var query = from p in table wobei p

Nachname

StartsWith (“A”) reihenfolge nach p

ID auswählen p ; foreach (var p in Abfrage) Konsole

WriteLine( p. name ); } } }

Alternativ können auch sogenannte Erweiterungsmethoden mit Lambda-Ausdrücken verwendet werden

Auch LINQ-Abfragen werden vom Compiler in solche übersetzt

var query = products

Wo ( p => p

Name

StartsWith ( “A” ))

OrderBy ( p => p. id ); foreach ( var Produkt in Abfrage ) { Console

WriteLine ( Produktname

Name ); }

Mit der Funktion Single kann ein einzelner Datensatz ermittelt werden

Das folgende Beispiel findet den Datensatz mit der ID 1.

Console

WriteLine ( products

Single ( p => p

ID == 1 )

Name );

Wenn die Abfrage jedoch mehrere Datensätze findet, wird eine InvalidOperationException ausgelöst

LINQ to XML [ Bearbeiten | Quelle bearbeiten ]

Unten sehen Sie ein Beispiel, das zeigt, wie LINQ verwendet werden kann, um Informationen aus einer XML-Datei zu lesen

Als XML-Datei dient die folgende Beispiel-XML-Datei.[18]

Ellen Adams 123 Maple Street Mill Valley CA 10999 USA
Tai Yee 8 Oak Avenue Old Town PA 95819 < /Zip> USA
Bitte hinterlassen Sie Pakete in einem Schuppen neben der Einfahrt

Rasenmäher 1 148,95 Confirm this is electric Babyphone 2 39.98 1999-05-21 < /ShipDate>

Wollte man beispielsweise die Artikelnummern (PartNumber) aller Einträge vom Typ auslesen, könnte man folgenden C#-Code[19]

verwenden

XElement PurchaseOrder = XElement

Load( “purchase_order.xml” ); IEnumerable < string > items = von Artikel in PurchaseOrder

Nachkommen (“Item”) wählen (string) item aus

Attribute( “PartNumber” ); foreach ( var item in items ) { Console

WriteLine (partNumbers

ElementAt (i)); } // Ausgabe: // 872-AA // 926-AA

Eine andere Möglichkeit wäre, mit einer bedingten Abfrage alle Artikel auszuwählen, deren Wert größer als 100 $ ist

Außerdem könnte man das Ergebnis der Abfrage mit orderby nach den Artikelnummern sortieren

XElement Bestellung = XElement

Load( “purchase_order.xml” ); IEnumerable < XElement > items = von Artikel in PurchaseOrder

Nachkommen (“Item”) wobei (int) item

Artikel (“Menge”) * (dezimal) Artikel

Item ( “USPrice”) > 100 orderby ( string ) item

Item( “PartNumber” ) Artikel auswählen ; foreach ( var item in items ) { Console

WriteLine ( item

Attribut (“PartNumber”)

Value ); } // Ausgabe: // 872-AA

LINQ mit Rx [Bearbeiten| Quelle bearbeiten ]

Viele der Erweiterungsmethoden von LINQ sind auch in Rx vorhanden

Im folgenden Beispiel wird die Filterung mithilfe der Where()-Klausel durchgeführt:

mit System ; mit System.Reactive.Subjects ; mit System.Reactive.Linq ; class Program { // Hilfsfunktionen private static Func < int , bool > isEven = n => n % 2 == 0 ; private statische Func < int , bool > isOdd = n => ! isEven( n ); private statische Func < int , bool > isDivisibleBy5 = n => n % 5 == 0 ; static void Main () { var Betreff = neuer Betreff < int > (); using (subject

Where ( isEven )

Where ( isDivisibleBy5 )

Subscribe ( _ => Console

WriteLine ( “FizzBuzz” ))) using ( subject

Where ( isEven )

Where (! isDivisibleBy5 )

Subscribe ( _ => Console. WriteLine( “Fizz” ))) mit ( Betreff

Where ( isOdd )

Where ( isDivisibleBy5 )

Subscribe ( _ => Console

WriteLine ( “Buzz” ))) using ( subject

Where ( isOdd )

Where (! isDivisibleBy5 ).Subscribe ( Console

WriteLine )) { Observable

Bereich ( 1 , 100 )

Abonnieren( Betreff

OnNext ); } } }

Obwohl die Erweiterungsmethoden von Rx auf einer anderen Monade definiert sind ( IObservable anstelle von IEnumerable ), kann auch die Comprehension-Syntax von LINQ verwendet werden, da die Namen der Erweiterungsmethoden identisch sind

Eine andere Möglichkeit ist daher: using System ; mit System.Text ; mit System.Reactive.Linq ; Klasse Programm { statischer String IntToFizzBuzz ( int n ) { neuer StringBuilder ( 8 ) zurückgeben

Append (( n % 2 == 0 ) ? “Fizz” : string

Empty )

Append (( n % 5 == 0 )? “Buzz” : string

Empty )

Append (( n % 2 != 0 && n % 5 != 0 )? n

ToString () : string

Empty )

ToString(); } static void Main (string [] args) { var numbers = Observable

Bereich (1, 100); var fizzBuzz = from n in numbers select IntToFizzBuzz ( n ); zischendes Summen

Abonnieren ( Console

WriteLine ); } }

Özgür Aytekin: LINQ – Theorie und Praxis für Einsteiger

Addison-Wesley, München 2008, ISBN 978-3-8273-2616-4.

Addison-Wesley, München 2008, ISBN 978-3-8273-2616-4

Andreas Kuehnel: Visual C# 2010

Galileo Press, Bonn 2010, ISBN 978-3-8362-1552-7, LINQ to Objects, S

465-496.

Galileo Press, Bonn 2010, ISBN 978-3-8362-1552-7, LINQ to Objects,

Paolo Pialorsi, Marco Russo: Datenbankprogrammierung mit Microsoft LINQ

Microsoft Press Deutschland, Unterschleißheim 2008, ISBN 978-3-86645-428-6.

Microsoft Press Deutschland, Unterschleißheim 2008, ISBN 978-3-86645-428-6

Paolo Pialorsi, Marco Russo: Programmierung von Microsoft LINQ in Microsoft. NET Framework 4

Microsoft Press, Sebastopol CA 2010, ISBN 978-0-7356-4057-3.

Microsoft Press, Sebastopol CA 2010, ISBN 978-0-7356-4057-3

Paolo Pialorsi: Microsoft SharePoint 2010-Entwicklerbuch

Microsoft Press Deutschland, Unterschleißheim 2011, ISBN 978-3-86645-545-0, LINQ to SharePoint, S

113-188.

Microsoft Press Deutschland, Unterschleißheim 2011, ISBN 978-3-86645-545-0, LINQ to SharePoint,

Jesse Liberty, Paul Betts: Programmieren von reaktiven Erweiterungen und LINQ

Apress, 2011, ISBN 978-1-4302-3747-1, p

184.

LINQ in anderen Programmiersprachen [Bearbeiten| Quelle bearbeiten ]

F#

MSDN

Microsoft, abgerufen am 18.05.2014 (Englisch, LINQ-Variante in F#)

Abfrageausdrücke (F#)

In:Microsoft,(Englisch, LINQ-Variante in F#).

Breeze.js

Abgerufen am 18.05.2014 (Englisch, Abfragen im LINQ-Stil für den HTML5-Webspeicher).

CodePlex

Abgerufen am 03.04.2013 (Englisch, LINQ für JavaScript)

Linq

js

In:(Englisch, LINQ für JavaScript).

CodePlex

Abgerufen am 3

April 2013 (Englisch, LINQ to Objects for JavaScript).

JSINQ

In:(Englisch, LINQ to Objects for JavaScript).

Java

PHP

GitHub

Abgerufen am 5

Oktober 2020 (Englisch, LINQ für PHP)

phinq

In:(Englisch, LINQ für PHP).

GitHub

Abgerufen am 5

Oktober 2020 (Englisch, LINQ für PHP)

PHPLinq

In: (Englisch, LINQ für PHP).

GitHub

Abgerufen am 5

Oktober 2020 (Englisch, Yet Another LINQ to Objects for PHP)

YaLinqo

In:(English, Yet Another LINQ to Objects for PHP).

Python

MSAccessでパススルークエリを使用する方法-SQLServerの例 Update

Video unten ansehen

Weitere hilfreiche Informationen im Thema anzeigen access variable in abfrage

access variable in abfrage Sie können die schönen Bilder im Thema sehen

 Update New MSAccessでパススルークエリを使用する方法-SQLServerの例
MSAccessでパススルークエリを使用する方法-SQLServerの例 New

VBA in Excel – Wikibooks, Sammlung freier Lehr-, Sach- und … Update

Access-Makro aus Excel-Arbeitsmappe aufrufen; Aufruf von Prozeduren in der aktuellen Arbeitsmappe mit variablen Makronamen; Gültigkeit von Variablen und Konstanten . Die Gültigkeit: Die Programmierbeispiele. Deklaration auf Prozedurebene; Deklaration auf Modulebene; Statische Variable; Public-Variable; Übergabe von Variablen an eine Funktion

+ hier mehr lesen

Read more

Dieses Buch befindet sich im Programmierregal

Dieses Buch hat eine Druckversion.

Es gibt eine PDF-Version dieses Buches.

Dieses Buch wurde in den Wikibooks:Buchkatalog aufgenommen.

Offline-Version (dieses Buches) [Bearbeiten]

Eine PDF-Version dieses Buches kann von dieser Seite heruntergeladen werden (siehe oberer rechter Rand)

Programmiersyntax und verwandte Konzepte [Bearbeiten]

Schleifen und If-Abfragen [Bearbeiten]

fortgeschrittene Programmierkonzepte [Bearbeiten]

Programmierbeispiele und Verfahrensvorlagen[Bearbeiten]

Access #17: Hier erfährst Du alles zu den Abfrage-Grundlagen mit flexiblen Kriterien! Update

Video ansehen

Weitere hilfreiche Informationen im Thema anzeigen access variable in abfrage

access variable in abfrage Einige Bilder im Thema

 New Update Access #17: Hier erfährst Du alles zu den Abfrage-Grundlagen mit flexiblen Kriterien!
Access #17: Hier erfährst Du alles zu den Abfrage-Grundlagen mit flexiblen Kriterien! Update

PostgreSQL – query from bash script as … – Stack Overflow Update

27.05.2017 · I have a table in my PostgreSQL database which has 3 columns – c_uid, c_defaults and c_settings.c_uid simply stores the name of a user and c_defaults is a long piece of text which contains a lot of data w.r.t that user.. I have to execute a statement from a bash script which selects the value of the c_defaults column based on the c_uid value and this needs to be done …

+ mehr hier sehen

Read more

Ich habe eine Tabelle in meiner PostgreSQL-Datenbank, die 3 Spalten hat – c_uid, c_defaults und c_settings

c_uid speichert einfach den Namen eines Benutzers und c_defaults ist ein langer Text, der viele Daten zu diesem Benutzer enthält

Ich muss eine Anweisung aus einem Bash-Skript ausführen, das den Wert der c_defaults-Spalte basierend auf dem c_uid-Wert auswählt und dies muss vom Datenbankbenutzer ‘postgres’ erledigt werden

Auf der CLI kann ich Folgendes tun:

[mymachine]# su postgres bash-4.1$psql postgres=#\c database_name Sie sind jetzt als Benutzer „postgres“ mit der Datenbank „database_name“ verbunden

database_name=#SELECT c_defaults FROM user_info WHERE c_uid = ‘testuser’;

Wie erreiche ich dies jedoch durch ein Bash-Skript? Das Ziel besteht darin, die Informationen aus dieser Spalte abzurufen, sie zu bearbeiten und wieder in diese Spalte zu schreiben – alles über ein Bash-Skript.

【Excel中級者向け】メンサ会員 本気のACCESS入門講座!理解してアクセスを使う データベースから学ぼう・Accessとは・テーブル設計・主キー・SQL・クエリ・リレーションシップ・フォーム Update

Video ansehen

Neue Informationen zum Thema access variable in abfrage

access variable in abfrage Ähnliche Bilder im Thema

 New 【Excel中級者向け】メンサ会員 本気のACCESS入門講座!理解してアクセスを使う データベースから学ぼう・Accessとは・テーブル設計・主キー・SQL・クエリ・リレーションシップ・フォーム
【Excel中級者向け】メンサ会員 本気のACCESS入門講座!理解してアクセスを使う データベースから学ぼう・Accessとは・テーブル設計・主キー・SQL・クエリ・リレーションシップ・フォーム Update

MySQL :: MySQL 5.6 Reference Manual :: 5.1.7 Server System … Aktualisiert

The access control granted to clients on the named pipe created by the MySQL server is set to the minimum necessary for successful communication when the named_pipe system variable is enabled to support named-pipe connections. Some MySQL client software can open named pipe connections without any additional configuration, however, other client software may still …

+ hier mehr lesen

Read more

authentication_windows_log_level Befehlszeilenformat –authentication-windows-log-level=# Systemvariable authentication_windows_log_level Geltungsbereich Global Dynamisch Nein Typ Ganzzahl Standardwert 2 Minimalwert 0 Maximalwert 4 Diese Variable ist nur verfügbar, wenn das Windows-Authentifizierungs-Plug-in authentication_windows aktiviert ist und Code debuggt aktiviert

Siehe Abschnitt 6.4.1.7, „Windows Pluggable Authentication“

Diese Variable legt die Protokollierungsebene für das Windows-Authentifizierungs-Plugin fest

Die folgende Tabelle zeigt die zulässigen Werte

Wert Beschreibung 0 Keine Protokollierung 1 Nur Fehlermeldungen protokollieren 2 Meldungen und Warnmeldungen der Protokollebene 1 3 Meldungen und Informationshinweise der Protokollebene 2 4 Meldungen und Debug-Meldungen der Protokollebene 3

authentication_windows_use_principal_name Befehlszeilenformat –authentication-windows-use-principal-name[={OFF|ON}] Systemvariable authentication_windows_use_principal_name Geltungsbereich Global Dynamisch Nein Typ Boolesch Standardwert ON Diese Variable ist nur verfügbar, wenn das Windows-Authentifizierungs-Plug-in authentication_windows aktiviert ist

Siehe Abschnitt 6.4.1.7, „Windows Pluggable Authentication“

Ein Client, der sich mit der Funktion InitSecurityContext() authentifiziert, sollte eine Zeichenfolge bereitstellen, die den Dienst identifiziert, mit dem er eine Verbindung herstellt ( targetName )

MySQL verwendet den Prinzipalnamen (UPN) des Kontos, unter dem der Server läuft

Der UPN hat die Form user_id @ computer_name und muss nirgendwo registriert werden, um verwendet zu werden

Dieser UPN wird vom Server zu Beginn des Authentifizierungs-Handshakes gesendet

Diese Variable steuert, ob der Server den UPN in der anfänglichen Abfrage sendet

Standardmäßig ist die Variable aktiviert

Aus Sicherheitsgründen kann es deaktiviert werden, um zu vermeiden, dass der Kontoname des Servers als Klartext an einen Client gesendet wird

Wenn die Variable deaktiviert ist, sendet der Server in der ersten Abfrage immer ein 0x00-Byte, der Client gibt targetName nicht an, und folglich wird NTLM-Authentifizierung verwendet

Wenn der Server seinen UPN nicht abrufen kann (was hauptsächlich in Umgebungen vorkommt, die die Kerberos-Authentifizierung nicht unterstützen), wird der UPN nicht vom Server gesendet und die NTLM-Authentifizierung verwendet.

automatic_sp_privileges Befehlszeilenformat –automatic-sp-privileges[ ={OFF|ON}] Systemvariable automatic_sp_privileges Geltungsbereich Global Dynamisch Ja Typ Boolean Standardwert ON Wenn diese Variable den Wert 1 (Standardwert) hat, gewährt der Server dem Ersteller einer gespeicherten Routine automatisch die EXECUTE- und ALTER ROUTINE-Berechtigungen

wenn der Benutzer die Routine nicht bereits ausführen und ändern oder löschen kann

(Das ALTER ROUTINE-Privileg ist erforderlich, um die Routine zu löschen.) Der Server löscht diese Privilegien auch automatisch vom Ersteller, wenn die Routine gelöscht wird

Wenn automatic_sp_privileges 0 ist, fügt der Server diese Privilegien nicht automatisch hinzu oder entfernt sie

Der Ersteller einer Routine ist das Konto, das verwendet wird, um die CREATE-Anweisung dafür auszuführen

Dies ist möglicherweise nicht dasselbe wie das Konto, das in der Routinendefinition als DEFINER bezeichnet wird

Wenn Sie mysqld mit –skip-new starten, wird automatic_sp_privileges auf OFF gesetzt

Siehe auch Abschnitt 20.2.2, „Gespeicherte Routinen und MySQL-Privilegien“

Avoid_temporal_upgrade Befehlszeilenformat –avoid-temporal-upgrade[={OFF|ON}] Eingeführt 5.6.24 Veraltet 5.6.24 Systemvariable Avoid_temporal_upgrade Geltungsbereich Global Dynamisch Ja Typ Boolesch Standardwert OFF Diese Variable steuert, ob ALTER TABLE implizit temporale Spalten aktualisiert festgestellt, dass sie im Format vor 5.6.4 vorliegen (Spalten TIME , DATETIME und TIMESTAMP ohne Unterstützung für die Genauigkeit von Bruchteilen von Sekunden)

Das Aktualisieren solcher Spalten erfordert einen Tabellenneuaufbau, wodurch jegliche Verwendung von schnellen Änderungen verhindert wird, die andernfalls für die auszuführende Operation gelten könnten

Diese Variable ist standardmäßig deaktiviert

Die Aktivierung bewirkt, dass ALTER TABLE temporale Spalten nicht neu erstellt und dadurch mögliche schnelle Änderungen nutzen kann

Diese Variable wurde in MySQL 5.6.24 hinzugefügt

Es ist veraltet; Erwarten Sie, dass es in einer zukünftigen MySQL-Version entfernt wird.

back_log Befehlszeilenformat –back-log=# Systemvariable back_log Gültigkeitsbereich Global Dynamisch Nein Typ Ganzzahl Standardwert -1 (bedeutet automatische Größenanpassung; weisen Sie diesen Literalwert nicht zu) Minimalwert 1 Maximalwert 65535 Die Anzahl der ausstehenden Verbindungsanfragen, die MySQL verarbeiten kann verfügen über

Dies kommt ins Spiel, wenn der Haupt-MySQL-Thread in sehr kurzer Zeit sehr viele Verbindungsanfragen erhält

Es dauert dann einige Zeit (wenn auch sehr wenig), bis der Haupt-Thread die Verbindung überprüft und einen neuen Thread startet

Der back_log-Wert gibt an, wie viele Anfragen in dieser kurzen Zeit gestapelt werden können, bevor MySQL vorübergehend aufhört, neue Anfragen zu beantworten

Sie müssen dies nur erhöhen, wenn Sie eine große Anzahl von Verbindungen in kurzer Zeit erwarten

Mit anderen Worten, dieser Wert ist die Größe der Empfangswarteschlange für eingehende TCP/IP-Verbindungen

Ihr Betriebssystem hat eine eigene Begrenzung für die Größe dieser Warteschlange

Die Handbuchseite für den Unix-Systemaufruf listen() sollte mehr Details enthalten

Überprüfen Sie Ihre Betriebssystemdokumentation auf den Maximalwert für diese Variable

back_log kann nicht höher als das Limit Ihres Betriebssystems eingestellt werden

Der Standardwert basiert auf der folgenden Formel, begrenzt auf ein Limit von 900: 50 + (max_connections / 5)

basedir-Befehlszeilenformat –basedir=dir_name Systemvariable basedir-Bereich Global Dynamisch Nein Typ Verzeichnisname Standardwert konfigurationsabhängiger Standard Der Pfad zum Basisverzeichnis der MySQL-Installation

big_tables-Befehlszeilenformat –big-tables[={OFF |ON}] Systemvariable big_tables Geltungsbereich Global, Sitzung Dynamisch Ja Typ Boolean Standardwert OFF Wenn aktiviert, speichert der Server alle temporären Tabellen auf der Festplatte und nicht im Arbeitsspeicher

Dies verhindert die meisten Die Tabelle tbl_name ist voll Fehler bei SELECT-Operationen, die eine große temporäre Tabelle erfordern, verlangsamt aber auch Abfragen, für die In-Memory-Tabellen ausreichen würden

Der Standardwert für neue Verbindungen ist AUS (temporäre Tabellen im Arbeitsspeicher verwenden)

Normalerweise sollte es nie erforderlich sein, diese Variable zu aktivieren, da der Server in der Lage ist, große Ergebnismengen automatisch zu verarbeiten, indem er Speicher für kleine temporäre Tabellen verwendet und nach Bedarf zu plattenbasierten Tabellen wechselt

bind_address Befehlszeilenformat –bind-address =adr Systemvariable bind_address Geltungsbereich Global Dynamisch Nein Typ Zeichenfolge Standardwert * Der MySQL-Server lauscht auf einem einzelnen Netzwerk-Socket auf TCP/IP-Verbindungen

Dieser Socket ist an eine einzelne Adresse gebunden, aber es ist möglich, dass eine Adresse auf mehrere Netzwerkschnittstellen abgebildet wird

Um eine Adresse anzugeben, setzen Sie bind_address= addr beim Serverstart, wobei addr eine IPv4- oder IPv6-Adresse oder ein Hostname ist

Wenn Adresse ein Hostname ist, löst der Server den Namen in eine IP-Adresse auf und bindet an diese Adresse

Wenn ein Hostname in mehrere IP-Adressen aufgelöst wird, verwendet der Server die erste IPv4-Adresse, falls vorhanden, oder andernfalls die erste IPv6-Adresse

Der Server behandelt verschiedene Arten von Adressen wie folgt: Wenn die Adresse * ist, akzeptiert der Server TCP/IP-Verbindungen auf allen IPv4-Schnittstellen des Serverhosts und, wenn der Serverhost IPv6 unterstützt, auf allen IPv6-Schnittstellen

Verwenden Sie diese Adresse, um sowohl IPv4- als auch IPv6-Verbindungen auf allen Serverschnittstellen zuzulassen

Dieser Wert ist der Standardwert.

Wenn die Adresse 0.0.0.0 ist, akzeptiert der Server TCP/IP-Verbindungen auf allen Server-Host-IPv4-Schnittstellen

Wenn die Adresse :: ist, akzeptiert der Server TCP/IP-Verbindungen auf allen Server-Host-IPv4- und IPv6-Schnittstellen

Wenn es sich bei der Adresse um eine IPv4-zugeordnete Adresse handelt, akzeptiert der Server TCP/IP-Verbindungen für diese Adresse im IPv4- oder IPv6-Format

Wenn der Server beispielsweise an ::ffff:127.0.0.1 gebunden ist, können sich Clients mit –host=127.0.0.1 oder –host=::ffff:127.0.0.1 verbinden.

Wenn die Adresse eine „normale“ IPv4- oder IPv6-Adresse ist (z

B

127.0.0.1 oder ::1 ), akzeptiert der Server TCP/IP-Verbindungen nur für diese IPv4- oder IPv6-Adresse

Wenn die Bindung an die Adresse fehlschlägt, gibt der Server einen Fehler aus und startet nicht

Wenn Sie beabsichtigen, den Server an eine bestimmte Adresse zu binden, stellen Sie sicher, dass die Systemtabelle mysql.user ein Konto mit Administratorrechten enthält, mit dem Sie sich mit dieser Adresse verbinden können

Andernfalls können Sie den Server nicht herunterfahren

Wenn Sie den Server beispielsweise an * binden, können Sie sich mit allen vorhandenen Konten mit ihm verbinden

Wenn Sie den Server jedoch an ::1 binden, akzeptiert er nur Verbindungen über diese Adresse

Stellen Sie in diesem Fall zunächst sicher, dass das Konto „root“@“::1“ in der mysql.user-Tabelle vorhanden ist, damit Sie sich weiterhin mit dem Server verbinden können, um ihn herunterzufahren

block_encryption_mode Befehlszeilenformat –block- encryption-mode=# Eingeführt 5.6.17 Systemvariable block_encryption_mode Geltungsbereich Global, Sitzung Dynamisch Ja Typ Zeichenfolge Standardwert aes-128-ecb Diese Variable steuert den Blockverschlüsselungsmodus für blockbasierte Algorithmen wie AES

Es wirkt sich auf die Verschlüsselung für AES_ENCRYPT() und AES_DECRYPT() aus

block_encryption_mode nimmt einen Wert im Format aeskeylen-mode an, wobei keylen die Schlüssellänge in Bits und mode der Verschlüsselungsmodus ist

Bei dem Wert wird die Groß-/Kleinschreibung nicht beachtet

Zulässige keylen-Werte sind 128, 192 und 256

Zulässige Verschlüsselungsmodi hängen davon ab, ob MySQL mit OpenSSL oder yaSSL kompiliert wurde: Für OpenSSL sind zulässige Moduswerte: ECB , CBC , CFB1 , CFB8 , CFB128 , OFB

Zulässige Moduswerte für yaSSL sind: ECB , CBC Diese Anweisung bewirkt beispielsweise, dass die AES-Verschlüsselungsfunktionen eine Schlüssellänge von 256 Bit und den CBC-Modus verwenden: SET block_encryption_mode = ‘aes-256-cbc’; Bei Versuchen, block_encryption_mode auf einen Wert zu setzen, der eine nicht unterstützte Schlüssellänge oder einen Modus enthält, der von der SSL-Bibliothek nicht unterstützt wird, tritt ein Fehler auf

Diese Variable wurde in MySQL 5.6.17 hinzugefügt

bulk_insert_buffer_size Befehlszeilenformat –bulk-insert-buffer-size=# Systemvariable bulk_insert_buffer_size Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 8388608 Minimalwert 0 Maximalwert (64-Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 MyISAM verwendet einen speziellen baumähnlichen Cache, um Masseneinfügungen für INSERT. .

SELECT , INSERT. .

VALUES (…), (…), zu beschleunigen

.

und LOAD DATA beim Hinzufügen von Daten zu nicht leeren Tabellen

Diese Variable begrenzt die Größe des Cache-Baums in Byte pro Thread

Wenn Sie es auf 0 setzen, wird diese Optimierung deaktiviert

Der Standardwert ist 8 MB

character_set_client Systemvariable character_set_client Geltungsbereich Global, Sitzung Dynamisch Ja Typ Zeichenfolge Standardwert utf8 Der Zeichensatz für Anweisungen, die vom Client eingehen

Der Sitzungswert dieser Variablen wird unter Verwendung des vom Client angeforderten Zeichensatzes festgelegt, wenn der Client eine Verbindung zum Server herstellt

(Viele Clients unterstützen eine Option –default-character-set, damit dieser Zeichensatz explizit angegeben werden kann

Siehe auch Abschnitt 10.4, „Verbindungszeichensätze und Sortierungen“.) Der globale Wert der Variablen wird verwendet, um den Sitzungswert festzulegen in Fällen, in denen der vom Client angeforderte Wert unbekannt oder nicht verfügbar ist oder der Server so konfiguriert ist, dass er Clientanforderungen ignoriert: Der Client fordert einen Zeichensatz an, der dem Server nicht bekannt ist

Beispielsweise fordert ein für Japanisch aktivierter Client sjis an, wenn er sich mit einem Server verbindet, der nicht mit sjis-Unterstützung konfiguriert ist

Der Client stammt von einer MySQL-Version, die älter als MySQL 4.1 ist, und fordert daher keinen Zeichensatz an –skip-character-set-client-handshake Option, die bewirkt, dass die Client-Zeichensatzkonfiguration ignoriert wird

Dieses Verhalten von MySQL 4.0 reproduziert sich und ist nützlich, wenn Sie den Server aktualisieren möchten, ohne alle Clients zu aktualisieren

Einige Zeichensätze können nicht als Client-Zeichensatz verwendet werden

Der Versuch, sie als Wert von character_set_client zu verwenden, erzeugt einen Fehler

Siehe Unzulässige Client-Zeichensätze.

character_set_connection Systemvariable character_set_connection Geltungsbereich Global, Sitzung Dynamisch Ja Typ Zeichenfolge Standardwert utf8 Der Zeichensatz, der für Literale verwendet wird, die ohne Zeichensatzeinführung angegeben werden, und für die Umwandlung von Zahlen in Zeichenfolgen

Informationen zu Einführern finden Sie in Abschnitt 10.3.8, „Einführer für Zeichensätze“

character_set_database Systemvariable character_set_database Geltungsbereich Global, Sitzung Dynamisch Ja Typ Zeichenfolge Standardwert latin1 Fußnote Diese Option ist dynamisch, sollte jedoch nur vom Server festgelegt werden

Sie sollten diese Variable nicht manuell setzen

Der von der Standarddatenbank verwendete Zeichensatz

Der Server setzt diese Variable immer dann, wenn sich die Standarddatenbank ändert

Wenn es keine Standarddatenbank gibt, hat die Variable denselben Wert wie character_set_server.

character_set_filesystem Befehlszeilenformat –character-set-filesystem=name Systemvariable character_set_filesystem Geltungsbereich Global, Sitzung Dynamisch Ja Typ Zeichenfolge Standardwert binär Der Zeichensatz des Dateisystems

Diese Variable wird verwendet, um Zeichenfolgenliterale zu interpretieren, die sich auf Dateinamen beziehen, wie z

B

in den Anweisungen LOAD DATA und SELECT. .

INTO OUTFILE und der Funktion LOAD_FILE()

Solche Dateinamen werden von character_set_client in character_set_filesystem konvertiert, bevor der Versuch zum Öffnen der Datei erfolgt

Der Standardwert ist binary , was bedeutet, dass keine Konvertierung stattfindet

Für Systeme, auf denen Multibyte-Dateinamen erlaubt sind, kann ein anderer Wert angemessener sein

Wenn das System beispielsweise Dateinamen mit UTF-8 darstellt, setzen Sie character_set_filesystem auf ‘utf8mb4’.

character_set_results Systemvariable character_set_results Geltungsbereich Global, Sitzung Dynamisch Ja Typ Zeichenfolge Standardwert utf8 Der Zeichensatz, der für die Rückgabe von Abfrageergebnissen an den Client verwendet wird

Dazu gehören Ergebnisdaten wie Spaltenwerte, Ergebnismetadaten wie Spaltennamen und Fehlermeldungen

character_set_system Systemvariable character_set_system Geltungsbereich Global Dynamisch Nein Typ Zeichenfolge Standardwert utf8 Der Zeichensatz, der vom Server zum Speichern von Bezeichnern verwendet wird

Der Wert ist immer utf8.

collation_database Systemvariable collation_database Geltungsbereich Global, Sitzung Dynamisch Ja Typ Zeichenfolge Standardwert latin1_swedish_ci Fußnote Diese Option ist dynamisch, sollte aber nur vom Server festgelegt werden

Sie sollten diese Variable nicht manuell setzen

Die Sortierung, die von der Standarddatenbank verwendet wird

Der Server setzt diese Variable immer dann, wenn sich die Standarddatenbank ändert

Wenn es keine Standarddatenbank gibt, hat die Variable denselben Wert wie collation_server 0 1 2 Bei AUTO (Standardeinstellung) erlaubt MySQL die gleichzeitige Ausführung von INSERT- und SELECT-Anweisungen für MyISAM-Tabellen, die keine freien Blöcke in der Mitte der Datendatei haben

Diese Variable kann die in der folgenden Tabelle gezeigten Werte annehmen

Der Variablen können entweder die Namenswerte oder entsprechende ganzzahlige Werte zugewiesen werden

Wert Beschreibung NEVER (oder 0) Deaktiviert gleichzeitige Einfügungen

AUTO (oder 1) (Standard) Aktiviert gleichzeitige Einfügungen für MyISAM-Tabellen, die keine Löcher haben

ALWAYS (oder 2) Aktiviert gleichzeitige Einfügungen für alle MyISAM-Tabellen, sogar solche, die Löcher haben

Bei einer Tabelle mit einem Loch werden neue Zeilen am Ende der Tabelle eingefügt, wenn sie von einem anderen Thread verwendet wird

Andernfalls erwirbt MySQL eine normale Schreibsperre und fügt die Zeile in das Loch ein

Wenn Sie mysqld mit –skip-new starten, wird concurrent_insert auf NEVER gesetzt

Siehe auch Abschnitt 8.11.3, „Gleichzeitige Einfügungen“.

connect_timeout Befehlszeilenformat –connect-timeout=# Systemvariable connect_timeout Geltungsbereich Global Dynamisch Ja Typ Integer Standardwert 10 Minimalwert 2 Maximalwert 31536000 Die Anzahl der Sekunden, die der mysqld-Server auf ein Verbindungspaket wartet, bevor er mit Bad Handshake antwortet

Der Standardwert ist 10 Sekunden

Das Erhöhen des Werts für connect_timeout kann hilfreich sein, wenn Clients häufig auf Fehler der Form Lost connection to MySQL server at ‘XXX’, system error: errno.

core_file Systemvariable core_file Geltungsbereich Global Dynamisch Nein Typ Boolesch Standardwert OFF Ob eine Core-Datei geschrieben werden soll, wenn Der Server wird unerwartet beendet

Diese Variable wird durch die Option –core-file festgelegt

datadir Befehlszeilenformat –datadir=dir_name Systemvariable datadir Geltungsbereich Global Dynamisch Nein Typ Verzeichnisname Der Pfad zum Datenverzeichnis des MySQL-Servers

Relative Pfade werden in Bezug auf das aktuelle Verzeichnis aufgelöst

Wenn der Server wahrscheinlich automatisch gestartet wird (dh in Kontexten, in denen Sie nicht davon ausgehen können, welches das aktuelle Verzeichnis ist), ist es am besten, den datadir-Wert als absoluten Pfad anzugeben

date_format Diese Variable wird nicht verwendet

Es ist veraltet; erwarten, dass sie in einer zukünftigen MySQL-Version entfernt wird

datetime_format Diese Variable wird nicht verwendet

Es ist veraltet; erwarten, dass es in einem zukünftigen MySQL-Release entfernt wird

debug Befehlszeilenformat –debug[=debug_options] Systemvariable debug Geltungsbereich Global, Sitzung Dynamisch Ja Typ Zeichenfolge Standardwert (Unix) d:t:i:o,/tmp /mysqld.trace Standardwert (Windows) d:t:i:O,\mysqld.trace Diese Variable zeigt die aktuellen Debugging-Einstellungen an

Es ist nur für Server verfügbar, die mit Debugging-Unterstützung gebaut wurden

Der Anfangswert ergibt sich aus dem Wert von Instanzen der Option –debug, die beim Serverstart angegeben wurden

Die globalen und Sitzungswerte können zur Laufzeit festgelegt werden

Das Festlegen des Sitzungswerts dieser Systemvariablen ist eine eingeschränkte Operation

Der Sitzungsbenutzer muss über ausreichende Berechtigungen verfügen, um eingeschränkte Sitzungsvariablen festzulegen

Siehe Abschnitt 5.1.8.1, „Berechtigungen für Systemvariablen“

Wenn Sie einen Wert zuweisen, der mit + oder – beginnt, wird der Wert zum aktuellen Wert addiert oder von ihm subtrahiert: mysql> SET debug = ‘T’; mysql> SELECT @@debug; +———+ | @@debuggen | +———+ | T

| +———+ mysql> SET debug = ‘+P’; mysql> SELECT @@debug; +———+ | @@debuggen | +———+ | P:T | +———+ mysql> SET debug = ‘-P’; mysql> SELECT @@debug; +———+ | @@debuggen | +———+ | T

| +———+ Weitere Informationen finden Sie in Abschnitt 5.8.3, „Das DBUG-Paket“

Systemvariable debug_sync debug_sync Gültigkeitsbereich Sitzung Dynamisch Ja Typ String Diese Variable ist die Benutzerschnittstelle zur Debug-Sync-Funktion

Die Verwendung von Debug Sync erfordert, dass MySQL mit der CMake-Option -DENABLE_DEBUG_SYNC=1 konfiguriert wird (siehe Abschnitt 2.9.7, „MySQL-Quellkonfigurationsoptionen“)

Wenn Debug Sync nicht einkompiliert ist, ist diese Systemvariable nicht verfügbar

Der globale Variablenwert ist schreibgeschützt und zeigt an, ob die Einrichtung aktiviert ist

Standardmäßig ist Debug Sync deaktiviert und der Wert von debug_sync ist OFF

Wenn der Server mit –debug-sync-timeout= N gestartet wird, wobei N ein Timeout-Wert größer als 0 ist, wird Debug Sync aktiviert und der Wert von debug_sync ist ON – aktuelles Signal, gefolgt vom Signalnamen

Außerdem wird N zum Standardtimeout für einzelne Synchronisationspunkte

Der Sitzungswert kann von jedem Benutzer gelesen werden und hat denselben Wert wie die globale Variable

Der Sitzungswert kann festgelegt werden, um Synchronisationspunkte zu steuern

Das Festlegen des Sitzungswerts dieser Systemvariablen ist eine eingeschränkte Operation

Der Sitzungsbenutzer muss über ausreichende Berechtigungen verfügen, um eingeschränkte Sitzungsvariablen festzulegen

Siehe Abschnitt 5.1.8.1, „Berechtigungen für Systemvariablen“

Eine Beschreibung der Debug-Sync-Funktion und der Verwendung von Synchronisationspunkten finden Sie unter MySQL Internals: Test Synchronization.

default_storage_engine Befehlszeilenformat –default-storage-engine=name Systemvariable default_storage_engine Geltungsbereich Global, Sitzung Dynamisch Ja Typ Enumeration Standardwert InnoDB Die Standardspeicher-Engine für Tabellen

Siehe Kapitel 15, Alternative Speicher-Engines

Diese Variable legt die Speicher-Engine nur für permanente Tabellen fest

Um die Speicher-Engine für TEMPORARY-Tabellen festzulegen, legen Sie die Systemvariable default_tmp_storage_engine fest

Um anzuzeigen, welche Speicher-Engines verfügbar und aktiviert sind, verwenden Sie die Anweisung SHOW ENGINES oder fragen Sie die Tabelle INFORMATION_SCHEMA ENGINES ab

default_storage_engine sollte gegenüber storage_engine bevorzugt verwendet werden, was veraltet ist

Wenn Sie die Standard-Speicher-Engine beim Serverstart deaktivieren, müssen Sie die Standard-Engine sowohl für permanente als auch für TEMPORARY-Tabellen auf eine andere Engine setzen oder der Server kann nicht starten

default_tmp_storage_engine Befehlszeilenformat –default-tmp-storage-engine=name Systemvariable default_tmp_storage_engine Geltungsbereich Global, Sitzung Dynamisch Ja Typ Enumeration Standardwert InnoDB Die Standardspeicher-Engine für TEMPORARY-Tabellen (erstellt mit CREATE TEMPORARY TABLE )

Um die Speicher-Engine für permanente Tabellen festzulegen, legen Sie die Systemvariable default_storage_engine fest

Wenn Sie die Standard-Speicher-Engine beim Serverstart deaktivieren, müssen Sie die Standard-Engine sowohl für permanente als auch für TEMPORARY-Tabellen auf eine andere Engine setzen, sonst kann der Server nicht starten

delayed_insert_limit Befehlszeilenformat –delayed-insert-limit=# Veraltet Ja Systemvariable delay_insert_limit Geltungsbereich Global Dynamisch Ja Typ Ganzzahl Standardwert 100 Minimalwert 1 Maximalwert (64-Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 Es sind irgendwelche SELECT-Anweisungen anhängig

Wenn dies der Fall ist, ermöglicht es ihnen die Ausführung, bevor sie mit dem Einfügen verzögerter Zeilen fortfahren

Diese Systemvariable ist veraltet (weil DELAYED-Einfügungen veraltet sind); erwarten, dass es in einer zukünftigen Version entfernt wird

delayed_insert_timeout Befehlszeilenformat –delayed-insert-timeout=# Veraltet Ja Systemvariable delayed_insert_timeout Gültigkeitsbereich Global Dynamisch Ja Typ Integer Standardwert 300 Wie viele Sekunden ein INSERT DELAYED-Handler-Thread warten soll INSERT-Anweisungen vor dem Beenden

Diese Systemvariable ist veraltet (weil DELAYED-Einfügungen veraltet sind); erwartet, dass es in einer zukünftigen Version entfernt wird.

delayed_queue_size Befehlszeilenformat –delayed-queue-size=# Veraltet Ja Systemvariable delayed_queue_size Geltungsbereich Global Dynamisch Ja Typ Ganzzahl Standardwert 1000 Mindestwert 1 Höchstwert (64-Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 Dies ist eine Begrenzung pro Tabelle für die Anzahl der Zeilen, die in die Warteschlange gestellt werden, wenn INSERT DELAYED-Anweisungen für nicht transaktionale Tabellen verarbeitet werden

Wenn die Warteschlange voll wird, wartet jeder Client, der eine INSERT DELAYED-Anweisung ausgibt, bis wieder Platz in der Warteschlange ist

Diese Systemvariable ist veraltet (weil DELAYED-Einfügungen veraltet sind); erwartet, dass es in einer zukünftigen Version entfernt wird

disconnect_on_expired_password Befehlszeilenformat –disconnect-on-expired-password[={OFF|ON}] Systemvariable disconnect_on_expired_password Geltungsbereich Global Dynamisch Nein Typ Boolesch Standardwert ON Diese Variable steuert, wie das server behandelt Clients mit abgelaufenen Passwörtern: Wenn der Client angibt, dass er mit abgelaufenen Passwörtern umgehen kann, ist der Wert von disconnect_on_expired_password irrelevant

Der Server lässt zu, dass der Client eine Verbindung herstellt, versetzt ihn jedoch in den Sandbox-Modus

Wenn der Client nicht angibt, dass er mit abgelaufenen Passwörtern umgehen kann, behandelt der Server den Client gemäß dem Wert von disconnect_on_expired_password : Wenn disconnect_on_expired_password : aktiviert ist, trennt der Server die Klient

Wenn disconnect_on_expired_password : deaktiviert ist, lässt der Server zu, dass der Client eine Verbindung herstellt, versetzt ihn jedoch in den Sandbox-Modus.

Weitere Informationen zum Zusammenspiel von Client- und Servereinstellungen in Bezug auf die Handhabung abgelaufener Passwörter finden Sie in Abschnitt 6.2.10, „Serverbehandlung abgelaufener Passwörter“

div_precision_increment Befehlszeilenformat –div-precision-increment=# Systemvariable div_precision_increment Gültigkeitsbereich Global, Sitzung Dynamisch Ja Typ Ganzzahl Standardwert 4 Mindestwert 0 Höchstwert 30 Diese Variable gibt die Anzahl der Stellen an, um die die Skalierung des Ergebnisses erhöht werden soll von Teilungsoperationen, die mit dem Operator / ausgeführt werden

Der Standardwert ist 4

Die Mindest- und Höchstwerte sind 0 bzw

30

Das folgende Beispiel veranschaulicht die Auswirkung einer Erhöhung des Standardwerts

mysql> AUSWÄHLEN 1/7; +——–+ | 1/7 | +——–+ | 0,1429 | +——–+ mysql> SET div_precision_increment = 12; mysql> AUSWÄHLEN 1/7; +—————-+ | 1/7 | +—————-+ | 0,142857142857 | +—————-+

eq_range_index_dive_limit Befehlszeilenformat –eq-range-index-dive-limit=# Systemvariable eq_range_index_dive_limit Geltungsbereich Global, Sitzung Dynamisch Ja Typ Ganzzahl Standardwert 10 Mindestwert 0 Höchstwert 4294967295 Diese Variable gibt die Anzahl der Gleichheitsbereiche in einem Gleichheitsvergleich an Bedingung, wenn der Optimierer beim Schätzen der Anzahl qualifizierter Zeilen von der Verwendung von Indexsprüngen zu Indexstatistiken wechseln sollte

Es gilt für die Auswertung von Ausdrücken, die eine dieser äquivalenten Formen haben, wobei der Optimierer einen nicht eindeutigen Index verwendet, um col_name-Werte nachzuschlagen: col_name IN(val1,. .., valN) col_name = val1 OR. .

OR col_name = valN In In beiden Fällen enthält der Ausdruck N Gleichheitsbereiche

Der Optimierer kann Zeilenschätzungen mithilfe von Indextauchgängen oder Indexstatistiken vornehmen

Wenn eq_range_index_dive_limit größer als 0 ist, verwendet der Optimierer vorhandene Indexstatistiken anstelle von Indextauchgängen, wenn es eq_range_index_dive_limit oder mehr Gleichheitsbereiche gibt

Um die Verwendung von Indextauchgängen für bis zu N Gleichheitsbereiche zuzulassen, setzen Sie eq_range_index_dive_limit auf N + 1

Um die Verwendung von Indexstatistiken zu deaktivieren und immer Indextauchgänge unabhängig von N zu verwenden, setzen Sie eq_range_index_dive_limit auf 0

Weitere Informationen finden Sie unter Gleichheitsbereichsoptimierung von vielwertigen Vergleichen

Um Tabellenindexstatistiken für beste Schätzungen zu aktualisieren, verwenden Sie ANALYZE TABLE oder deaktiviert und startet oder stoppt den Ereignisplaner

Die möglichen Statuswerte sind ON , OFF und DISABLED

Das Ausschalten des Ereignisplaners ist nicht dasselbe wie das Deaktivieren des Ereignisplaners, für den der Status auf DISABLED gesetzt werden muss

Diese Variable und ihre Auswirkungen auf den Betrieb des Ereignisplaners werden ausführlicher in Abschnitt 20.4.2, „Konfiguration des Ereignisplaners“ behandelt

explizit_defaults_for_timestamp Befehlszeilenformat –explicit-defaults-for-timestamp[={OFF|ON}] Veraltet Ja Systemvariable explizit_defaults_for_timestamp Geltungsbereich Global, Sitzung Dynamisch Ja Typ Boolesch Standardwert OFF Diese Systemvariable bestimmt, ob der Server bestimmte nicht standardmäßige Verhaltensweisen aktiviert Standardwerte und NULL-Wertbehandlung in TIMESTAMP-Spalten

Standardmäßig ist „explicit_defaults_for_timestamp“ deaktiviert, wodurch das nicht standardmäßige Verhalten aktiviert wird

Wenn „explicit_defaults_for_timestamp“ deaktiviert ist, aktiviert der Server das nicht standardmäßige Verhalten und behandelt TIMESTAMP-Spalten wie folgt: TIMESTAMP-Spalten, die nicht explizit mit dem NULL-Attribut deklariert sind, werden automatisch mit dem NOT NULL-Attribut deklariert

See also  Top after effects komposition transparent New

Das Zuweisen eines Werts von NULL für eine solche Spalte ist zulässig und setzt die Spalte auf den aktuellen Zeitstempel DEFAULT CURRENT_TIMESTAMP und ON UPDATE CURRENT_TIMESTAMP Attribute.

TIMESTAMP-Spalten, die der ersten folgen, werden automatisch als DEFAULT ‘0000-00-00 00:00:00’ (der „Null“-Zeitstempel) deklariert, wenn sie nicht explizit mit dem NULL-Attribut oder einem expliziten DEFAULT-Attribut deklariert sind

Für eingefügte Zeilen, die keinen expliziten Wert für eine solche Spalte angeben, wird der Spalte „0000-00-00 00:00:00“ zugewiesen, und es erfolgt keine Warnung

Abhängig davon, ob der strikte SQL-Modus oder der SQL-Modus NO_ZERO_DATE aktiviert ist, kann ein Standardwert von ‘0000-00-00 00:00:00’ ungültig sein

Beachten Sie, dass der traditionelle SQL-Modus den strikten Modus und NO_ZERO_DATE enthält

Siehe Abschnitt 5.1.10, „Server-SQL-Modi“

In MySQL 5.6 sind die gerade beschriebenen nicht standardmäßigen Verhaltensweisen veraltet; erwarten, dass sie in einer zukünftigen MySQL-Version entfernt werden

Wenn „explicit_defaults_for_timestamp“ aktiviert ist, deaktiviert der Server das nicht standardmäßige Verhalten und behandelt TIMESTAMP-Spalten wie folgt: Es ist nicht möglich, einer TIMESTAMP-Spalte den Wert NULL zuzuweisen, um sie auf den aktuellen Zeitstempel zu setzen

Um den aktuellen Zeitstempel zuzuweisen, setzen Sie die Spalte auf CURRENT_TIMESTAMP oder ein Synonym wie NOW().

TIMESTAMP-Spalten, die nicht explizit mit dem Attribut NOT NULL deklariert sind, werden automatisch mit dem Attribut NULL deklariert und lassen NULL-Werte zu

Wenn Sie einer solchen Spalte den Wert NULL zuweisen, wird sie auf NULL gesetzt, nicht auf den aktuellen Zeitstempel

TIMESTAMP-Spalten, die mit dem Attribut NOT NULL deklariert sind, lassen keine NULL-Werte zu

Bei Einfügungen, die NULL für eine solche Spalte angeben, ist das Ergebnis entweder ein Fehler für eine einzeilige Einfügung, wenn der strenge SQL-Modus aktiviert ist, oder es wird ‘0000-00-00 00:00:00’ für mehrzeilige Einfügungen mit eingefügt Strikter SQL-Modus deaktiviert

Wenn Sie der Spalte den Wert NULL zuweisen, wird sie in keinem Fall auf den aktuellen Zeitstempel gesetzt

TIMESTAMP-Spalten, die explizit mit dem NOT NULL-Attribut und ohne explizites DEFAULT-Attribut deklariert sind, werden so behandelt, als hätten sie keinen Standardwert

Bei eingefügten Zeilen, die keinen expliziten Wert für eine solche Spalte angeben, hängt das Ergebnis vom SQL-Modus ab

Wenn der strikte SQL-Modus aktiviert ist, tritt ein Fehler auf

Wenn der strikte SQL-Modus nicht aktiviert ist, wird die Spalte mit dem impliziten Standardwert „0000-00-00 00:00:00“ deklariert, und es wird eine Warnung ausgegeben

Dies ähnelt der Art und Weise, wie MySQL andere temporale Typen wie DATETIME behandelt

Keine TIMESTAMP-Spalte wird automatisch mit den Attributen DEFAULT CURRENT_TIMESTAMP oder ON UPDATE CURRENT_TIMESTAMP deklariert

Diese Attribute müssen explizit angegeben werden

Die erste TIMESTAMP-Spalte in einer Tabelle wird nicht anders behandelt als TIMESTAMP-Spalten, die der ersten folgen

Wenn „explicit_defaults_for_timestamp“ beim Serverstart deaktiviert ist, erscheint diese Warnung im Fehlerprotokoll: [Warning] TIMESTAMP with implicit DEFAULT value is deprecated

Bitte verwenden Sie die Serveroption –explicit_defaults_for_timestamp (weitere Einzelheiten finden Sie in der Dokumentation)

Wie in der Warnung zum Deaktivieren der veralteten nicht standardmäßigen Verhaltensweisen angegeben, aktivieren Sie die Systemvariable „explicit_defaults_for_timestamp“ beim Serverstart

Beachten Sie, dass explizit_defaults_for_timestamp selbst veraltet ist, da sein einziger Zweck darin besteht, die Kontrolle über veraltete TIMESTAMP-Verhaltensweisen zu ermöglichen, die in einer zukünftigen MySQL-Version entfernt werden sollen

Wenn diese Verhaltensweisen entfernt werden, hat „explicit_defaults_for_timestamp“ keinen Zweck; erwarten, dass es auch entfernt wird

Weitere Informationen finden Sie in Abschnitt 11.2.6, „Automatische Initialisierung und Aktualisierung für TIMESTAMP und DATETIME“

external_user Systemvariable external_user Geltungsbereich Sitzung Dynamisch Nein Typ Zeichenfolge Der externe Benutzername, der während des Authentifizierungsprozesses verwendet wird, wie vom Plugin festgelegt, das zur Authentifizierung des Clients verwendet wird

Bei nativer (integrierter) MySQL-Authentifizierung oder wenn das Plugin den Wert nicht festlegt, ist diese Variable NULL

Siehe Abschnitt 6.2.12, „Proxy-Benutzer“.

flush_time Befehlszeilenformat –flush-time=# Systemvariable flush_time Geltungsbereich Global Dynamisch Ja Typ Integer Standardwert 0 Minimalwert 0 Wenn dies auf einen Wert ungleich Null gesetzt ist, werden alle Tabellen alle flush_time Sekunden geschlossen, um Ressourcen freizugeben und ungespülte Daten zu synchronisieren Daten auf Festplatte

Diese Option wird am besten nur auf Systemen mit minimalen Ressourcen verwendet

Der Standardwert ist 0

Hinweis Wenn Flush aktiviert ist, spielt der Wert von Flush_time keine Rolle, und Änderungen an Flush_time haben keine Auswirkung auf das Flush-Verhalten

Foreign_key_checks Systemvariable Foreign_Key_Checks Geltungsbereich Global, Sitzung Dynamisch Ja Typ Boolean Standardwert ON Wenn auf 1 gesetzt ( die Standardeinstellung), werden Fremdschlüsseleinschränkungen überprüft

Wenn der Wert auf 0 gesetzt ist, werden Fremdschlüsseleinschränkungen mit einigen Ausnahmen ignoriert

Beim erneuten Erstellen einer gelöschten Tabelle wird ein Fehler zurückgegeben, wenn die Tabellendefinition nicht den Fremdschlüsseleinschränkungen entspricht, die auf die Tabelle verweisen

Ebenso gibt eine ALTER TABLE-Operation einen Fehler zurück, wenn eine Fremdschlüsseldefinition falsch gebildet ist

Weitere Informationen finden Sie in Abschnitt 13.1.17.5, „Foreign Key Constraints“

Beginnend mit MySQL NDB Cluster 7.3.2 hat das Setzen dieser Variable die gleiche Wirkung auf NDB-Tabellen wie auf InnoDB-Tabellen – zuvor wurde die Einstellung ignoriert und alle derartigen Prüfungen wurden erzwungen (Bug #14095855)

Normalerweise lassen Sie diese Einstellung während des normalen Betriebs aktiviert, um die referenzielle Integrität zu erzwingen

Das Deaktivieren der Fremdschlüsselprüfung kann nützlich sein, um solche Tabellen in einer anderen Reihenfolge als der für ihre Eltern-/Kind-Beziehungen erforderlichen Reihenfolge neu zu laden

Siehe Abschnitt 13.1.17.5, „Foreign Key Constraints“

Das Festlegen von foreign_key_checks auf 0 wirkt sich auch auf Datendefinitionsanweisungen aus: DROP SCHEMA löscht ein Schema, selbst wenn es Tabellen mit Fremdschlüsseln enthält, auf die von Tabellen außerhalb des Schemas verwiesen wird, und DROP TABLE löscht Tabellen mit Fremdschlüsseln, auf die von anderen Tabellen verwiesen wird

Hinweis Das Festlegen von Foreign_Key_Checks auf 1 löst keinen Scan der vorhandenen Tabellendaten aus

Daher werden Zeilen, die der Tabelle hinzugefügt werden, während Foreign_key_checks = 0 ist, nicht auf Konsistenz überprüft

Warnung Bei Foreign_key_checks=0 versetzt das Löschen eines Index, der für eine Fremdschlüsseleinschränkung erforderlich ist, die Tabelle in einen inkonsistenten Zustand und führt dazu, dass die Fremdschlüsselprüfung fehlschlägt, die beim Laden der Tabelle stattfindet

Um dieses Problem zu vermeiden, entfernen Sie die Fremdschlüsseleinschränkung, bevor Sie den Index löschen (Bug #70260)

()~*:””&| Die Liste der Operatoren, die von booleschen Volltextsuchen unterstützt werden, die mit IN BOOLEAN MODE durchgeführt werden

Siehe Abschnitt 12.10.2, „Boolesche Volltextsuche“

Der Standardwert der Variablen ist ‘+ -><()~*:""&|'

Die Regeln zum Ändern des Werts lauten wie folgt: Die Operatorfunktion wird durch die Position innerhalb der Zeichenfolge bestimmt

Der Ersatzwert muss 14 Zeichen lang sein

Jedes Zeichen muss ein nicht alphanumerisches ASCII-Zeichen sein

Entweder das erste oder das zweite Zeichen muss ein Leerzeichen sein.

Es sind keine Duplikate zulässig, außer den Phrasen, die Operatoren an den Positionen 11 und 12 zitieren

Diese beiden Zeichen müssen nicht gleich sein, aber sie sind die einzigen zwei, die sein dürfen.

Die Positionen 10, 13 und 14 (die standardmäßig sind auf : , & und | gesetzt) ​​sind für zukünftige Erweiterungen reserviert Wort, das in einen MyISAM FULLTEXT-Index aufgenommen werden soll

Hinweis FULLTEXT-Indizes für MyISAM-Tabellen müssen neu erstellt werden, nachdem diese Variable geändert wurde

Verwenden Sie REPAIR TABLE tbl_name QUICK.

ft_min_word_len Befehlszeilenformat –ft-min-word-len=# Systemvariable ft_min_word_len Geltungsbereich Global Dynamisch Nein Typ Integer Standardwert 4 Mindestwert 1 Die Mindestlänge des Wortes, das in ein MyISAM aufgenommen werden soll VOLLTEXT-Index

Hinweis FULLTEXT-Indizes für MyISAM-Tabellen müssen neu erstellt werden, nachdem diese Variable geändert wurde

Verwenden Sie REPAIR TABLE tbl_name QUICK.

ft_query_expansion_limit Befehlszeilenformat –ft-query-expansion-limit=# Systemvariable ft_query_expansion_limit Geltungsbereich Global Dynamisch Nein Typ Ganzzahl Standardwert 20 Mindestwert 0 Höchstwert 1000 Die Anzahl der besten Übereinstimmungen, die für Volltextsuchen verwendet werden, die mit WITH QUERY durchgeführt werden ERWEITERUNG.

ft_stopword_file Befehlszeilenformat –ft-stopword-file=Dateiname Systemvariable ft_stopword_file Geltungsbereich Global Dynamisch Nein Typ Dateiname Die Datei, aus der die Liste der Stoppwörter für die Volltextsuche in MyISAM-Tabellen gelesen werden soll

Der Server sucht die Datei im Datenverzeichnis, es sei denn, es wird ein absoluter Pfadname angegeben, um ein anderes Verzeichnis anzugeben

Alle Wörter aus der Datei werden verwendet; Kommentare werden nicht berücksichtigt

Standardmäßig wird eine eingebaute Liste von Stoppwörtern verwendet (wie in der Datei storage/myisam/ft_static.c definiert)

Wenn Sie diese Variable auf die leere Zeichenfolge ( ” ) setzen, wird die Stoppwortfilterung deaktiviert

Siehe auch Abschnitt 12.10.4, „Volltext-Stoppwörter“

Hinweis FULLTEXT-Indizes für MyISAM-Tabellen müssen neu erstellt werden, nachdem diese Variable oder der Inhalt der Stoppwortdatei geändert wurde

Verwenden Sie REPAIR TABLE tbl_name QUICK.

general_log Befehlszeilenformat –general-log[={OFF|ON}] Systemvariable general_log Geltungsbereich Global Dynamisch Ja Typ Boolean Standardwert OFF Ob das allgemeine Abfrageprotokoll aktiviert ist

Der Wert kann 0 (oder OFF ) sein, um das Protokoll zu deaktivieren, oder 1 (oder ON ), um das Protokoll zu aktivieren

Das Ziel für die Protokollausgabe wird durch die Systemvariable log_output gesteuert; Wenn dieser Wert NONE ist, werden keine Protokolleinträge geschrieben, selbst wenn das Protokoll aktiviert ist

general_log_file Befehlszeilenformat –general-log-file=Dateiname Systemvariable general_log_file Geltungsbereich Global Dynamisch Ja Typ Dateiname Standardwert host_name.log Der Name der allgemeinen Abfrageprotokolldatei

Der Standardwert ist host_name. log , aber der Anfangswert kann mit der Option –general_log_file geändert werden Standardwert 1024 Mindestwert 4 Höchstwert (64-Bit-Plattformen) 18446744073709551615 Höchstwert (32-Bit-Plattformen) 4294967295 Die maximal zulässige Ergebnislänge in Bytes für die Funktion GROUP_CONCAT()

Der Standardwert ist 1024

have_compress YES, wenn die zlib-Komprimierungsbibliothek für den Server verfügbar ist, NO, wenn nicht

Wenn nicht, können die Funktionen COMPRESS() und UNCOMPRESS() nicht verwendet werden

have_crypt YES, wenn der Systemaufruf crypt() für den Server verfügbar ist, NO, wenn nicht

Wenn nicht, kann die ENCRYPT()-Funktion nicht verwendet werden

have_dynamic_loading YES, wenn mysqld das dynamische Laden von Plugins unterstützt, NO, wenn nicht

Wenn der Wert NO ist, können Sie keine Optionen wie –plugin-load verwenden, um Plugins beim Serverstart zu laden, oder die INSTALL PLUGIN-Anweisung, um Plugins zur Laufzeit zu laden

have_geometry YES, wenn der Server räumliche Datentypen unterstützt, NO, wenn nicht

.have_openssl Diese Variable ist ein Synonym für have_ssl.

have_profiling YES, wenn die Fähigkeit zur Anweisungsprofilerstellung vorhanden ist, NO, wenn nicht

Falls vorhanden, steuert die Profiling-Systemvariable, ob diese Funktion aktiviert oder deaktiviert ist

Siehe Abschnitt 13.7.5.32, „SHOW PROFILES-Anweisung“

Diese Variable ist veraltet; erwarten, dass es in einer zukünftigen MySQL-Version entfernt wird.

have_query_cache YES, wenn mysqld den Abfrage-Cache unterstützt, NO, wenn nicht.

have_rtree_keys YES, wenn RTREE-Indizes verfügbar sind, NO, wenn nicht

(Diese werden für räumliche Indizes in MyISAM-Tabellen verwendet.) have_ssl-Systemvariable have_ssl Geltungsbereich Global Dynamisch Nein Typ Zeichenfolge Gültige Werte YES (SSL-Unterstützung verfügbar) DISABLED (SSL-Unterstützung wurde in den Server kompiliert, aber der Server wurde nicht mit den erforderlichen Optionen gestartet, um sie zu aktivieren) YES, wenn mysqld SSL-Verbindungen unterstützt, DISABLED, wenn Der Server wurde nicht mit den entsprechenden Verbindungsverschlüsselungsoptionen gestartet, um SSL-Verbindungen zu aktivieren

Weitere Informationen finden Sie unter Abschnitt 2.9.6, „Konfigurieren der SSL-Bibliotheksunterstützung“.

have_symlink YES, wenn Unterstützung für symbolische Links aktiviert ist, NO, wenn nicht

Dies ist unter Unix für die Unterstützung der Tabellenoptionen DATA DIRECTORY und INDEX DIRECTORY und unter Windows für die Unterstützung von Datenverzeichnis-Symlinks erforderlich

Wenn der Server mit der Option –skip-symbolic-links gestartet wird, ist der Wert DISABLED

bedeutet automatische Größenanpassung; weisen Sie diesen Literalwert nicht zu) Minimaler Wert 0 Maximaler Wert 65536 Der MySQL-Server verwaltet einen In-Memory-Host-Cache, der Client-Hostnamen und IP-Adressinformationen enthält und verwendet wird, um DNS-Suchvorgänge (Domain Name System) zu vermeiden; siehe Abschnitt 5.1.11.2, „DNS-Lookups und der Host-Cache“

Die Variable host_cache_size steuert die Größe des Host-Cache sowie die Größe der Leistungsschema-Tabelle host_cache, die den Cache-Inhalt verfügbar macht

Das Festlegen von host_cache_size hat folgende Auswirkungen: Das Festlegen der Größe auf 0 deaktiviert den Host-Cache

Wenn der Cache deaktiviert ist, führt der Server jedes Mal, wenn ein Client eine Verbindung herstellt, eine DNS-Suche durch

Das Ändern der Größe zur Laufzeit führt zu einer impliziten Host-Cache-Flush-Operation, die den Host-Cache löscht, die host_cache-Tabelle kürzt und alle blockierten Hosts entsperrt

Der Standardwert wird automatisch auf 128 skaliert, plus 1 für einen Wert von max_connections bis zu 500, plus 1 für jede Erhöhung von 20 über 500 im Wert von max_connections, begrenzt auf eine Grenze von 2000

Verwendung der Option –skip-host-cache ähnelt dem Setzen der Systemvariable host_cache_size auf 0, aber host_cache_size ist flexibler, da es auch verwendet werden kann, um die Größe des Host-Cache zur Laufzeit zu ändern, zu aktivieren und zu deaktivieren, nicht nur beim Serverstart

Das Starten des Servers mit –skip-host-cache verhindert Laufzeitänderungen am Wert von host_cache_size nicht, aber solche Änderungen haben keine Auswirkung und der Cache wird nicht erneut aktiviert, selbst wenn host_cache_size größer als 0 eingestellt ist

Festlegen der Systemvariable host_cache_size anstelle der Option –skip-host-cache wird aus den im vorherigen Absatz genannten Gründen bevorzugt

Darüber hinaus ist die Option –skip-host-cache in MySQL 8.0 veraltet und wird voraussichtlich in einer zukünftigen Version von MySQL entfernt

hostname Systemvariable hostname Geltungsbereich Global Dynamisch Nein Typ Zeichenfolge Der Server setzt diese Variable beim Start auf den Hostnamen des Servers

identity Diese Variable ist ein Synonym für die Variable last_insert_id

Es existiert aus Gründen der Kompatibilität mit anderen Datenbanksystemen

Sie können seinen Wert mit SELECT @@identity lesen und mit SET identity.

setzen identity. .ignore_db_dirs Systemvariable ignore_db_dirs Geltungsbereich Global Dynamisch Nein Typ String Eine durch Kommas getrennte Liste von Namen, die nicht als Datenbankverzeichnisse im Datenverzeichnis betrachtet werden

Der Wert wird von allen Instanzen von –ignore-db-dir gesetzt, die beim Serverstart angegeben werden

init_connect Befehlszeilenformat –init-connect=name Systemvariable init_connect Geltungsbereich Global Dynamisch Ja Typ Zeichenfolge Eine vom Server auszuführende Zeichenfolge für jeden Client, der eine Verbindung herstellt

Die Zeichenfolge besteht aus einer oder mehreren SQL-Anweisungen, die durch Semikolons getrennt sind

Für Benutzer mit dem SUPER-Privileg wird der Inhalt von init_connect nicht ausgeführt

Dies geschieht, damit ein fehlerhafter Wert für init_connect nicht alle Clients daran hindert, sich zu verbinden

Der Wert kann beispielsweise eine Anweisung mit einem Syntaxfehler enthalten, wodurch Clientverbindungen fehlschlagen

Wenn Benutzer mit der Berechtigung SUPER init_connect nicht ausführen, können sie eine Verbindung öffnen und den init_connect-Wert korrigieren

Der Server verwirft alle Ergebnismengen, die von Anweisungen im Wert von init_connect erzeugt wurden.

init_file Befehlszeilenformat –init-file=Dateiname Systemvariable init_file Geltungsbereich Global Dynamisch Nein Typ Dateiname Wenn angegeben, benennt diese Variable eine Datei mit SQL-Anweisungen, die während des Startvorgangs gelesen und ausgeführt werden sollen

Jede Anweisung muss in einer einzigen Zeile stehen und darf keine Kommentare enthalten

Wenn der Server mit der Option –bootstrap gestartet wird, arbeitet er im Bootstap-Modus und einige Funktionen sind nicht verfügbar, die die in der Datei zulässigen Anweisungen einschränken

Dazu gehören Anweisungen, die sich auf die Kontoverwaltung (wie CREATE USER oder GRANT ), die Replikation und globale Transaktionskennungen beziehen

Siehe Abschnitt 17.1.3, „Replikation mit globalen Transaktionskennungen“

innodb_ xxx InnoDB-Systemvariablen sind in Abschnitt 14.14, „Startoptionen und Systemvariablen von InnoDB“ aufgeführt

Diese Variablen steuern viele Aspekte des Speichers, der Speichernutzung und der E/A-Muster für InnoDB-Tabellen und sind jetzt besonders wichtig, da InnoDB die Standardspeicher-Engine ist

insert_id Der Wert, der von der folgenden INSERT- oder ALTER TABLE-Anweisung verwendet werden soll, wenn ein AUTO_INCREMENT-Wert eingefügt wird

Dies wird hauptsächlich mit dem Binärlog verwendet

interactive_timeout Befehlszeilenformat –interactive-timeout=# Systemvariable interactive_timeout Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 28800 Mindestwert 1 Die Anzahl der Sekunden, die der Server bei Interactive auf Aktivität wartet Verbindung, bevor Sie sie schließen

Ein interaktiver Client ist als ein Client definiert, der die Option CLIENT_INTERACTIVE für mysql_real_connect() verwendet

Siehe auch wait_timeout.

join_buffer_size Befehlszeilenformat –join-buffer-size=# Systemvariable join_buffer_size Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 262144 Minimalwert 128 Maximalwert (Windows) 4294967168 Maximalwert (Andere, 64-Bit Plattformen) 18446744073709551488 Maximalwert (Andere, 32-Bit-Plattformen) 4294967168 Blockgröße 128 Die Mindestgröße des Puffers, der für einfache Indexscans, Bereichsindexscans und Joins verwendet wird, die keine Indizes verwenden und daher vollständige Tabellenscans durchführen

Normalerweise ist der beste Weg, schnelle Joins zu erhalten, das Hinzufügen von Indizes

Erhöhen Sie den Wert von join_buffer_size, um einen schnelleren vollständigen Join zu erhalten, wenn das Hinzufügen von Indizes nicht möglich ist

Für jeden vollständigen Join zwischen zwei Tabellen wird ein Join-Puffer zugewiesen

Für einen komplexen Join zwischen mehreren Tabellen, für die keine Indizes verwendet werden, sind möglicherweise mehrere Join-Puffer erforderlich

Wenn kein Block-Nested-Loop- oder Batched-Key-Access-Algorithmus verwendet wird, bringt es keinen Vorteil, den Puffer größer als erforderlich einzustellen, um jede übereinstimmende Zeile aufzunehmen, und alle Joins weisen mindestens die Mindestgröße zu

Seien Sie also vorsichtig, wenn Sie diese Variable auf a setzen weltweit von großem Wert

Es ist besser, die globale Einstellung klein zu halten und die Sitzungseinstellung nur in Sitzungen mit großen Joins auf einen höheren Wert zu ändern

Die Speicherzuweisungszeit kann zu erheblichen Leistungseinbußen führen, wenn die globale Größe größer ist als von den meisten Abfragen benötigt, die sie verwenden

Wenn Block Nested-Loop verwendet wird, kann ein größerer Join-Puffer bis zu dem Punkt vorteilhaft sein, an dem alle erforderlichen Spalten aus allen Zeilen in der ersten Tabelle im Join-Puffer gespeichert sind

Dies hängt von der Abfrage ab; Die optimale Größe kann kleiner sein, als alle Zeilen aus den ersten Tabellen zu enthalten

Wenn Batched Key Access verwendet wird, definiert der Wert von join_buffer_size, wie groß der Stapel von Schlüsseln in jeder Anforderung an die Speicher-Engine ist

Je größer der Puffer, desto mehr sequentielle Zugriffe erfolgen auf die rechte Tabelle einer Join-Operation, was die Performance deutlich verbessern kann

Der Standardwert ist 256 KB

Die maximal zulässige Einstellung für join_buffer_size ist 4GB−1

Größere Werte sind für 64-Bit-Plattformen zulässig (außer 64-Bit-Windows, für die große Werte mit einer Warnung auf 4 GB−1 gekürzt werden)

Weitere Informationen zur Join-Pufferung finden Sie in Abschnitt 8.2.1.6, „Nested-Loop Join-Algorithmen“

Informationen zum Batch-Schlüsselzugriff finden Sie unter Abschnitt 8.2.1.11, „Verschachtelte Schleifen- und Batch-Schlüsselzugriffs-Joins blockieren“.

keep_files_on_create Befehlszeilenformat –keep-files-on-create[={OFF|ON}] Systemvariable keep_files_on_create Geltungsbereich Global, Sitzung Dynamisch Ja Typ Boolean Standardwert OFF Wenn eine MyISAM-Tabelle ohne die Option DATA DIRECTORY erstellt wird, wird die

MYD-Datei wird im Datenbankverzeichnis erstellt

Wenn MyISAM in diesem Fall eine vorhandene. MYD-Datei findet, wird sie standardmäßig überschrieben

Dasselbe gilt für. MYI-Dateien für Tabellen, die ohne die Option INDEX DIRECTORY erstellt wurden

Um dieses Verhalten zu unterdrücken, setzen Sie die Variable keep_files_on_create auf ON (1)

In diesem Fall überschreibt MyISAM keine vorhandenen Dateien und gibt stattdessen einen Fehler zurück

Der Standardwert ist AUS (0)

Wenn eine MyISAM-Tabelle mit einer DATA DIRECTORY- oder INDEX DIRECTORY-Option erstellt wird und eine vorhandene. MYD- oder. MYI-Datei gefunden wird, gibt MyISAM immer einen Fehler zurück

Eine Datei im angegebenen Verzeichnis wird nicht überschrieben.

key_buffer_size Befehlszeilenformat –key-buffer-size=# Systemvariable key_buffer_size Gültigkeitsbereich Global Dynamisch Ja Typ Ganzzahl Standardwert 8388608 Minimalwert 0 Maximalwert (64-Bit-Plattformen) OS_PER_PROCESS_LIMIT Maximalwert (32-Bit-Plattformen) 4294967295 Indexblöcke für MyISAM-Tabellen werden gepuffert und von allen Threads gemeinsam genutzt

key_buffer_size ist die Größe des Puffers, der für Indexblöcke verwendet wird

Der Schlüsselpuffer wird auch als Schlüsselcache bezeichnet

Die minimal zulässige Einstellung ist 0, aber Sie können key_buffer_size nicht dynamisch auf 0 setzen

Eine Einstellung von 0 löscht den Schlüsselcache, was zur Laufzeit nicht zulässig ist

Das Festlegen von key_buffer_size auf 0 ist nur beim Start zulässig, in diesem Fall wird der Schlüsselcache nicht initialisiert

Durch Ändern der Einstellung key_buffer_size zur Laufzeit von einem Wert von 0 auf einen zulässigen Wert ungleich Null wird der Schlüsselcache initialisiert

key_buffer_size kann nur in Inkrementen oder Vielfachen von 4096 Bytes erhöht oder verringert werden

Das Erhöhen oder Verringern der Einstellung um einen nicht konformen Wert erzeugt eine Warnung und schneidet die Einstellung auf einen konformen Wert ab

Die maximal zulässige Einstellung für key_buffer_size ist 4GB−1 auf 32-Bit-Plattformen

Größere Werte sind für 64-Bit-Plattformen zulässig

Die effektive maximale Größe kann geringer sein, abhängig von Ihrem verfügbaren physischen RAM und den von Ihrem Betriebssystem oder Ihrer Hardwareplattform auferlegten RAM-Grenzwerten pro Prozess

Der Wert dieser Variablen gibt die angeforderte Speichermenge an

Intern weist der Server bis zu dieser Menge so viel Speicher wie möglich zu, die tatsächliche Zuweisung kann jedoch geringer sein

Sie können den Wert erhöhen, um eine bessere Indexbehandlung für alle Lesevorgänge und mehrere Schreibvorgänge zu erhalten

Auf einem System, dessen Hauptfunktion darin besteht, MySQL mit der Speicher-Engine MyISAM auszuführen, sind 25 % des Gesamtspeichers der Maschine ein akzeptabler Wert für diese Variable

Sie sollten sich jedoch darüber im Klaren sein, dass Ihr System möglicherweise mit dem Auslagern beginnt und extrem langsam wird, wenn Sie den Wert zu groß machen (z

B

mehr als 50 % des Gesamtspeichers des Computers)

Dies liegt daran, dass MySQL darauf angewiesen ist, dass das Betriebssystem Dateisystem-Caching für Datenlesevorgänge durchführt, sodass Sie etwas Platz für den Dateisystem-Cache lassen müssen

Sie sollten auch die Speicheranforderungen aller anderen Speicher-Engines berücksichtigen, die Sie zusätzlich zu MyISAM verwenden

Für noch mehr Geschwindigkeit beim gleichzeitigen Schreiben vieler Zeilen verwenden Sie LOCK TABLES

Siehe Abschnitt 8.2.4.1, „Optimieren von INSERT-Anweisungen“

Sie können die Leistung des Schlüsselpuffers überprüfen, indem Sie eine SHOW STATUS -Anweisung ausgeben und die Statusvariablen Key_read_requests , Key_reads , Key_write_requests und Key_writes untersuchen

(Siehe Abschnitt 13.7.5, „SHOW-Anweisungen“.) Das Verhältnis Key_reads/Key_read_requests sollte normalerweise kleiner als 0,01 sein

Das Verhältnis Key_writes/Key_write_requests liegt normalerweise nahe 1, wenn Sie hauptsächlich Aktualisierungen und Löschungen verwenden, kann jedoch viel kleiner sein, wenn Sie dazu neigen, Aktualisierungen durchzuführen, die viele Zeilen gleichzeitig betreffen, oder wenn Sie die Tabellenoption DELAY_KEY_WRITE verwenden

Der Anteil des verwendeten Schlüsselpuffers kann mit key_buffer_size in Verbindung mit der Statusvariablen Key_blocks_unused und der Pufferblockgröße bestimmt werden, die aus der Systemvariablen key_cache_block_size verfügbar ist: 1 – ((Key_blocks_unused * key_cache_block_size) / key_buffer_size) Dieser Wert ist ein Annäherung, da ein gewisser Platz im Schlüsselpuffer intern für Verwaltungsstrukturen zugewiesen wird

Zu den Faktoren, die den Overhead für diese Strukturen beeinflussen, gehören die Blockgröße und die Zeigergröße

Wenn die Blockgröße zunimmt, neigt der Prozentsatz des Schlüsselpuffers, der durch Overhead verloren geht, dazu, abzunehmen

Größere Blöcke führen zu einer geringeren Anzahl von Lesevorgängen (weil mehr Schlüssel pro Lesevorgang erhalten werden), aber umgekehrt zu einer Zunahme von Lesevorgängen von Schlüsseln, die nicht untersucht werden (wenn nicht alle Schlüssel in einem Block für eine Abfrage relevant sind)

Es ist möglich, mehrere MyISAM-Schlüssel-Caches zu erstellen

Die Größenbeschränkung von 4 GB gilt für jeden Cache einzeln, nicht als Gruppe

Siehe Abschnitt 8.10.2, „Der MyISAM-Schlüsselcache“.

key_cache_age_threshold Befehlszeilenformat –key-cache-age-threshold=# Systemvariable key_cache_age_threshold Gültigkeitsbereich Global Dynamisch Ja Typ Ganzzahl Standardwert 300 Minimalwert 100 Maximalwert (64-Bit-Plattformen) 18446744073709551516 Maximalwert (32-Bit-Plattformen) 4294967196 Block Größe 100 Dieser Wert steuert die Herabstufung von Puffern aus der Hot-Sublist eines Key-Cache in die Warm-Sublist

Niedrigere Werte bewirken, dass die Herabstufung schneller erfolgt

Der Mindestwert ist 100

Der Standardwert ist 300

Siehe Abschnitt 8.10.2, „Der MyISAM-Schlüsselcache“

key_cache_block_size Befehlszeilenformat –key-cache-block-size=# Systemvariable key_cache_block_size Geltungsbereich Global Dynamisch Ja Typ Ganzzahl Standardwert 1024 Mindestwert 512 Höchstwert 16384 Blockgröße 512 Die Größe der Blöcke im Schlüsselcache in Byte

Der Standardwert ist 1024

Siehe Abschnitt 8.10.2, „Der MyISAM-Schlüsselcache“

key_cache_division_limit Befehlszeilenformat –key-cache-division-limit=# Systemvariable key_cache_division_limit Geltungsbereich Global Dynamisch Ja Typ Ganzzahl Standardwert 100 Minimalwert 1 Maximalwert 100 Der Teilungspunkt zwischen den heißen und warmen Unterlisten der Schlüssel-Cache-Pufferliste

Der Wert ist der Prozentsatz der Pufferliste, der für die warme Unterliste verwendet werden soll

Zulässige Werte reichen von 1 bis 100

Der Standardwert ist 100

Siehe Abschnitt 8.10.2, „Der MyISAM-Schlüssel-Cache“

.

large_page_size Systemvariable large_page_size Geltungsbereich Global Dynamisch Nein Typ Ganzzahl Standardwert 0 Wenn die Unterstützung großer Seiten aktiviert ist, zeigt dies die Größe der Speicherseiten an

Große Speicherseiten werden nur unter Linux unterstützt; auf anderen Plattformen ist der Wert dieser Variablen immer 0

Siehe Abschnitt 8.12.4.2, „Aktivieren der Unterstützung großer Seiten“

last_insert_id Der von LAST_INSERT_ID() zurückzugebende Wert

Dies wird im Binärlog gespeichert, wenn Sie LAST_INSERT_ID() in einer Anweisung verwenden, die eine Tabelle aktualisiert

Das Setzen dieser Variablen aktualisiert nicht den Wert, der von der C-API-Funktion mysql_insert_id() zurückgegeben wird steuert die Sprache, die zum Anzeigen von Tages- und Monatsnamen und Abkürzungen verwendet wird

Diese Variable wirkt sich auf die Ausgabe der Funktionen DATE_FORMAT() , DAYNAME() und MONTHNAME() aus

Locale-Namen sind Werte im POSIX-Stil wie ‘ja_JP’ oder ‘pt_BR’

Der Standardwert ist „en_US“, unabhängig von der Gebietsschemaeinstellung Ihres Systems

Weitere Informationen finden Sie unter Abschnitt 10.16, „MySQL Server Locale Support“

license Systemvariable Lizenzbereich Global Dynamisch Nein Typ Zeichenfolge Standardwert GPL Der Lizenztyp, über den der Server verfügt.

lock_wait_timeout Befehlszeilenformat –lock-wait-timeout=# Systemvariable lock_wait_timeout Geltungsbereich Global, Sitzung Dynamisch Ja Typ Ganzzahl Standardwert 31536000 Mindestwert 1 Höchstwert 31536000 Diese Variable gibt die Zeitüberschreitung in Sekunden für Versuche an, Metadatensperren zu erwerben

Die zulässigen Werte reichen von 1 bis 31536000 (1 Jahr)

Der Standardwert ist 31536000

Dieses Zeitlimit gilt für alle Anweisungen, die Metadatensperren verwenden

Dazu gehören DML- und DDL-Operationen für Tabellen, Ansichten, gespeicherte Prozeduren und gespeicherte Funktionen sowie LOCK TABLES -, FLUSH TABLES WITH READ LOCK – und HANDLER -Anweisungen

Dieses Timeout gilt nicht für implizite Zugriffe auf Systemtabellen in der mysql-Datenbank, wie z

B

Grant-Tabellen, die durch GRANT- oder REVOKE-Anweisungen oder Tabellenprotokollierungsanweisungen geändert wurden

Das Timeout gilt für Systemtabellen, auf die direkt zugegriffen wird, z

B

mit SELECT oder UPDATE

Der Timeout-Wert gilt separat für jeden Metadaten-Sperrversuch

Eine bestimmte Anweisung kann mehr als eine Sperre erfordern, daher ist es möglich, dass die Anweisung länger als der lock_wait_timeout-Wert blockiert, bevor ein Zeitüberschreitungsfehler gemeldet wird

Wenn eine Sperrzeitüberschreitung auftritt, wird ER_LOCK_WAIT_TIMEOUT gemeldet

lock_wait_timeout gilt nicht für verzögerte Einfügungen, die immer mit einem Timeout von 1 Jahr ausgeführt werden

Dies geschieht, um unnötige Zeitüberschreitungen zu vermeiden, da eine Sitzung, die eine verzögerte Einfügung ausgibt, keine Benachrichtigung über Zeitüberschreitungen bei verzögerter Einfügung erhält

locked_in_memory Systemvariable locked_in_memory Geltungsbereich Global Dynamisch Nein Typ Boolean Standardwert AUS Ob mysqld im Speicher mit –memlock gesperrt wurde

log_error Befehlszeilenformat –log-error[=Dateiname] Systemvariable log_error Geltungsbereich Global Dynamisch Nein Typ Dateiname The Name der Fehlerprotokolldatei oder leer, wenn der Server Fehlermeldungen in die Konsole und nicht in eine benannte Datei schreibt

Siehe Abschnitt 5.4.2, „Das Fehlerprotokoll“

log_queries_not_using_indexes Befehlszeilenformat –log-queries-not-using-indexes[={OFF|ON}] Systemvariable log_queries_not_using_indexes Gültigkeitsbereich Global Dynamisch Ja Typ Boolesch Standardwert OFF Wenn Sie diese Variable bei aktiviertem langsamen Abfrageprotokoll aktivieren, wird das abgefragt erwartet werden, dass alle Zeilen abgerufen werden, die protokolliert werden

Siehe Abschnitt 5.4.5, „Das Log für langsame Abfragen“

Diese Option bedeutet nicht zwangsläufig, dass kein Index verwendet wird

Beispielsweise verwendet eine Abfrage, die einen vollständigen Indexscan verwendet, einen Index, würde aber protokolliert werden, da der Index die Anzahl der Zeilen nicht begrenzen würde

log_warnings-Befehlszeilenformat –log-warnings[=#] Systemvariable log_warnings Geltungsbereich Global Dynamisch Ja Typ Integer Standardwert 1 Minimalwert 0 Maximalwert (64-Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 Ob zusätzliche Warnmeldungen im Fehlerprotokoll ausgegeben werden sollen

Diese Variable ist standardmäßig mit dem Wert 1 aktiviert

Um sie zu deaktivieren, setzen Sie sie auf 0

Wenn der Wert größer als 0 ist, protokolliert der Server Meldungen über Anweisungen, die für die anweisungsbasierte Protokollierung unsicher sind

Wenn der Wert größer als 1 ist, protokolliert der Server abgebrochene Verbindungen und Zugriffsverweigerungsfehler für neue Verbindungsversuche

Siehe Abschnitt B.3.2.10, „Kommunikationsfehler und Verbindungsabbruch“.

long_query_time Befehlszeilenformat –long-query-time=# Systemvariable long_query_time Geltungsbereich Global, Sitzung Dynamisch Ja Typ Numerisch Standardwert 10 Mindestwert 0 Wenn eine Abfrage länger als diese Anzahl von Sekunden dauert, erhöht der Server die Statusvariable Slow_queries

Wenn das Protokoll für langsame Abfragen aktiviert ist, wird die Abfrage in der Protokolldatei für langsame Abfragen protokolliert

Dieser Wert wird in Echtzeit gemessen, nicht in CPU-Zeit, sodass eine Abfrage, die auf einem leicht belasteten System unter dem Schwellenwert liegt, auf einem stark belasteten System möglicherweise über dem Schwellenwert liegt

Die Mindest- und Standardwerte von long_query_time sind 0 bzw

10

Der Wert kann mit einer Auflösung von Mikrosekunden angegeben werden

Bei Protokollierung in eine Datei werden Zeiten inklusive Mikrosekundenanteil geschrieben

Bei der Protokollierung in Tabellen werden nur ganzzahlige Zeiten geschrieben; der Mikrosekundenteil wird ignoriert

Siehe Abschnitt 5.4.5, „Das Log für langsame Abfragen“

Kleinere Werte dieser Variablen führen dazu, dass mehr Anweisungen als langlaufend gelten, was zur Folge hat, dass mehr Platz für das langsame Abfrageprotokoll benötigt wird

Bei sehr kleinen Werten (weniger als eine Sekunde) kann das Protokoll in kurzer Zeit ziemlich groß werden

Das Erhöhen der Anzahl von Anweisungen, die als langlaufend betrachtet werden, kann auch zu Fehlalarmen für die Warnung „Excessive Number of Long Running Processes“ in MySQL Enterprise Monitor führen

Aus diesen Gründen sollten sehr kleine Werte nur in Testumgebungen oder in Produktionsumgebungen nur für kurze Zeit verwendet werden

low_priority_updates Command-Line Format –low-priority-updates[={OFF|ON}] Systemvariable low_priority_updates Geltungsbereich Global, Sitzung Dynamisch Ja Typ Boolesch Standardwert OFF Wenn auf 1 gesetzt, warten alle INSERT -, UPDATE -, DELETE – und LOCK TABLE WRITE -Anweisungen, bis kein SELECT oder LOCK TABLE READ für die betroffene Tabelle ansteht

Derselbe Effekt kann mit {INSERT | erzielt werden ERSETZEN | LÖSCHEN | UPDATE} LOW_PRIORITY. .

um die Priorität nur einer Abfrage zu verringern

Diese Variable wirkt sich nur auf Speicher-Engines aus, die nur Sperren auf Tabellenebene verwenden (z

B

MyISAM , MEMORY und MERGE )

Siehe Abschnitt 8.11.2, „Probleme beim Sperren von Tabellen“

lower_case_file_system Systemvariable lower_case_file_system Geltungsbereich Global Dynamisch Nein Typ Boolesch Diese Variable beschreibt die Groß-/Kleinschreibung von Dateinamen in dem Dateisystem, in dem sich das Datenverzeichnis befindet

OFF bedeutet, dass Dateinamen zwischen Groß- und Kleinschreibung unterscheiden, ON bedeutet, dass sie nicht zwischen Groß- und Kleinschreibung unterscheiden

Diese Variable ist schreibgeschützt, da sie ein Dateisystemattribut widerspiegelt und ihre Einstellung keine Auswirkung auf das Dateisystem hätte.

Kleinbuchstaben_Tabellennamen Befehlszeilenformat –Kleinbuchstaben-Tabellennamen[=#] Systemvariable Kleinbuchstaben_Tabellennamen Geltungsbereich Global Dynamisch Nein Typ Ganzzahl Standardwert (macOS) 2 Standardwert (Unix) 0 Standardwert (Windows) 1 Minimalwert 0 Maximalwert 2 Wenn auf 0 gesetzt, werden Tabellennamen wie angegeben gespeichert und bei Vergleichen wird zwischen Groß- und Kleinschreibung unterschieden

Wenn der Wert 1 ist, werden Tabellennamen in Kleinbuchstaben auf der Festplatte gespeichert und bei Vergleichen wird nicht zwischen Groß- und Kleinschreibung unterschieden

Wenn auf 2 gesetzt, werden Tabellennamen wie angegeben gespeichert, aber in Kleinbuchstaben verglichen

Diese Option gilt auch für Datenbanknamen und Tabellenaliase

Weitere Informationen finden Sie in Abschnitt 9.2.3, „Groß- und Kleinschreibung von Kennungen“

Der Standardwert dieser Variable ist plattformabhängig (siehe lower_case_file_system )

Auf Linux und anderen Unix-ähnlichen Systemen ist der Standardwert 0

Unter Windows ist der Standardwert 1

Unter macOS ist der Standardwert 2

Unter Linux (und anderen Unix-ähnlichen Systemen) wird das Festlegen des Werts auf 2 nicht unterstützt; der Server erzwingt stattdessen den Wert 0

Sie sollten lower_case_table_names nicht auf 0 setzen, wenn Sie MySQL auf einem System ausführen, auf dem sich das Datenverzeichnis in einem Dateisystem befindet, bei dem die Groß-/Kleinschreibung nicht beachtet wird (z

B

unter Windows oder macOS)

Es handelt sich um eine nicht unterstützte Kombination, die zu einem Absturz führen kann, wenn eine INSERT INTO. .

SELECT. .

FROM tbl_name-Operation mit der falschen Schreibweise für tbl_name ausgeführt wird

Mit MyISAM könnte der Zugriff auf Tabellennamen mit unterschiedlichen Groß- und Kleinschreibung zu Indexbeschädigungen führen

Ab MySQL 5.6.27 wird eine Fehlermeldung ausgegeben und der Server beendet, wenn Sie versuchen, den Server mit –lower_case_table_names=0 auf einem Dateisystem zu starten, bei dem die Groß-/Kleinschreibung nicht beachtet wird

Die Einstellung dieser Variablen in MySQL 5.6 wirkt sich auf das Verhalten der Replikationsfilteroptionen in Bezug auf die Groß-/Kleinschreibung aus

Dies ist eine Änderung gegenüber früheren Versionen von MySQL

(Bug #51639) Weitere Informationen finden Sie in Abschnitt 17.2.3, „Wie Server Replikationsfilterregeln auswerten“

max_allowed_packet Befehlszeilenformat –max-allowed-packet=# Systemvariable max_allowed_packet Gültigkeitsbereich Global, Sitzung dynamisch Ja Geben Sie Integer ein Standardwert 4194304 Minimalwert 1024 Maximalwert 1073741824 Blockgröße 1024 Die maximale Größe eines Pakets oder einer beliebigen generierten/Zwischenzeichenfolge oder eines Parameters, der von der C-API-Funktion mysql_stmt_send_long_data() gesendet wird

Der Standardwert ist 4 MB

Der Paketnachrichtenpuffer wird auf net_buffer_length Bytes initialisiert, kann aber bei Bedarf auf max_allowed_packet Bytes anwachsen

Dieser Wert ist standardmäßig klein, um große (möglicherweise falsche) Pakete abzufangen

Sie müssen diesen Wert erhöhen, wenn Sie große BLOB-Spalten oder lange Zeichenfolgen verwenden

Es sollte so groß sein wie das größte BLOB, das Sie verwenden möchten

Das Protokolllimit für max_allowed_packet beträgt 1 GB

Der Wert sollte ein Vielfaches von 1024 sein; Nichtvielfache werden auf das nächste Vielfache abgerundet

Wenn Sie die Nachrichtenpuffergröße ändern, indem Sie den Wert der max_allowed_packet-Variablen ändern, sollten Sie auch die Puffergröße auf der Clientseite ändern, wenn Ihr Clientprogramm dies zulässt

Der in die Clientbibliothek integrierte Standardwert max_allowed_packet beträgt 1 GB, einzelne Clientprogramme können dies jedoch außer Kraft setzen

Beispielsweise haben mysql und mysqldump standardmäßig 16 MB bzw

24 MB

Sie ermöglichen es Ihnen auch, den clientseitigen Wert zu ändern, indem Sie max_allowed_packet in der Befehlszeile oder in einer Optionsdatei festlegen

Der Sitzungswert dieser Variablen ist schreibgeschützt

Der Client kann bis zu so viele Bytes wie der Sitzungswert empfangen

Der Server sendet jedoch nicht mehr Bytes an den Client als der aktuelle globale max_allowed_packet-Wert

(Der globale Wert könnte kleiner als der Sitzungswert sein, wenn der globale Wert geändert wird, nachdem der Client eine Verbindung hergestellt hat.)

max_connect_errors Befehlszeilenformat –max-connect-errors=# Systemvariable max_connect_errors Geltungsbereich Global Dynamisch Ja Typ Ganzzahl Standardwert 100 Minimalwert 1 Maximalwert (64-Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 Nacheinander max_connect_errors Verbindungsanfragen von einem Host ohne erfolgreiche Verbindung unterbrochen werden, blockiert der Server diesen Host für weitere Verbindungen

Wenn eine Verbindung von einem Host innerhalb von weniger als max_connect_errors Versuchen erfolgreich hergestellt wird, nachdem eine vorherige Verbindung unterbrochen wurde, wird der Fehlerzähler für den Host auf null gelöscht

Um blockierte Hosts zu entsperren, leeren Sie den Host-Cache; siehe Leeren des Host-Cache

max_connections Befehlszeilenformat –max-connections=# Systemvariable max_connections Geltungsbereich Global Dynamisch Ja Typ Ganzzahl Standardwert 151 Minimalwert 1 Maximalwert 100000 Die maximal zulässige Anzahl gleichzeitiger Clientverbindungen

Der maximale effektive Wert ist der kleinere Wert aus dem effektiven Wert von open_files_limit -810 und dem tatsächlich eingestellten Wert für max_connections

Weitere Informationen finden Sie in Abschnitt 5.1.11.1, „Verbindungsschnittstellen“

max_delayed_threads Befehlszeilenformat –max-delayed-threads=# Veraltet Ja Systemvariable max_delayed_threads Geltungsbereich Global, Sitzung Dynamisch Ja Typ Ganzzahl Standardwert 20 Mindestwert 0 Höchstwert 16384 Nicht mehr als diese Anzahl von Threads starten, um INSERT DELAYED-Anweisungen zu verarbeiten für nicht transaktionale Tabellen

Wenn Sie versuchen, Daten in eine neue Tabelle einzufügen, nachdem alle INSERT DELAYED-Threads verwendet wurden, wird die Zeile so eingefügt, als ob das DELAYED-Attribut nicht angegeben wäre

See also  The Best dvd brenner extern usb c Update New

Wenn Sie dies auf 0 setzen, erstellt MySQL niemals einen Thread, um DELAYED-Zeilen zu verarbeiten; Tatsächlich deaktiviert dies DELAYED vollständig

Für den SESSION-Wert dieser Variablen sind die einzigen gültigen Werte 0 oder der GLOBAL-Wert

Diese Systemvariable ist veraltet (weil DELAYED-Einfügungen veraltet sind); Erwarten Sie, dass es in einer zukünftigen Version entfernt wird.

max_digest_length Befehlszeilenformat –max-digest-length=# Eingeführt 5.6.24 Systemvariable max_digest_length Geltungsbereich Global Dynamisch Nein Typ Integer Standardwert 1024 Minimalwert 0 Maximalwert 1048576 Die maximale Anzahl von Speicherbytes, die pro Sitzung für die Berechnung von normalisierten Daten reserviert werden Aussage verdaut

Sobald diese Menge an Speicherplatz während der Digest-Berechnung verwendet wird, erfolgt eine Kürzung: Es werden keine weiteren Token aus einer geparsten Anweisung gesammelt oder in den Digest-Wert eingerechnet

Anweisungen, die sich erst nach so vielen Bytes von analysierten Token unterscheiden, erzeugen denselben normalisierten Anweisungsauszug und werden als identisch betrachtet, wenn sie verglichen oder für Auszugsstatistiken aggregiert werden

Warnung Wenn Sie max_digest_length auf Null setzen, wird die Digest-Produktion deaktiviert, was auch die Serverfunktionalität deaktiviert, die Digests erfordert, wie z

B

MySQL Enterprise Firewall

Das Verringern des max_digest_length-Werts reduziert die Speichernutzung, führt jedoch dazu, dass der Digest-Wert mehrerer Anweisungen nicht mehr zu unterscheiden ist, wenn sie sich nur am Ende unterscheiden

Das Erhöhen des Werts ermöglicht die Unterscheidung längerer Anweisungen, erhöht jedoch die Speichernutzung, insbesondere für Workloads mit einer großen Anzahl gleichzeitiger Sitzungen (der Server weist pro Sitzung max_digest_length Bytes zu)

Der Parser verwendet diese Systemvariable als Begrenzung der maximalen Länge von normalisierten Anweisungsauszügen, die er berechnet

Wenn das Performance-Schema Anweisungs-Digests verfolgt, erstellt es eine Kopie des Digest-Werts unter Verwendung von performance_schema_max_digest_length

Systemvariable als Grenze für die maximale Länge von Digests, die sie speichert

Wenn folglich performance_schema_max_digest_length kleiner als max_digest_length ist, werden im Leistungsschema gespeicherte Digest-Werte relativ zu den ursprünglichen Digest-Werten abgeschnitten

In MySQL 5.6.24 und 5.6.25 ist performance_schema_max_digest_length nicht verfügbar und max_digest_length gilt für alle Digest-Berechnungen

Vor MySQL 5.6.24 sind weder max_digest_length noch performance_schema_max_digest_length verfügbar und es gilt ein festes Maximum von 1024 Bytes für alle Digest-Berechnungen

Weitere Informationen zum Digest von Anweisungen finden Sie unter Abschnitt 22.10, „Digests für Leistungsschema-Anweisungen“

max_error_count Befehlszeilenformat –max-error-count=# Systemvariable max_error_count Geltungsbereich Global, Sitzung Dynamisch Ja Typ Ganzzahl Standardwert 64 Mindestwert 0 Höchstwert 65535 Die maximale Anzahl von Fehler-, Warn- und Informationsmeldungen, die zur Anzeige gespeichert werden durch die Anweisungen SHOW ERRORS und SHOW WARNINGS

Dies entspricht der Anzahl der Bedingungsbereiche im Diagnosebereich und damit der Anzahl der Bedingungen, die von GET DIAGNOSTICS inspiziert werden können max_delayed_threads

Diese Systemvariable ist veraltet (weil DELAYED-Einfügungen veraltet sind); Erwarten Sie, dass es in einer zukünftigen Version entfernt wird.

max_join_size Befehlszeilenformat –max-join-size=# Systemvariable max_join_size Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 18446744073709551615 Mindestwert 1 Maximalwert 18446744073709551615 Lassen Sie keine Anweisungen zu, die wahrscheinlich mehr als max_join_size Zeilen untersuchen müssen (für single -table-Anweisungen) oder Zeilenkombinationen (für mehrere Tabellenanweisungen) oder die wahrscheinlich mehr als max_join_size-Festplattensuchen ausführen

Indem Sie diesen Wert setzen, können Sie Anweisungen abfangen, bei denen Schlüssel nicht richtig verwendet werden und das wahrscheinlich lange dauern würde

Legen Sie es fest, wenn Ihre Benutzer dazu neigen, Joins auszuführen, denen eine WHERE-Klausel fehlt, die lange dauern oder Millionen von Zeilen zurückgeben

Weitere Informationen finden Sie unter Verwenden des Safe-Updates-Modus (–safe-updates)

Wenn Sie diese Variable auf einen anderen Wert als DEFAULT setzen, wird der Wert von sql_big_selects auf 0 zurückgesetzt

Wenn Sie den Wert sql_big_selects erneut festlegen, wird die Variable max_join_size ignoriert

Wenn sich ein Abfrageergebnis im Abfrage-Cache befindet, wird keine Überprüfung der Ergebnisgröße durchgeführt, da das Ergebnis zuvor berechnet wurde und es den Server nicht belastet, es an den Client zu senden

max_length_for_sort_data Befehlszeilenformat –max-length- for-sort-data=# Systemvariable max_length_for_sort_data Gültigkeitsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 1024 Mindestwert 4 Höchstwert 8388608 Der Grenzwert für die Größe der Indexwerte, der bestimmt, welcher Dateisortierungsalgorithmus verwendet werden soll

Siehe Abschnitt 8.2.1.13, „ORDER BY-Optimierung“

max_prepared_stmt_count Befehlszeilenformat –max-prepared-stmt-count=# Systemvariable max_prepared_stmt_count Geltungsbereich Global Dynamisch Ja Typ Integer Standardwert 16382 Minimalwert 0 Maximalwert 1048576 Diese Variable begrenzt die Gesamtzahl der auf dem Server vorbereiteten Anweisungen

(Die Summe der Anzahl der vorbereiteten Anweisungen über alle Sitzungen hinweg.) Es kann in Umgebungen verwendet werden, in denen das Potenzial für Denial-of-Service-Angriffe besteht, die darauf basieren, dass dem Server durch die Vorbereitung einer großen Anzahl von Anweisungen nicht genügend Arbeitsspeicher zur Verfügung steht

Wenn der Wert niedriger als die aktuelle Anzahl vorbereiteter Anweisungen eingestellt wird, werden vorhandene Anweisungen nicht beeinflusst und können verwendet werden, aber es können keine neuen Anweisungen vorbereitet werden, bis die aktuelle Anzahl unter das Limit fällt

Wenn Sie den Wert auf 0 setzen, werden vorbereitete Anweisungen deaktiviert

Bit-Plattformen) 18446744073709551615 Standardwert (Andere, 32-Bit-Plattformen) 4294967295 Minimalwert 1 Maximalwert (Windows) 4294967295 Maximalwert (Andere, 64-Bit-Plattformen) 18446744073709551615 Maximalwert (Andere, 32-Bit-Plattformen) 42949 angenommene maximale Anzahl von 72,95 sucht beim Nachschlagen von Zeilen basierend auf einem Schlüssel

Der MySQL-Optimierer geht davon aus, dass nicht mehr als diese Anzahl von Schlüsselsuchen erforderlich sind, wenn nach übereinstimmenden Zeilen in einer Tabelle gesucht wird, indem ein Index gescannt wird, unabhängig von der tatsächlichen Kardinalität des Index (siehe Abschnitt 13.7.5.23, „SHOW INDEX-Anweisung“)

Indem Sie dies auf einen niedrigen Wert setzen (z

B

100), können Sie MySQL dazu zwingen, Indizes anstelle von Tabellenscans zu bevorzugen Ganzzahl Standardwert 1024 Mindestwert 4 Höchstwert 8388608 Die Anzahl der beim Sortieren von Datenwerten zu verwendenden Bytes

Der Server verwendet nur die ersten max_sort_length-Bytes jedes Werts und ignoriert den Rest

Folglich werden Werte, die sich nur nach den ersten max_sort_length-Bytes unterscheiden, als gleich für GROUP BY-, ORDER BY- und DISTINCT-Operationen verglichen

Das Erhöhen des Werts von max_sort_length erfordert möglicherweise auch das Erhöhen des Werts von sort_buffer_size

Einzelheiten finden Sie in Abschnitt 8.2.1.13, „ORDER BY-Optimierung“

max_sp_recursion_depth Befehlszeilenformat –max-sp-recursion-depth[=#] Systemvariable max_sp_recursion_depth Gültigkeitsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 0 Maximalwert 255 Die Häufigkeit, mit der eine bestimmte gespeicherte Prozedur rekursiv aufgerufen werden kann

Der Standardwert für diese Option ist 0, wodurch die Rekursion in gespeicherten Prozeduren vollständig deaktiviert wird

Der Höchstwert ist 255

Die Rekursion gespeicherter Prozeduren erhöht den Bedarf an Thread-Stack-Speicherplatz

Wenn Sie den Wert von max_sp_recursion_depth erhöhen, kann es erforderlich sein, die Thread-Stack-Größe zu erhöhen, indem Sie den Wert von thread_stack beim Serverstart erhöhen

max_tmp_tables Diese Variable wird nicht verwendet

Es ist veraltet; erwartet, dass es in einer zukünftigen MySQL-Version entfernt wird Gleichzeitige Verbindungen zu jedem gegebenen MySQL-Benutzerkonto erlaubt

Ein Wert von 0 (Standardwert) bedeutet „keine Begrenzung“

Diese Variable hat einen globalen Wert, der beim Serverstart oder zur Laufzeit festgelegt werden kann

Es hat auch einen schreibgeschützten Sitzungswert, der das effektive Limit für gleichzeitige Verbindungen angibt, das für das Konto gilt, das der aktuellen Sitzung zugeordnet ist

Der Sitzungswert wird wie folgt initialisiert: Wenn das Benutzerkonto eine MAX_USER_CONNECTIONS-Ressourcenbegrenzung ungleich Null hat, wird der Sitzungswert max_user_connections auf diese Begrenzung gesetzt

Andernfalls wird der Sitzungswert max_user_connections auf den globalen Wert gesetzt

Kontoressourcengrenzen werden mit der GRANT-Anweisung angegeben

Siehe Abschnitt 6.2.13, „Festlegen von Ressourcenlimits für Konten“ und Abschnitt 13.7.1.4, „GRANT-Anweisung“

max_write_lock_count Befehlszeilenformat –max-write-lock-count=# Systemvariable max_write_lock_count Geltungsbereich Global Dynamisch Ja Typ Integer 4294967295 (Andere, 32-Bit-Plattformen) 4294967295 Lassen Sie nach so vielen Schreibsperren zu, dass einige ausstehende Lesesperranforderungen verarbeitet werden zwischen

Schreibsperranforderungen haben eine höhere Priorität als Lesesperranforderungen

Wenn jedoch max_write_lock_count auf einen niedrigen Wert gesetzt ist (z

B

10), können Lesesperranforderungen gegenüber anhängigen Schreibsperranforderungen bevorzugt werden, wenn die Lesesperranforderungen bereits zugunsten von 10 Schreibsperranforderungen übergangen wurden

Normalerweise tritt dieses Verhalten nicht auf, da max_write_lock_count standardmäßig einen sehr großen Wert hat

metadata_locks_cache_size Befehlszeilenformat –metadata-locks-cache-size=# Systemvariable metadata_locks_cache_size Geltungsbereich Global Dynamisch Nein Typ Ganzzahl Standardwert 1024 Minimalwert 1 Maximalwert 1048576 Die Größe des Caches für Metadatensperren

Der Server verwendet diesen Cache, um das Erstellen und Löschen von Synchronisationsobjekten zu vermeiden

Dies ist besonders hilfreich auf Systemen, auf denen solche Operationen teuer sind, wie z

B

Windows XP

metadata_locks_hash_instances Befehlszeilenformat –metadata-locks-hash-instances=# Systemvariable metadata_locks_hash_instances Geltungsbereich Global Dynamisch Nein Typ Integer Standardwert 8 Mindestwert 1 Maximum Wert 1024 Der Satz von Metadatensperren kann in separate Hashes partitioniert werden, damit Verbindungen, die auf verschiedene Objekte zugreifen, unterschiedliche Sperr-Hashes verwenden und Konflikte reduzieren können

Die Systemvariable metadata_locks_hash_instances gibt die Anzahl der Hashes an (Standardwert 8)

min_examined_row_limit Befehlszeilenformat –min-examined-row-limit=# Systemvariable min_examined_row_limit Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 0 Minimalwert 0 Maximalwert (64-Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 Abfragen, die weniger als diese Anzahl von Zeilen untersuchen, werden nicht im Protokoll für langsame Abfragen protokolliert.

multi_range_count Befehlszeilenformat –multi-range-count=# Veraltet Ja Systemvariable multi_range_count Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 256 Mindestwert 1 Höchstwert 4294967295 Diese Variable hat keine Auswirkung

Es ist veraltet; erwartet, dass es in einer zukünftigen MySQL-Version entfernt wird

myisam_data_pointer_size Befehlszeilenformat –myisam-data-pointer-size=# Systemvariable myisam_data_pointer_size Geltungsbereich Global Dynamisch Ja Typ Integer Standardwert 6 Minimalwert 2 Maximalwert 7 Die Standardzeigergröße in Bytes, die von CREATE TABLE für MyISAM-Tabellen verwendet werden, wenn keine MAX_ROWS-Option angegeben ist

Diese Variable kann nicht kleiner als 2 oder größer als 7 sein

Der Standardwert ist 6

Siehe Abschnitt B.3.2.11, „Die Tabelle ist voll“

myisam_max_sort_file_size Befehlszeilenformat –myisam-max-sort-file-size =# Systemvariable myisam_max_sort_file_size Geltungsbereich Global Dynamisch Ja Typ Integer Standardwert (Windows) 2146435072 Standardwert (Andere, 64-Bit-Plattformen) 9223372036853727232 Standardwert (Andere, 32-Bit-Plattformen) 2147483648 Maximalwert (Windows) 2146435072 Maximalwert (Andere, 64-Bit-Plattformen) 9223372036853727232 Maximalwert (Andere, 32-Bit-Plattformen) 2147483648 Die maximale Größe der temporären Datei, die MySQL verwenden darf, während ein MyISAM-Index neu erstellt wird (während REPAIR TABLE , ALTER TABLE oder LOAD DATA )

Wenn die Dateigröße diesen Wert überschreiten würde, wird der Index stattdessen mit dem Schlüsselcache erstellt, was langsamer ist

Der Wert wird in Byte angegeben

Wenn MyISAM-Indexdateien diese Größe überschreiten und Plattenspeicherplatz verfügbar ist, kann eine Erhöhung des Werts die Leistung verbessern

Der Speicherplatz muss im Dateisystem verfügbar sein, das das Verzeichnis enthält, in dem sich die ursprüngliche Indexdatei befindet Plattformen) 18446744073709551615 Standardwert (32-Bit-Plattformen) 4294967295 Minimalwert 7 Maximalwert (64-Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 Die maximale Speichermenge, die für die Speicherzuordnung komprimierter MyISAM-Dateien verwendet werden soll

Wenn viele komprimierte MyISAM-Tabellen verwendet werden, kann der Wert verringert werden, um die Wahrscheinlichkeit von Speicherauslagerungsproblemen zu verringern.

myisam_recover_options Befehlszeilenformat –myisam-recover-options[=list] Systemvariable myisam_recover_options Gültigkeitsbereich Global Dynamisch Nein Typ Enumeration Standardwert OFF Gültige Werte OFF DEFAULT BACKUP FORCE QUICK Legt den Wiederherstellungsmodus der MyISAM-Speicher-Engine fest

Der Variablenwert ist eine beliebige Kombination der Werte OFF , DEFAULT , BACKUP , FORCE oder QUICK

Wenn Sie mehrere Werte angeben, trennen Sie diese durch Kommas

Das Angeben der Variablen ohne Wert beim Serverstart entspricht dem Angeben von DEFAULT , und das Angeben mit einem expliziten Wert von “” deaktiviert die Wiederherstellung (dasselbe wie ein Wert von OFF )

Wenn die Wiederherstellung aktiviert ist, prüft mysqld jedes Mal, wenn eine MyISAM-Tabelle geöffnet wird, ob die Tabelle als abgestürzt markiert ist oder nicht ordnungsgemäß geschlossen wurde

(Die letzte Option funktioniert nur, wenn Sie mit deaktivierter externer Sperre arbeiten.) Wenn dies der Fall ist, führt mysqld eine Überprüfung der Tabelle durch

Wenn die Tabelle beschädigt war, versucht mysqld, sie zu reparieren

Die folgenden Optionen wirken sich darauf aus, wie die Reparatur funktioniert

Option Beschreibung AUS Keine Wiederherstellung

STANDARD Wiederherstellung ohne Sicherung, Forcierung oder Schnellprüfung

BACKUP Wenn die Datendatei während der Wiederherstellung geändert wurde, speichern Sie eine Sicherungskopie der Datei tbl_name. MYD als tbl_name-datetime. BAK

FORCE Führen Sie eine Wiederherstellung durch, selbst wenn wir mehr als eine Zeile aus der. MYD-Datei verlieren würden

SCHNELL Überprüfen Sie die Zeilen in der Tabelle nicht, wenn keine Löschblöcke vorhanden sind

Bevor der Server eine Tabelle automatisch repariert, schreibt er eine Notiz über die Reparatur in das Fehlerprotokoll

Wenn Sie die meisten Probleme ohne Benutzereingriff beheben möchten, sollten Sie die Optionen BACKUP, FORCE verwenden

Dies erzwingt eine Reparatur einer Tabelle, selbst wenn einige Zeilen gelöscht würden, behält aber die alte Datendatei als Backup, damit Sie später untersuchen können, was passiert ist

Siehe Abschnitt 15.2.1, „MyISAM-Startoptionen“

myisam_repair_threads Befehlszeilenformat –myisam-repair-threads=# Systemvariable myisam_repair_threads Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 1 Minimalwert 1 Maximalwert (64-Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 Wenn Wenn dieser Wert größer als 1 ist, werden MyISAM-Tabellenindizes parallel (jeder Index in einem eigenen Thread) während des Reparatur-durch-Sortierung-Prozesses erstellt

Der Standardwert ist 1

Hinweis Die Multithread-Reparatur ist immer noch Code in Beta-Qualität

myisam_sort_buffer_size Befehlszeilenformat –myisam-sort-buffer-size=# Systemvariable myisam_sort_buffer_size Geltungsbereich Global, Sitzung dynamisch Ja Typ Integer Standardwert 8388608 Mindestwert 4096 Maximalwert (64-Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 Die Größe des Puffers, der beim Sortieren von MyISAM-Indizes während einer REPAIR TABLE oder beim Erstellen von Indizes mit CREATE INDEX oder ALTER TABLE.

myisam_stats_method Command-Line zugewiesen wird Format –myisam-stats-method=name Systemvariable myisam_stats_method Gültigkeitsbereich Global, Sitzung Dynamisch Ja Typ Aufzählung Standardwert nulls_unequal Gültige Werte nulls_unequal nulls_equal nulls_ignored Wie der Server NULL-Werte behandelt, wenn er Statistiken über die Verteilung von Indexwerten sammelt für MyISAM-Tabellen

Diese Variable hat drei mögliche Werte, nulls_equal , nulls_unequal und nulls_ignored

Für nulls_equal werden alle NULL-Indexwerte als gleich angesehen und bilden eine einzige Wertegruppe, die eine Größe hat, die gleich der Anzahl der NULL-Werte ist

Bei nulls_unequal werden NULL-Werte als ungleich betrachtet und jede NULL bildet eine eigene Wertegruppe der Größe 1

Bei nulls_ignored werden NULL-Werte ignoriert

Die Methode, die zum Generieren von Tabellenstatistiken verwendet wird, beeinflusst, wie der Optimierer Indizes für die Abfrageausführung auswählt, wie in Abschnitt 8.3.7, „Erfassung von InnoDB- und MyISAM-Indexstatistiken“ beschrieben

myisam_use_mmap Befehlszeilenformat –myisam-use-mmap[ ={OFF|ON}] Systemvariable myisam_use_mmap Geltungsbereich Global Dynamisch Ja Typ Boolean Standardwert OFF Speicherzuordnung zum Lesen und Schreiben von MyISAM-Tabellen verwenden.

named_pipe Befehlszeilenformat –named-pipe[={OFF|ON}] Systemvariable named_pipe Geltungsbereich Global Dynamisch Nein Plattformspezifisch Windows-Typ Boolesch Standardwert OFF (nur Windows.) Gibt an, ob der Server Verbindungen über Named Pipes unterstützt

named_pipe_full_access_group Befehlszeilenformat –named-pipe-full-access-group=value Eingeführt 5.6.43 Systemvariable named_pipe_full_access_group Gültigkeitsbereich Global Dynamisch Nein Plattformspezifisch Windows-Typ Zeichenfolge Standardwert leere Zeichenfolge Gültige Werte leere Zeichenfolge gültiger lokaler Windows-Gruppenname *jeder * (Nur Windows.) Die Zugriffskontrolle, die Clients auf der vom MySQL-Server erstellten Named Pipe gewährt wird, wird auf das für eine erfolgreiche Kommunikation erforderliche Minimum gesetzt, wenn die Systemvariable named_pipe aktiviert ist, um Named-Pipe-Verbindungen zu unterstützen

Einige MySQL-Client-Software kann Named-Pipe-Verbindungen ohne zusätzliche Konfiguration öffnen, andere Client-Software benötigt jedoch möglicherweise dennoch vollen Zugriff, um eine Named-Pipe-Verbindung zu öffnen

Diese Variable legt den Namen einer lokalen Windows-Gruppe fest, deren Mitgliedern vom MySQL-Server ausreichend Zugriff gewährt wird, um Named-Pipe-Clients zu verwenden

Anfangs ist der Wert standardmäßig auf „*jeder*“ gesetzt, was es Benutzern der Gruppe „Jeder“ unter Windows erlaubt, die Clientsoftware weiter zu verwenden, bis sie aktualisiert wird

Im Gegensatz dazu bedeutet das Festlegen des Werts auf eine leere Zeichenfolge, dass kein Windows-Benutzer vollen Zugriff auf die benannte Pipe erhält

Der Standardwert „*jeder*“ bietet eine sprachunabhängige Möglichkeit, auf die Gruppe „Jeder“ unter Windows zu verweisen

Idealerweise sollte ein neuer lokaler Windows-Gruppenname (z

B

mysql_access_client_users ) in Windows erstellt und dann verwendet werden, um den Standardwert für diese Variable zu ersetzen, wenn der Zugriff unbedingt erforderlich ist

Beschränken Sie in diesem Fall die Mitgliedschaft in der Gruppe auf so wenige Benutzer wie möglich und entfernen Sie Benutzer aus der Gruppe, wenn die Client-Software aktualisiert wird

Einem Nichtmitglied der Gruppe, das versucht, mit dem betroffenen Named-Pipe-Client eine Verbindung zu MySQL herzustellen, wird der Zugriff verweigert, bis der Benutzer von einem Windows-Administrator zur Gruppe hinzugefügt wird und sich der Benutzer dann abmeldet und wieder anmeldet (erforderlich von Windows)

und Ergebnispuffer

Beide beginnen mit einer durch net_buffer_length gegebenen Größe, werden aber je nach Bedarf dynamisch auf max_allowed_packet Bytes vergrößert

Der Ergebnispuffer schrumpft nach jeder SQL-Anweisung auf net_buffer_length

Diese Variable sollte normalerweise nicht geändert werden, aber wenn Sie sehr wenig Speicher haben, können Sie sie auf die erwartete Länge der von Clients gesendeten Anweisungen setzen

Wenn Anweisungen diese Länge überschreiten, wird der Verbindungspuffer automatisch vergrößert

Der maximale Wert, auf den net_buffer_length gesetzt werden kann, ist 1 MB

Der Sitzungswert dieser Variablen ist schreibgeschützt

net_read_timeout Befehlszeilenformat –net-read-timeout=# Systemvariable net_read_timeout Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 30 Mindestwert 1 Die Anzahl der Sekunden, die auf weitere Daten von einer Verbindung gewartet wird, bevor der Lesevorgang abgebrochen wird

Wenn der Server vom Client liest, ist net_read_timeout der Timeout-Wert, der steuert, wann abgebrochen werden soll

Wenn der Server an den Client schreibt, ist net_write_timeout der Timeout-Wert, der steuert, wann abgebrochen werden soll

Siehe auch slave_net_timeout.

net_retry_count Befehlszeilenformat –net-retry-count=# Systemvariable net_retry_count Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 10 Mindestwert 1 Höchstwert (64-Bit-Plattformen) 18446744073709551615 Höchstwert (32- Bit-Plattformen) 4294967295 Wenn ein Lese- oder Schreibvorgang an einem Kommunikationsport unterbrochen wird, wiederholen Sie dies viele Male, bevor Sie aufgeben

Dieser Wert sollte unter FreeBSD ziemlich hoch eingestellt werden, da interne Interrupts an alle Threads gesendet werden.

net_write_timeout Befehlszeilenformat –net-write-timeout=# Systemvariable net_write_timeout Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 60 Mindestwert 1 Die Anzahl der Sekunden, die gewartet wird, bis ein Block in eine Verbindung geschrieben wird, bevor der Schreibvorgang abgebrochen wird

Siehe auch net_read_timeout.

neues Befehlszeilenformat –new[={OFF|ON}] Systemvariable new Gültigkeitsbereich Global, Sitzung dynamisch Ja Deaktiviert durch skip-new Typ Boolean Standardwert OFF Diese Variable wurde in MySQL 4.0 zum Einschalten verwendet einige 4.1-Verhalten und wird aus Gründen der Abwärtskompatibilität beibehalten

Sein Wert ist immer AUS

Wenn Sie diese Variable im NDB-Cluster auf ON setzen, können Sie andere Partitionierungstypen als KEY oder LINEAR KEY mit NDB-Tabellen verwenden

Diese Funktion ist nur experimentell und wird in der Produktion nicht unterstützt

Weitere Informationen finden Sie unter Benutzerdefinierte Partitionierung und die NDB-Speicher-Engine (NDB-Cluster)

alt Befehlszeilenformat –old[={OFF|ON}] Systemvariable alt Geltungsbereich Global Dynamisch Nein Typ Boolesch Standardwert AUS alt ist eine Kompatibilitätsvariable

Es ist standardmäßig deaktiviert, kann aber beim Start aktiviert werden, um den Server auf das in älteren Versionen vorhandene Verhalten zurückzusetzen

Wenn alt aktiviert ist, ändert es den Standardumfang der Indexhinweise auf den vor MySQL 5.1.17 verwendeten

Das heißt, Indexhinweise ohne FOR-Klausel gelten nur dafür, wie Indizes für den Zeilenabruf verwendet werden, und nicht für die Auflösung von ORDER BY- oder GROUP BY-Klauseln

(Siehe Abschnitt 8.9.3, „Indexhinweise“.) Achten Sie darauf, dies in einer Replikationskonfiguration zu aktivieren

Bei anweisungsbasierter binärer Protokollierung können unterschiedliche Modi für Quelle und Replikate zu Replikationsfehlern führen

old_alter_table Befehlszeilenformat –old-alter-table[={OFF|ON}] Systemvariable old_alter_table Gültigkeitsbereich Global, Sitzung dynamisch Ja Typ Boolean Standardwert OFF Wenn diese Variable aktiviert ist, verwendet der Server nicht die optimierte Methode zur Verarbeitung einer ALTER TABLE-Operation

Es verwendet wieder eine temporäre Tabelle, kopiert die Daten und benennt dann die temporäre Tabelle in die ursprüngliche um, wie sie von MySQL 5.0 und früher verwendet wurde

Weitere Informationen zur Funktionsweise von ALTER TABLE finden Sie in Abschnitt 13.1.7, „ALTER TABLE-Anweisung“

mit möglicher Anpassung Minimalwert 0 Maximalwert plattformabhängig Die Anzahl der Dateideskriptoren, die mysqld vom Betriebssystem zur Verfügung stehen: Beim Start reserviert mysqld Deskriptoren mit setrlimit() , wobei der angeforderte Wert verwendet wird, indem diese Variable direkt gesetzt oder die — open-files-limit-Option für mysqld_safe

Wenn mysqld den Fehler Too many open files ausgibt, versuchen Sie, den Wert open_files_limit zu erhöhen

Intern ist der Maximalwert für diese Variable der maximale vorzeichenlose Integer-Wert, aber das tatsächliche Maximum ist plattformabhängig

Zur Laufzeit gibt der Wert von open_files_limit die Anzahl der Dateideskriptoren an, die mysqld tatsächlich vom Betriebssystem erlaubt ist und von der abweichen kann der beim Start angeforderte Wert

Wenn die Anzahl der beim Start angeforderten Dateideskriptoren nicht zugewiesen werden kann, schreibt mysqld eine Warnung in das Fehlerprotokoll

Der effektive open_files_limit-Wert basiert auf dem beim Systemstart angegebenen Wert (falls vorhanden) und den Werten von max_connections und table_open_cache unter Verwendung dieser Formeln: 10 + max_connections + (table_open_cache * 2)

max_connections * 5

Die Grenze des Betriebssystems, wenn diese Grenze positiv, aber nicht unendlich ist.

Wenn das Limit des Betriebssystems Infinity ist: open_files_limit-Wert, wenn beim Start angegeben, 5000, wenn nicht

Der Server versucht, die Anzahl der Dateideskriptoren abzurufen, indem er das Maximum dieser Werte verwendet

Wenn so viele Deskriptoren nicht erhalten werden können, versucht der Server, so viele zu erhalten, wie das System zulässt

Der effektive Wert ist 0 auf Systemen, auf denen MySQL die Anzahl der geöffneten Dateien nicht ändern kann

Unter Unix kann der Wert nicht größer als der vom Befehl ulimit -n angezeigte Wert gesetzt werden

Auf Linux-Systemen, die systemd verwenden, kann der Wert nicht größer als LimitNOFile gesetzt werden (dies ist DefaultLimitNOFILE , wenn LimitNOFile nicht gesetzt ist); andernfalls darf unter Linux der Wert von open_files_limit ulimit -n nicht überschreiten

optimizer_prune_level Befehlszeilenformat –optimizer-prune-level=# Systemvariable optimizer_prune_level Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 1 Minimalwert 0 Maximalwert 1 Steuert die Heuristik, die während der Abfrageoptimierung angewendet wird, um weniger vielversprechende Teilpläne aus dem Suchraum des Optimierers zu entfernen

Ein Wert von 0 deaktiviert die Heuristik, sodass der Optimierer eine umfassende Suche durchführt

Der Wert 1 bewirkt, dass der Optimierer Pläne basierend auf der Anzahl der von Zwischenplänen abgerufenen Zeilen beschneidet

optimizer_search_depth Befehlszeilenformat –Optimizer-Search-Tiefe=# Systemvariable optimizer_search_Tiefe Geltungsbereich Global, Sitzung dynamisch Ja Typ Integer Standardwert 62 Minimalwert 0 Maximalwert 62 Die maximale Suchtiefe, die vom Abfrageoptimierer ausgeführt wird

Werte, die größer als die Anzahl der Relationen in einer Abfrage sind, führen zu besseren Abfrageplänen, brauchen aber länger, um einen Ausführungsplan für eine Abfrage zu generieren

Werte kleiner als die Anzahl der Relationen in einer Abfrage geben schneller einen Ausführungsplan zurück, aber der resultierende Plan ist möglicherweise alles andere als optimal

Wenn auf 0 gesetzt, wählt das System automatisch einen angemessenen Wert aus

optimizer_switch Befehlszeilenformat –optimizer-switch=Wert Systemvariable optimizer_switch Geltungsbereich Global, Sitzung Dynamisch Ja Typ Gültige Werte festlegen batched_key_access={on|off} block_nested_loop= {on |off} engine_condition_pushdown={on|off} firstmatch={on|off} index_condition_pushdown={on|off} index_merge={on|off} index_merge_intersection={on|off} index_merge_sort_union={on|off} index_merge_union={ auf| off} loosescan={on|off} materialization={on|off} mrr={on|off} mrr_cost_based={on|off} semijoin={on|off} subquery_materialization_cost_based={on|off} use_index_extensions={on|off } Die Systemvariable optimizer_switch ermöglicht die Steuerung des Optimiererverhaltens

Der Wert dieser Variablen ist ein Satz von Flags, von denen jedes einen Wert von on oder off hat, um anzugeben, ob das entsprechende Optimierungsverhalten aktiviert oder deaktiviert ist

Diese Variable hat globale und Sitzungswerte und kann zur Laufzeit geändert werden

Der globale Standardwert kann beim Serverstart festgelegt werden

Um den aktuellen Satz von Optimierer-Flags anzuzeigen, wählen Sie den Variablenwert aus: mysql> SELECT @@optimizer_switch\G ************************** 1. row ************************** @@optimizer_switch: index_merge=on,index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, engine_condition_pushdown =on, index_condition_pushdown=on, mrr=on,mrr_cost_based=on, block_nested_loop=on,batched_key_access=off, materialization=on,semijoin=on,loosescan=on, firstmatch=on, subquery_materialization_cost_based=on, use_index_extensions=on Weitere Informationen zu die Syntax dieser Variablen und das Optimiererverhalten, das sie steuert, finden Sie in Abschnitt 8.9.2, „Umschaltbare Optimierungen“

performance_schema_ xxx Performance-Schema-Systemvariablen sind in Abschnitt 22.15, „Performance-Schema-Systemvariablen“ aufgeführt

Diese Variablen können verwendet werden, um den Betrieb des Leistungsschemas zu konfigurieren.

pid_file-Befehlszeilenformat –pid-file=Dateiname Systemvariable pid_file-Geltungsbereich Global Dynamisch Nein Typ Dateiname Der Pfadname der Datei, in die der Server seine Prozess-ID schreibt

Der Server erstellt die Datei im Datenverzeichnis, es sei denn, es wird ein absoluter Pfadname angegeben, um ein anderes Verzeichnis anzugeben

Wenn Sie diese Variable angeben, müssen Sie einen Wert angeben

Wenn Sie diese Variable nicht angeben, verwendet MySQL den Standardwert host_name. pid , wobei host_name der Name des Hostcomputers ist

Die Prozess-ID-Datei wird von anderen Programmen wie mysqld_safe verwendet, um die Prozess-ID des Servers zu ermitteln

Unter Windows wirkt sich diese Variable auch auf den Standardnamen der Fehlerprotokolldatei aus

Siehe Abschnitt 5.4.2, „Das Fehlerprotokoll“

plugin_dir Befehlszeilenformat –plugin-dir=dir_name Systemvariable plugin_dir Geltungsbereich Global Dynamisch Nein Typ Verzeichnisname Standardwert BASEDIR/lib/plugin Der Pfadname des Plug-in-Verzeichnisses

Wenn das Plugin-Verzeichnis vom Server beschreibbar ist, kann es für einen Benutzer möglich sein, ausführbaren Code in eine Datei im Verzeichnis zu schreiben, indem er SELECT. .

INTO DUMPFILE verwendet

Dies kann verhindert werden, indem Sie plugin_dir für den Server schreibgeschützt machen oder secure_file_priv auf ein Verzeichnis setzen, in dem SELECT-Schreibvorgänge sicher durchgeführt werden können Minimalwert 0 Maximalwert 65535 Die Nummer des Ports, an dem der Server TCP/IP-Verbindungen abhört

Diese Variable kann mit der Option –port gesetzt werden

preload_buffer_size Befehlszeilenformat –preload-buffer-size=# Systemvariable preload_buffer_size Geltungsbereich Global, Sitzung Dynamisch Ja Typ Integer Standardwert 32768 Mindestwert 1024 Höchstwert 1073741824 Die Größe von Der Puffer, der beim Vorabladen von Indizes zugewiesen wird

profiling_history_size Die Anzahl der Anweisungen, für die Profiling-Informationen verwaltet werden sollen, wenn Profiling aktiviert ist

Der Standardwert ist 15

Der Höchstwert ist 100

Wenn Sie den Wert auf 0 setzen, wird die Profilerstellung effektiv deaktiviert

Siehe Abschnitt 13.7.5.32, „SHOW PROFILES-Anweisung“

Diese Variable ist veraltet; erwartet, dass sie in einer zukünftigen MySQL-Version entfernt wird

protocol_version Systemvariable protocol_version Gültigkeitsbereich Global Dynamisch Nein Typ Ganzzahl Die Version des Client/Server-Protokolls, das vom MySQL-Server verwendet wird

proxy_user Systemvariable proxy_user Gültigkeitsbereich Sitzung Dynamisch Nein Typ Zeichenfolge Wenn die aktuelle Client ein Proxy für einen anderen Benutzer ist, ist diese Variable der Name des Proxy-Benutzerkontos

Andernfalls ist diese Variable NULL

Siehe Abschnitt 6.2.12, „Proxy-Benutzer“

Systemvariable pseudo_slave_mode pseudo_slave_mode Geltungsbereich Sitzung Dynamisch Ja Typ Boolesch Diese Variable ist für die interne Serververwendung

Warnung Das Ändern des Sitzungswerts der Systemvariablen pseudo_thread_id ändert den von der Funktion CONNECTION_ID() zurückgegebenen Wert

query_alloc_block_size Befehlszeilenformat –query-alloc-block-size=# Systemvariable query_alloc_block_size Gültigkeitsbereich Global, Sitzung Dynamisch Ja Typ Integer Standard Wert 8192 Mindestwert 1024 Höchstwert (64-Bit-Plattformen) 18446744073709550592 Höchstwert (32-Bit-Plattformen) 4294966272 Einheitsbytes Blockgröße 1024 Die Zuordnungsgröße in Bytes von Speicherblöcken, die Objekten zugeordnet werden, die während der Anweisungsanalyse und -ausführung erstellt werden

Wenn Sie Probleme mit der Speicherfragmentierung haben, kann es hilfreich sein, diesen Parameter zu erhöhen

query_cache_limit Befehlszeilenformat –query-cache-limit=# Systemvariable query_cache_limit Geltungsbereich Global Dynamisch Ja Typ Integer Standardwert 1048576 Minimalwert 0 Maximalwert (64 -Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 Zwischenspeichern Sie keine Ergebnisse, die größer als diese Anzahl von Bytes sind

Der Standardwert ist 1 MB.

query_cache_min_res_unit Befehlszeilenformat –query-cache-min-res-unit=# Systemvariable query_cache_min_res_unit Gültigkeitsbereich Global Dynamisch Ja Typ Ganzzahl Standardwert 4096 Mindestwert 512 Höchstwert (64-Bit-Plattformen) 18446744073709551615 Höchstwert (32-Bit-Plattformen) 4294967295 Die Mindestgröße (in Bytes) für Blöcke, die vom Abfrage-Cache zugewiesen werden

Der Standardwert ist 4096 (4 KB)

Tuning-Informationen für diese Variable finden Sie in Abschnitt 8.10.3.3, „Query Cache Configuration“

query_cache_size Befehlszeilenformat –query-cache-size=# Systemvariable query_cache_size Geltungsbereich Global Dynamisch Ja Typ Ganzzahl Standardwert 1048576 Minimalwert 0 Maximalwert (64-Bit-Plattformen) 18446744073709551615 Maximalwert (32-Bit-Plattformen) 4294967295 Die Menge an Arbeitsspeicher, der zum Zwischenspeichern von Abfrageergebnissen zugewiesen wird

Standardmäßig ist der Abfrage-Cache deaktiviert

Dies wird mit einem Standardwert von 1M erreicht, mit einem Standardwert für query_cache_type von 0

Die zulässigen Werte sind Vielfache von 1024; andere Werte werden auf das nächste Vielfache abgerundet

Für Werte ungleich Null von query_cache_size werden so viele Bytes Speicher zugewiesen, selbst wenn query_cache_type=0

Weitere Informationen finden Sie in Abschnitt 8.10.3.3, „Konfiguration des Abfrage-Cache“

Der Abfrage-Cache benötigt eine Mindestgröße von etwa 40 KB, um seine Strukturen zuzuweisen

(Die genaue Größe hängt von der Systemarchitektur ab.) Wenn Sie den Wert von query_cache_size zu klein einstellen, wird eine Warnung angezeigt, wie in Abschnitt 8.10.3.3, „Konfiguration des Abfrage-Cache“ beschrieben

query_cache_type Befehlszeilenformat –query-cache- type=# Systemvariable query_cache_type Geltungsbereich Global, Sitzung Dynamisch Ja Typ Enumeration Standardwert 0 Gültige Werte 0 1 2 Legen Sie den Abfrage-Cache-Typ fest

Das Festlegen des Werts GLOBAL legt den Typ für alle Clients fest, die sich danach verbinden

Einzelne Clients können den SESSION-Wert festlegen, um ihre eigene Verwendung des Abfragecaches zu beeinflussen

Mögliche Werte sind in der folgenden Tabelle dargestellt

Option Beschreibung 0 oder AUS Ergebnisse nicht im Abfrage-Cache zwischenspeichern oder Ergebnisse aus dem Abfrage-Cache abrufen

Beachten Sie, dass dadurch der Abfrage-Cache-Puffer nicht freigegeben wird

Dazu sollten Sie query_cache_size auf 0 setzen

1 oder ON Alle zwischenspeicherbaren Abfrageergebnisse zwischenspeichern, außer denen, die mit SELECT SQL_NO_CACHE beginnen

2 oder DEMAND Cache-Ergebnisse nur für cachefähige Abfragen, die mit SELECT SQL_CACHE beginnen

Diese Variable ist standardmäßig auf OFF gesetzt

Wenn der Server gestartet wird, während query_cache_type auf 0 gesetzt ist, ruft er den Abfrage-Cache-Mutex überhaupt nicht ab, was bedeutet, dass der Abfrage-Cache zur Laufzeit nicht aktiviert werden kann und der Overhead bei der Abfrageausführung reduziert wird

query_cache_wlock_invalidate Befehlszeilenformat — query-cache-wlock-invalidate[={OFF|ON}] Systemvariable query_cache_wlock_invalidate Geltungsbereich Global, Sitzung Dynamisch Ja Typ Boolean Standardwert OFF Wenn ein Client normalerweise eine WRITE-Sperre auf einer MyISAM-Tabelle erwirbt, werden andere Clients nicht daran gehindert, etwas auszugeben Anweisungen, die aus der Tabelle lesen, wenn die Abfrageergebnisse im Abfragecache vorhanden sind

Wenn Sie diese Variable auf 1 setzen, wird eine WRITE-Sperre für eine Tabelle angefordert, um alle Abfragen im Abfragecache, die sich auf die Tabelle beziehen, ungültig zu machen

Dies zwingt andere Clients, die versuchen, auf die Tabelle zuzugreifen, zu warten, während die Sperre aktiv ist

query_prealloc_size Befehlszeilenformat –query-prealloc-size=# Systemvariable query_prealloc_size Geltungsbereich Global, Sitzung dynamisch Ja Typ Integer Standardwert 8192 Mindestwert 8192 Maximalwert (64-Bit-Platf

Parameterabfragen mit Access Update New

Video ansehen

Weitere Informationen zum Thema access variable in abfrage

access variable in abfrage Einige Bilder im Thema

 Update Parameterabfragen mit Access
Parameterabfragen mit Access Update New

Query Monitor – WordPress plugin | WordPress.org Update

Who can access Query Monitor’s output? By default, Query Monitor’s output is only shown to Administrators on single-site installations, and Super Admins on Multisite installations. In addition to this, you can set an authentication cookie which allows you to view Query Monitor output when you’re not logged in, or when you’re logged in as a user who cannot usually see Query Monitor’s …

+ Details hier sehen

Read more

Beschreibung

Query Monitor ist das Entwickler-Tools-Panel für WordPress

Es ermöglicht das Debuggen von Datenbankabfragen, PHP-Fehlern, Hooks und Aktionen, Blockeditorblöcken, eingereihten Skripten und Stylesheets, HTTP-API-Aufrufen und mehr

Es enthält einige erweiterte Funktionen wie das Debuggen von Ajax-Aufrufen, REST-API-Aufrufen und Benutzerfähigkeiten Schecks

Es bietet die Möglichkeit, einen Großteil seiner Ausgabe nach Plugins oder Themen einzugrenzen, sodass Sie schnell leistungsschwache Plugins, Themen oder Funktionen ermitteln können

Query Monitor konzentriert sich stark darauf, seine Informationen auf nützliche Weise darzustellen, beispielsweise durch Anzeigen einer aggregierten Datenbank Abfragen gruppiert nach den dafür verantwortlichen Plugins, Themes oder Funktionen

Es fügt ein Admin-Toolbar-Menü hinzu, das einen Überblick über die aktuelle Seite zeigt, mit vollständigen Debugging-Informationen, die in Panels angezeigt werden, sobald Sie ein Menüelement auswählen

Vollständige Informationen finden Sie auf der Query Monitor-Website.

Hier ist eine Übersicht darüber, was für jede Seite angezeigt wird Wird geladen:

Datenbankabfragen, einschließlich Benachrichtigungen für langsame, doppelte oder fehlerhafte Abfragen

Ermöglicht das Filtern nach Abfragetyp ( SELECT , UPDATE , DELETE usw.), verantwortliche Komponente (Plug-in, Design, WordPress-Kern) und Aufruffunktion und bietet separate aggregierte Ansichten für jede.

, , , usw.), verantwortliche Komponente (Plug-in, Theme, WordPress-Kern) und Aufruffunktion und bietet separate aggregierte Ansichten für jede

Der Vorlagendateiname, die vollständige Vorlagenhierarchie und die Namen aller Vorlagenteile, die geladen oder nicht geladen wurden

PHP-Fehler werden zusammen mit ihrer verantwortlichen Komponente und dem Aufrufstapel und einer sichtbaren Warnung in der Admin-Symbolleiste gut dargestellt in Post-Inhalten, wenn WordPress 5.0+ oder das Gutenberg-Plug-in verwendet wird.

Abgestimmte Umschreibungsregeln, zugehörige Abfragezeichenfolgen und Abfragevariablen.

In die Warteschlange eingereihte Skripte und Stylesheets, zusammen mit ihren Abhängigkeiten, Abhängigkeiten und Warnungen für defekte Abhängigkeiten.

Spracheinstellungen und geladene Übersetzungsdateien (MO-Dateien) für jede Textdomäne.

HTTP-API-Anforderungen mit Antwortcode, verantwortlicher Komponente und benötigter Zeit, mit Warnungen für fehlgeschlagene oder fehlerhafte Anforderungen.

Benutzerfähigkeitsprüfungen, zusammen mit dem Ergebnis und allen übergebenen Parametern zum Fähigkeitscheck

Umgebungsinformationen, einschließlich detaillierter Informationen über PHP, die Datenbank, WordPress und den Webserver

Die Werte aller bedingten WordPress-Funktionen wie is_single() , is_home() usw

, , usw aktualisiert.

Außerdem:

Immer wenn eine Umleitung auftritt, fügt Query Monitor einen HTTP-Header hinzu, der den Call-Stack enthält, sodass Sie Ihren bevorzugten HTTP-Inspektor oder Ihre bevorzugten Browser-Entwicklertools verwenden können, um nachzuverfolgen, was die Umleitung ausgelöst hat verschiedene Debugging-Informationen in seinen Kopfzeilen

PHP-Fehler werden auch an die Entwicklerkonsole des Browsers ausgegeben

Die Antwort von einer authentifizierten WordPress-REST-API-Anforderung enthält eine Übersicht über Leistungsinformationen und PHP-Fehler in ihren Headern, solange der authentifizierte Benutzer die Berechtigung hat, die Ausgabe von Query Monitor anzuzeigen

Eine umhüllte REST-API-Anforderung enthält sogar noch mehr Debugging-Informationen in der qm-Eigenschaft der Antwort

Standardmäßig wird die Ausgabe von Query Monitor nur Administratoren bei Single-Site-Installationen und Super-Admins bei Multisite-Installationen angezeigt

Darüber hinaus , können Sie ein Authentifizierungscookie setzen, mit dem Sie die Ausgabe des Abfragemonitors anzeigen können, wenn Sie nicht angemeldet sind (oder wenn Sie als Nicht-Administrator angemeldet sind)

Weitere Informationen finden Sie im Bereich Einstellungen

Andere Plugins

Ich betreue mehrere andere Plugins für Entwickler

Schau sie dir an:

Die Benutzerumschaltung ermöglicht das sofortige Umschalten zwischen Benutzerkonten in WordPress

Mit WP Crontrol können Sie sehen und steuern, was im WP-Cron-System passiert

Datenschutzerklärung

Query Monitor ist standardmäßig privat und wird es immer sein

Es speichert keine der gesammelten Daten dauerhaft

Es sendet keine Daten an Dritte und enthält auch keine Ressourcen von Drittanbietern.

Die vollständige Datenschutzerklärung von Query Monitor finden Sie hier.

SQLチュートリアル-変数の操作 New

Video ansehen

Weitere Informationen zum Thema access variable in abfrage

access variable in abfrage Sie können die schönen Bilder im Thema sehen

 New SQLチュートリアル-変数の操作
SQLチュートリアル-変数の操作 Update New

sql – How to query MongoDB with “like … – Stack Overflow Update New

22.07.2010 · That would have to be: db.users.find({“name”: /.*m.*/}) Or, similar: db.users.find({“name”: /m/}) You’re looking for something that contains “m” somewhere (SQL’s ‘%’ operator is equivalent to regular expressions’ ‘.*’), not something that has “m” anchored to the beginning of the string. Note: MongoDB uses regular expressions which are more powerful …

+ mehr hier sehen

Read more

Das müsste heißen:

db.users.find({“name”: /.*m.*/})

Oder ähnliches:

db.users.find({“name”: /m/})

Sie suchen nach etwas, das irgendwo “m” enthält (der ‘ % ‘-Operator von SQL entspricht regulären Ausdrücken ‘. * ‘), nicht nach etwas, bei dem “m” am Anfang der Zeichenfolge verankert ist

Hinweis: MongoDB verwendet reguläre Ausdrücke, die mächtiger sind als “LIKE” in SQL

Mit regulären Ausdrücken können Sie beliebige Muster erstellen

Weitere Informationen zu regulären Ausdrücken finden Sie unter Reguläre Ausdrücke (MDN).

Access – Abfrage erstellen – Export nach Excel New Update

Video unten ansehen

Neues Update zum Thema access variable in abfrage

access variable in abfrage Einige Bilder im Thema

 Update Access - Abfrage erstellen - Export nach Excel
Access – Abfrage erstellen – Export nach Excel Update

Weitere Informationen zum Thema access variable in abfrage

Updating

Schlüsselwörter zum Thema access variable in abfrage

Updating

Ende des Themas access variable in abfrage

Articles compiled by Tratamientorosacea.com. See more articles in category: DIGITAL MARKETING

Related Videos

Leave a Comment