2014-07-24 79 views
0

我有一個大尺寸的表,並有列在設計時定義錯誤。他們使用char 255作爲URL的列,現在我想通過更改這些列的長度來優化表。找出表中列最長的條目的長度

問題是我不知道什麼是這些列中設置長度的最長數據,以確保我不會錯過任何數據。

1-有什麼方法可以找到這個列中最長條目的大小嗎?

2-是否有一種安全的方式來優化我的表使用PHPMyAdmin?

回答

0

爲了找到列數據的長度,你必須使用mysql LENGTH功能像

SELECT length(column_name) FROM `table_name` 
+0

我測試,但也有一些是不對的,我設置的最大長度爲255,有行與307爲什麼長好辦法嗎?也許是因爲utf-8字符集? –

+0

我不知道這是怎麼發生的,但是當長度大於指定長度時,mysql會自動截斷。 – Sadikhasan

+0

我用php strlen()來測試,這是因爲utf-8,當你在php或mysql中檢索一個沒有英文字符的utf-8字符串時,每個字符都是2個單位長度。但列的最大長度使用實際的字符數。所以當長度(utf8列類型)是307(其中有英文字符)時,它可能是大約150個字符。 –

0

從結構選項卡中查找鏈接「規劃表結構」 - 這是上述列並在列表下區域添加新列:

Location of Propose table structure link

通過點擊該鏈接讓你與你的表結構和行的內容,以及爲網上最好的數據類型的建議一堆統計數據的頁面(注意,這些僅僅是建議,並不總是最好的選擇;例如我有一個自動增量列的表,但只有五行。它建議我使用ENUM('1','2','3','4','5'),這很愚蠢)。

無論如何,這是結果頁面的樣子: Propose table structure output