Népszerű mysql kérdések és válaszok
Honnan tudod, hogy a következő AUTO_INCREMENT értéket egy táblázatot MySQL?
Felhívjuk figyelmét, hogy az internet gyakran hibás meghatározására szolgáló eljárás számát (id) felvétel, amely egészül ki:
Ez rossz! mert ha ez nem az utolsó rekord törlésre került, az id hozzáadott érték rekord mérkőzés MAX + 1!
Ezen túlmenően, amikor egy nagy számú egyidejű zaprosoov az adatbázis id a különböző ügyfelek válhat több, mint átvevő funkció SHOW TABLE STATUS LIKE „tbl”, mert Azt is csúszik INSERT. Például id: 1,2,3,4 törölve 3. Ezután hozzáadunk 5 helyett 3.
Hogyan kell beállítani a kezdeti érték egy olyan területen, auto növekmény MySQL?
Visszaállításához avtoinkremetnogo területen a kezdeti érték a meglévő adatok táblázatok fut:
Ezt követően, amikor hozzá, a következő bejegyzés a neve számos id + 1
Ha azt szeretnénk, hogy létrehozza a táblát:
Hogyan kell használni a szabad id rekordokat?
Eltávolítása után a rekordok egy adatbázis tábla, automatikus növekszik id megjelent, és soha nem fog használni. Ez kimondottan egyedi műveleteket. Például, ha annak eldöntése szinkronizálás osztott adatbázisok.
Ha használja az id a számozás kogtoruyu polzovetlyu show, a „lyukak” a számozás - nem egy szép látvány.
Két lehetőség van:
Eltávolítása után a maradékot dömping AUTO_INCREMENT 1 a következő paranccsal:
Hozzáadása után a rekord neki id helyett a szokásos funkciók mysql_insert_id () a következő:
Ő keres egy „lyuk” a számozása (ingyenes igazolvány száma), és megpróbálja elvenni az első szabad, ha sikeres, az utolsó hozzáadott rekord lesz id „lyukak”, és visszatért a szobába. A gyakori használata esetén az adatok cache memória változó.
A következtetés az összekapcsolt adatbázisok
Output minden területén KATEG és nevét terén GR. Vigyázat ugyanaz a neve. Ők vesznek a második bázis.
Állapotának ellenőrzése a felvétel
Ha van legalább egy rekordot megfelel annak a feltételnek:
Törlése a kapcsolódó adatbázisok
Néha szeretnénk írni az ilyen kéréseket:
De ez nem fog működni, ez egyenértékű az üzemi kód:
Rekordok száma
Számoljuk meg a rekordok száma, amelyek megfelelnek a feltételnek
Első kulcs csak hozzá bejegyzéseket
Ahhoz, hogy csak a hozzáadott rekordok kulcs funkció használatakor
Újraszámozás- id EGYEDI AUTO_INCREMENT mező mysql
99 százaléka az esetek nem szükséges megtenni. Egy egyedi kulcs jön létre, hogy továbbra is „lyuk” a számozása, amikor a rekordok törlésére. De néha szükség van. Például én létrehozott egy weboldalt, és a beírt hivatkozás az ügyfél a helyi gépen, persze, sokan voltak változathoz. Mint amikor „vykladyvanii élő”, hogy úgy tűnjön szép. Ez az alkalomra, és a következő skriptik:
Hogyan kap egy listát a bejegyzéseket a karakterlánc az állapotát MySql
Válassza ki a listából a bejegyzéseket a string id kódokat fogja használni a funkció MySql GROUP_CONCAT
Keresse a kapcsolódó táblázatokban elveszett bejegyzések
(Bejegyzések nem rendelkező referenciaérték)
Ha azt szeretnénk, hogy megtalálja és törölje árva feljegyzések:
DELETE vonatkozó javaslatot a következő lesz:
Request meghatározó utódok szüleik nélkül így néz ki:
A megfelelő javaslat TÖRLÉS őket:
Hány üzenetet küldtek során minden órában a nap?
Átalakítás TIMESTAMP DATETIME és vissza
MyISAM vagy InnoDB?
MyISAM az InnoDB gyorsabb - kétséges. Ők tervezték a különböző alkalmazások:- MyISAM - tabletták, szánt alkalmazások igen nagy mozgásteret az olvasási oldalon (pl fognak jól viselkedett a 1000 mért érték rekord 1). Meg kell érteni, hogy nem támogatja az egyidejű felvételt. Ie A behelyezés rekordok egy táblázat összes többi kérelemhez lóg és várnak!
- InnoDB - támogatja az egyidejű felvételt egy nagyon kis teljesítmény csökkenését leolvasott képest MyISAM. Valójában, a jelenléte kérelmek rögzítésére párhuzamos olvasó az ugyanazon a lemezen InnoDB lehetséges (ellentétben MyISAM), és ennek megfelelően, a teljesítmény e táblázatok lesz átlag feletti.
Mysql hogyan figyelmen kívül hagyja a hibákat, amikor betölti a dump?
Használd a kulcsot „-f” - ez lehetővé teszi, hogy továbbra is, ha hiba történik a folyamat. Például:
Hosszú MySQL lekérdezés és mit kell cserélni?
Ez a kérés elvégezhető 100tys.zapisey táblázatot, ha több mint 10 másodpercig, hogy törni két, egyenként végrehajtott kevesebb mint egy másodperc:
mysql adatbázis karakterkészlet és módosítsa az összes mezőt
A kérelmet az átalakítás a bázis:
Ha van egy MySQL szerver verzióját 5+ szerencséd! aki képes lesz teljesíteni az ilyen kérést itt:
Cserélje! db_name az adatbázis neve.
Miután a lekérdezés SQL választ kapni a stílus:
Másoljuk, illessze be a forma egy SQL lekérdezés, és végre, az eredmény - egy teljesen Megváltozott kódolása az összes asztal az utf8 - élvezze a megtakarított idő!
Emellett azonban a bázis legyen a megfelelő kódolás, a kapcsolat is telepíteni kell a megfelelő kódolás: