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:

Legnépszerűbb: