我有一個人的分貝(總數爲<),從另一個系統導入。這些ID都是這樣Mysql:這個非標準ID字段的最佳類型
_200802190302239ILXNSL
我做的查詢,並加入到該領域
因爲我懶惰和無知關於MySQL的數據類型和性能的其他表,我只是將它設置爲文本。
我應該使用什麼樣的數據類型以及爲了獲得最佳性能而應該設置哪種類型的索引?
我有一個人的分貝(總數爲<),從另一個系統導入。這些ID都是這樣Mysql:這個非標準ID字段的最佳類型
_200802190302239ILXNSL
我做的查詢,並加入到該領域
因爲我懶惰和無知關於MySQL的數據類型和性能的其他表,我只是將它設置爲文本。
我應該使用什麼樣的數據類型以及爲了獲得最佳性能而應該設置哪種類型的索引?
varchar(或char,如果它們全部具有相同的長度)。
類型:作爲所述,VARCHAR或炭(方式更好,如果該ID的長度是固定的)。
索引類型:一UNIQUE
可能(如果你不會有相同的ID多個條目)
作爲進一步的觀察,我可能會猶豫(由於性能原因)使用該字段作爲一個自然的主鍵,特別是如果它將被多個外鍵引用。我可能只是在這個非標準ID列上創建一個合成主鍵(例如一個AUTO_INCREMENT
列)和一個UNIQUE
索引。另一方面,如果行數少於400行,它並不重要,反正它會很快吸菸,除非有大/大表引用這個人表。
將其設置爲具有適當長度的VARCHAR;這樣,您可以索引整個列,或將其用作主鍵或唯一索引組件。
如果你真的對性能偏執狂,你確定它不會包含任何非ascii字符,你可以將它設置爲ascii字符集,並節省幾個字節,因爲不需要utf8的空間(在這樣的事情作爲排序緩衝區和內存臨時表)。
但是如果你的數據庫中有400條記錄,你幾乎肯定不會在意。