SORU
8 HAZİRAN 2012, Cuma


Nasıl sayı olarak uuıd saklamak için?

Sorunun cevabı dayalı, UUID performance in MySQL, cevap veren kişi bir dize olarak değil UUID saklamak öneririz. Bu yapılabilir nasıl bu kadar emin değilim. Kimse bana bir şey önerebilir misin? Nasıl ruby benim kod ile anlaşma?

CEVAP
8 HAZİRAN 2012, Cuma


Eğer doğru anladıysam, birincil sütun olacak biçimde kullanıyorsun? İnsanlar (integer) düzenli bir birincil anahtar daha hızlı olacak " derler , ama başka bir şekilde MySQL karanlık tarafı kullanarak var. Aslında, MySQL daha hızlı indeksler, gerekli olduğunda başka bir şey daha ikili kullanıyor.

UUID 128 bit ve onaltılık olarak yazılmış olduğundan, çok kolay hızlı ve UUID saklamak için.

Öncelikle programlama dili ile tire çıkarın

110E8400E29B11D4A716446655440000 110E8400-E29B-11D4-A716-446655440000.

Şimdi 32 karakter (bu da birlikte çalışan bir MD5 gibi).

MySQL BINARY tek bir yana bir boyut UUİD(8*16 = 128)boyutu 8 bit.

Ekleme yapmanıza gerek yoktur.

INSERT INTO Table (FieldBin) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))

ve kullanarak sorgu:

SELECT HEX(FieldBin) AS FieldBin FROM Table

Programlama dilinde şimdi, yeniden Ekle pozisyonlar 9, 14, 19 ve 24 orijinal UUID maç için de tire. Eğer bu pozisyonlar her zaman farklı ise ikinci bir alanda bilgi saklayabilirsiniz.

Tam örnek :

CREATE TABLE  `test_table` (
    `field_binary` BINARY( 16 ) NULL ,
    PRIMARY KEY (  `field_binary` )
) ENGINE = INNODB ;

INSERT INTO  `test_table` (
    `field_binary`
)
VALUES (
    UNHEX(  '110E8400E29B11D4A716446655440000' )
);

SELECT HEX(field_binary) AS field_binary FROM `test_table`

Eğer herhangi bir onaltılık dize ile bu tekniği kullanmak isterseniz, her zaman alan uzunluğu length / 2. Yani sha512), alan BINARY (64) sha512) bir kodlama bu yana bir insan için 128 karakter uzunluğunda.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Good Creative Academy

    Good Creativ

    19 Kasım 2009
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008
  • Sams Page :D

    Sams Page :D

    15 Mart 2009