supergarv, German
@supergarv@phpc.social avatar

@isotopp Sag mal, InnoDB und offpage column storage (max row size limits) - weisst du, ob man sich Performance-mässig Sorgen machen muss, wenn die Tabellen das nutzen wg vieler Spalten? Unabhängig von der Tatsache, dass man eh eins mit dem Normalisierungsknüppel übergezogen bekommt, und man sich von "richtiger" Performance ja eh schon verrannt hat...?

isotopp,
@isotopp@chaos.social avatar

@supergarv

Ja, muß man.

Also, wenn Deine Tabelle sehr viele Spalten hat und diese Spalten auch sehr viele BLOB/TEXT-Felder egal welcher Form hat, dann ist es so, daß in bestimmten Fällen diese Spalten in eigenen Pages gespeichert werden.

Dabei wird für jedes Feld, das ausgelagert wird, eine eigene 16 KB Page angebrochen. Du hast also

  1. sehr viele unterschiedliche offpage column storages (also extra Seeks)
  2. sehr viel interne Fragmentierung, weil im Mittel mindesens 1/2 Page unbelegt ist.
isotopp,
@isotopp@chaos.social avatar

@supergarv

Vermutlich mehr, weil kleine Columns wahrscheinlicher sind als große.

isotopp,
@isotopp@chaos.social avatar

@supergarv

Niederbrennen und ausräuchern ist keine schlechte Idee.

supergarv,
@supergarv@phpc.social avatar

@isotopp Hmkay. varchar(40) bei dynamic row format ist natürlich jetzt auch schon was, was man in Realitäten/scope von CMS kaum einhalten kann um "onpage" zu erhalten.

Danke Dir für den Input, darauf muss ich mal herumkauen.

isotopp,
@isotopp@chaos.social avatar

@supergarv

Mit NVME Storage bringt Dich der Seek nicht mehr sofort um, Du verschwendest nur eine Menge Platz.

Die Auslagerung erfolgt on-demand (also bei ca. 8K Row-Size) und von den großen zu den kleinen Objekten, und nur so viele, wie gebraucht werden.

Will sagen, Deine varchar(1024), die auch wirklich 1K groß werden, fliegen zuerst raus und dann ist eventuell ausreichend Platz für die varchar(40).

supergarv,
@supergarv@phpc.social avatar

@isotopp Ack. Geht bei "üblichen" CMS Größen, um die's mir gehr, letztlich um Tabellen die eher hunderte statt tausende MiB (nicht GiB) groß sind, und wenn nicht jede Zeile jede Spalte immer ausfüllt.

Das Spielkind in mir möchte das benchmarken, aber ich habe mir auch erklären lassen, dass das in nicht-sinnvoll-messbaren Unterschieden liegen dürfte, bei so ner Datenbasis.

isotopp,
@isotopp@chaos.social avatar
lolli,
@lolli@norden.social avatar

@isotopp @supergarv laut mariadb docs kann maria ein varchar() offload wenn es >255 bytes sein darf (64 utf8mb4 chars). ist das bei mysql 8.x gleich, oder sollten wir das mal besser selbst durchtesten?

isotopp,
@isotopp@chaos.social avatar

@lolli @supergarv Das ist bei beiden Varianten so, wenn ich das recht erinnere.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • slotface
  • kavyap
  • thenastyranch
  • everett
  • tacticalgear
  • rosin
  • Durango
  • DreamBathrooms
  • mdbf
  • magazineikmin
  • InstantRegret
  • Youngstown
  • khanakhh
  • ethstaker
  • JUstTest
  • ngwrru68w68
  • cisconetworking
  • modclub
  • tester
  • osvaldo12
  • cubers
  • GTA5RPClips
  • normalnudes
  • Leos
  • provamag3
  • anitta
  • megavids
  • lostlight
  • All magazines