2014-07-24 4 views
0

У меня есть таблица большого размера и есть столбцы, которые плохо определены в дизайне. они используют char 255 для столбцов для URL-адресов, теперь я хочу оптимизировать таблицу, изменив длину этих столбцов.Выяснить длину самой длинной записи в столбце таблицы

Проблема в том, что я не знаю, что является самым длинным данным в этих столбцах, чтобы установить длину, чтобы убедиться, что я не пропускаю никаких данных.

1 Есть ли способ найти размер самой длинной записи в этой колонке?

2- Есть ли безопасный способ оптимизации моей таблицы с помощью PHPMyAdmin?

ответ

0

Для нахождения длины данных столбца, вы должны использовать MySQL LENGTH функцию как

SELECT length(column_name) FROM `table_name` 
+0

хороший способ, что я тестировал, но есть что-то не так с этим, я установить максимальную длину 255 и Есть строки с длиной 307. почему? возможно, из-за utf-8 charset? –

+0

Я не знаю, как это произойдет, но mysql автоматически усекает, когда длина больше заданной длины. – Sadikhasan

+0

Я либо протестировал с помощью php strlen(), из-за utf-8, когда вы извлекаете длину строки utf-8 без каких-либо английских символов в php или mysql, каждый символ имеет длину 2 единицы. но максимальная длина столбца использует фактический счетчик символов. поэтому, когда длина (типа столбца utf8) равна 307 (в ней есть английские символы), оно может составлять около 150 символов. –

0

На вкладке Структура, обратите внимание на ссылку «предлагает структуру таблицы» - это под списком столбцов и выше область для добавления новых столбцов:

Location of Propose table structure link

Щелчок по этой ссылке дает вам страницу с кучей статистических данных о вашей структуре таблицы и содержимом строк, а также предложения по лучшему типу данных для е (обратите внимание, что это только предложения и не всегда лучший выбор; например, у меня есть таблица с столбцом автоматического увеличения, но всего пять строк. Это говорит о том, что я использую ENUM ('1', '2', '3', '4', '5'), что глупо).

Во всяком случае, это то, что страница результат выглядит следующим образом: Propose table structure output

Смежные вопросы