Forum » Programiranje » MariaDB - max key length is 3072 bytes
MariaDB - max key length is 3072 bytes
HotBurek ::
Dobro jutro.
Evo, nov dan, nov izziv.
Če v MariaDB (InnoDB) za stolpec, ki ima tip VARCHAR(1000), poskušam postavit UNIQUE INDEX, dobim error:
Zadevo rešim takole:
Zanimajo me dve stvari.
1. Ali je možno kako povečat max key length na nekaj večjega, kar bi prebavilo VARCHAR(1000)?
2. Ali zgornji index, ki ima limit na 750, zagotavlja UNIQUE pogoj tudi za stringe dalšje od 750 znakov?
(Pravkar testiral in kaže da zagotavlja pogoj "UNIQUE".)
3. Pa če smo že pri temu. Kakšna je prednost, če bi za index namesto "BTree" uporabil "Hash"? Vse vrednosti so URL-ji, vsi so "UNIQUE".
4. Ter še nekaj. Če je max key length 3072, in je stolpec VARCHAR(1000), kje je max do kamor lahko raztegnem index? Trenutno 1000 je preveč, 750 je ok. Je kakšna matematična razlaga, da se direkt najde zadnjo max cifro?
(Pravkar izračunal: 3072 / 4 = 768)
Evo, nov dan, nov izziv.
Če v MariaDB (InnoDB) za stolpec, ki ima tip VARCHAR(1000), poskušam postavit UNIQUE INDEX, dobim error:
Specified key was too long; max key length is 3072 bytes
Zadevo rešim takole:
ALTER TABLE `database1`.`table1` ADD PRIMARY KEY(`column1`(750));
Zanimajo me dve stvari.
1. Ali je možno kako povečat max key length na nekaj večjega, kar bi prebavilo VARCHAR(1000)?
2. Ali zgornji index, ki ima limit na 750, zagotavlja UNIQUE pogoj tudi za stringe dalšje od 750 znakov?
(Pravkar testiral in kaže da zagotavlja pogoj "UNIQUE".)
3. Pa če smo že pri temu. Kakšna je prednost, če bi za index namesto "BTree" uporabil "Hash"? Vse vrednosti so URL-ji, vsi so "UNIQUE".
4. Ter še nekaj. Če je max key length 3072, in je stolpec VARCHAR(1000), kje je max do kamor lahko raztegnem index? Trenutno 1000 je preveč, 750 je ok. Je kakšna matematična razlaga, da se direkt najde zadnjo max cifro?
(Pravkar izračunal: 3072 / 4 = 768)
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
- spremenilo: HotBurek ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [MariaDB] Kako izpisat "last" in "second to last" ceno vsako v svoj stolpec?Oddelek: Programiranje | 463 (326) | HotBurek |
» | Mariadb (InnoDB) istočasni insert v tabelo iz različnih procesov (strani: 1 2 )Oddelek: Programiranje | 7306 (3664) | 2g00d4u |
» | [MariaDB] Zakaj SQL enači "ab " z "ab" v WHERE pogoju?Oddelek: Programiranje | 1055 (640) | DamijanD |
» | [UWP] [C#]Oddelek: Programiranje | 4176 (2206) | BivšiUser2 |
» | SQL vprasanje (strani: 1 2 )Oddelek: Programiranje | 8345 (5024) | BivšiUser2 |