SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.04.2011 09:36:37

yuriy
Завсегдатай
Зарегистрирован: 24.10.2010
Сообщений: 76

Создание таблицы большого размера

Привет всем!
Стал вопрос создать огромную таблицу для прайсов товаров. Загружаются прайсы в формате CSV в эту таблицу.
Пишем, например, запрос на создание:
CREATE TABLE prices
(
     id INT UNSIGNED NOT NULL AUTO_INCREMENT,
     nomenklatura TEXT,
     coust FLOAT,
     valuta CHAR(10)
     PRIMARY KEY (id)
   
) MAX_ROWS = 100000000 AVG_ROW_LENGTH=62;

В опциях создания таб. указую: AVG_ROW_LENGTH = 62, MAX_ROWS = 100000000.
Тоисть получается 100 млн. строк и средние значение длины строки - 62 Bytes.
Вопрос: размер файла табл. сосотавит 62*100 млн. = 6,2Г. Верно?
В справочнике толком нигде не написано в чем измереется опция:AVG_ROW_LENGTH. Написано лишь что это приближенное значение средней длины строки для данной таблицы. Так это кол-во симоволов или Bytes?

Неактивен

 

#2 22.04.2011 13:54:27

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание таблицы большого размера

Эти значения влияют не на размер файла, а на размер указателя,
которым адресуются строки внутри файла. Куда полезнее поиграть
с типами данных (например, избавиться от TEXT в пользу VARCHAR).

Размер строки задается в байтах, разумеется.

Неактивен

 

#3 22.04.2011 14:45:03

yuriy
Завсегдатай
Зарегистрирован: 24.10.2010
Сообщений: 76

Re: Создание таблицы большого размера

А как тогда мне создать таблицу  которая местила всебе к примеру 100 млн.строк. На сервере ведь стоит ограничение в 4Г. ТОисть создать таблицу большого размера: какие опции нужно прописывать? Спасибо.

Неактивен

 

#4 22.04.2011 15:53:27

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание таблицы большого размера

Ровно так. По умолчанию адресации таблицы хватает для таблиц размером до
256TB. Большинству пользователей этого значения вполне достаточно.

Неактивен

 

#5 22.04.2011 16:21:27

yuriy
Завсегдатай
Зарегистрирован: 24.10.2010
Сообщений: 76

Re: Создание таблицы большого размера

Но по умолчанию операционная система не позволяет создавать такие большие таблицы! Как быть, чтобы преодолеть ограничение в 4Г?

Неактивен

 

#6 22.04.2011 18:12:28

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание таблицы большого размера

Использовать файловую систему, которая позволяет создавать большие файлы.
В голову приходит только FAT32, который не поддерживает размеры больше 4G,
современные ФС все поддерживают.

Неактивен

 

#7 22.04.2011 18:58:56

yuriy
Завсегдатай
Зарегистрирован: 24.10.2010
Сообщений: 76

Re: Создание таблицы большого размера

Еще один вопрос к Вам: планирую загружать прайсы в формате CSV. А позволяет ли MySQL загружать xls-файлы в БД? Чтобы пользователь не конвертировал xls-файл, а прямо согласно выбраной структуре (кол-во столбцов) загружал этот файл прямо в БД с помощью LOAD DATA LOCAL INFILE? Или обязательно нужно загружать только в формате CSV?

Отредактированно yuriy (22.04.2011 18:59:51)

Неактивен

 

#8 25.04.2011 19:43:29

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание таблицы большого размера

Нет: xls — это закрытый формат Microsoft, его нельзя загружать.

Но можете написать какое-то приложение, которое будет экспортировать
данные. Например, через ODBC.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson