我有一個大尺寸的表,並有列在設計時定義錯誤。他們使用char 255作爲URL的列,現在我想通過更改這些列的長度來優化表。找出表中列最長的條目的長度
問題是我不知道什麼是這些列中設置長度的最長數據,以確保我不會錯過任何數據。
1-有什麼方法可以找到這個列中最長條目的大小嗎?
2-是否有一種安全的方式來優化我的表使用PHPMyAdmin?
我有一個大尺寸的表,並有列在設計時定義錯誤。他們使用char 255作爲URL的列,現在我想通過更改這些列的長度來優化表。找出表中列最長的條目的長度
問題是我不知道什麼是這些列中設置長度的最長數據,以確保我不會錯過任何數據。
1-有什麼方法可以找到這個列中最長條目的大小嗎?
2-是否有一種安全的方式來優化我的表使用PHPMyAdmin?
爲了找到列數據的長度,你必須使用mysql LENGTH
功能像
SELECT length(column_name) FROM `table_name`
從結構選項卡中查找鏈接「規劃表結構」 - 這是上述列並在列表下區域添加新列:
通過點擊該鏈接讓你與你的表結構和行的內容,以及爲網上最好的數據類型的建議一堆統計數據的頁面(注意,這些僅僅是建議,並不總是最好的選擇;例如我有一個自動增量列的表,但只有五行。它建議我使用ENUM('1','2','3','4','5'),這很愚蠢)。
無論如何,這是結果頁面的樣子:
我測試,但也有一些是不對的,我設置的最大長度爲255,有行與307爲什麼長好辦法嗎?也許是因爲utf-8字符集? –
我不知道這是怎麼發生的,但是當長度大於指定長度時,mysql會自動截斷。 – Sadikhasan
我用php strlen()來測試,這是因爲utf-8,當你在php或mysql中檢索一個沒有英文字符的utf-8字符串時,每個字符都是2個單位長度。但列的最大長度使用實際的字符數。所以當長度(utf8列類型)是307(其中有英文字符)時,它可能是大約150個字符。 –