powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Большая база данных
22 сообщений из 22, страница 1 из 1
Большая база данных
    #39402420
Portreter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем здравствуйте!
Есть несколько вопросов, буду рад, если поможете советами.
1. Каким способом можно относительно быстро наполнить таблицу 20ю миллионами строк из шаблона в 100тыс. строк? То есть в текстовом файле есть 100тыс. строк, нужно размножить их до 20 миллионов.
2. В базе в каждой строке 35 столбцов (в основном varchar), запрос будет вида SELECT * FROM table WHERE text = 'example', text планируется индексом. Можно ли так обращаться к настолько большой базе данных (в плане времени ожидания)?
3. Какие основные моменты вы бы посоветовали для ускорения (до 3с на запрос) такой базы данных?

Огромное спасибо за помощь!
...
Рейтинг: 0 / 0
Большая база данных
    #39402460
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Portreter,

1. Декартово произведение на таблицу из 200 строк. Или на две таблицы из 10 и 20 строк. И т.д.

2. Зависит от селективности условия. Если выбираться будет очень небольшая доля записей, то все будет хорошо.

3. Вопрос некорректен. Время выполнения запроса зависит от такой массы условий, что проще протестировать, чем посчитать. Но применительно к запросу из пункта 2 при высокой селективности условия 3 секунды представляются вполне возможными.
...
Рейтинг: 0 / 0
Большая база данных
    #39402551
Portreter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор1. Декартово произведение на таблицу из 200 строк. Или на две таблицы из 10 и 20 строк. И т.д.
А технически как это делается?
автор2. Зависит от селективности условия. Если выбираться будет очень небольшая доля записей, то все будет хорошо.
Спасибо! Будет выбираться одна только строка.
И по пункту 3 еще раз спасибо)
...
Рейтинг: 0 / 0
Большая база данных
    #39402645
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PortreterА технически как это делается?JOIN-ом без указания условия соединения таблиц.
...
Рейтинг: 0 / 0
Большая база данных
    #39412095
Portreter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Я сделал запрос SELECT * FROM table1 CROSS JOIN table2 .
В результате два вопроса:
1. Как полученное сохранить в таблицу (чтобы в реальной таблице было 20 миллионов записей)?
2. В результате объединения количество столбцов стало 70 (35+35). А нужно чтобы 35 и осталось.

Заранее спасибо!
...
Рейтинг: 0 / 0
Большая база данных
    #39412096
Portreter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так, в общем получилось у меня создать нужную таблицу)
Но теперь другая проблема - запрос вида select * from table where col1=test (test - число в 10 символов) выполняется 2.2 минуты.
...
Рейтинг: 0 / 0
Большая база данных
    #39412149
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
CREATE INDEX idx_col1 ON `table` (col1);
...
Рейтинг: 0 / 0
Большая база данных
    #39412294
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Portretermiksoft,

Я сделал запрос SELECT * FROM table1 CROSS JOIN table2 .
В результате два вопроса:
1. Как полученное сохранить в таблицу (чтобы в реальной таблице было 20 миллионов записей)?
2. В результате объединения количество столбцов стало 70 (35+35). А нужно чтобы 35 и осталось.

Заранее спасибо!
Код: sql
1.
INSERT INTO mytable SELECT table1.* FROM table1, table2
...
Рейтинг: 0 / 0
Большая база данных
    #39412354
Portreter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо!
Поставил создание индекса, но я так понимаю индекс на такое количество записей будет создаваться вечность).
Можно как-то проверить создан ли в итоге индекс и сколько он весит?
...
Рейтинг: 0 / 0
Большая база данных
    #39412359
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Portreterиндекс на такое количество записей будет создаваться вечностьОтсортирить 20кк чисел - вечность? не смеши...
...
Рейтинг: 0 / 0
Большая база данных
    #39412363
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PortreterМожно как-то проверить создан ли в итоге индекс
Если сервер выполнил команду, не сообщил об ошибке и показал новое приглашение ввода - да, выполнил. Чудес не бывает.
...
Рейтинг: 0 / 0
Большая база данных
    #39412370
Portreter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaPortreterМожно как-то проверить создан ли в итоге индекс
Если сервер выполнил команду, не сообщил об ошибке и показал новое приглашение ввода - да, выполнил. Чудес не бывает.
Вот к сожалению выдал ошибку 500 Interval Error. Как в итоге посмотреть сколько весит индекс? Может со свободным местом проблема.
...
Рейтинг: 0 / 0
Большая база данных
    #39412557
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Portreterвыдал ошибку 500 Interval ErrorУ MySQL нет такого сообщения. А с ошибками веб-сервера ты не по адресу. И ошибка веб-сервера вовсе не означает, что MySQL-сервер не выполнил затребованную операцию.
...
Рейтинг: 0 / 0
Большая база данных
    #39412613
Portreter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaPortreterвыдал ошибку 500 Interval ErrorУ MySQL нет такого сообщения. А с ошибками веб-сервера ты не по адресу. И ошибка веб-сервера вовсе не означает, что MySQL-сервер не выполнил затребованную операцию.
Ага, ясно. А как все же на счет информации по занимаемому месту индекса? И как вообще посмотреть какие индексы работают в таблице?
...
Рейтинг: 0 / 0
Большая база данных
    #39412629
machetero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PortreterИ как вообще посмотреть какие индексы работают в таблице?
Гуглите EXPLAIN
...
Рейтинг: 0 / 0
Большая база данных
    #39412720
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
macheteroPortreterИ как вообще посмотреть какие индексы работают в таблице?
Гуглите EXPLAINГуглить не надо.
Надо смотреть в официальной документации - EXPLAIN Output Format
...
Рейтинг: 0 / 0
Большая база данных
    #39412725
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PortreterА как все же на счет информации по занимаемому месту индекса?Зависит от массы условий. В т.ч. от размера входящих полей, типа движка таблицы, наличия/размера полей первичного ключа.
...
Рейтинг: 0 / 0
Большая база данных
    #39412842
Portreter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас посмотрел, у меня база 25 Гб занимает) Я так понимаю это все индекс.
...
Рейтинг: 0 / 0
Большая база данных
    #39412894
Portreter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, еще такой вопрос - правильная (ну самая начальная) структура таблицы такая?

col1 - PRIMARY KEY, уникальный первичный ключ (индекс), id каждой строки;
col2 - INDEX, основной столбец, по которому будет происходить поиск в таблице;
col3-col30 - все остальные столбцы.
...
Рейтинг: 0 / 0
Большая база данных
    #39413010
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Portreter,

Традиционно поля первичного ключа идут первыми. Но это лишь для удобства чтения человеком.
Все остальное вообще роли не играет.
...
Рейтинг: 0 / 0
Большая база данных
    #39413026
Portreter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftPortreter,

Традиционно поля первичного ключа идут первыми. Но это лишь для удобства чтения человеком.
Все остальное вообще роли не играет.
Ясно, спасибо!
А вот еще такой важный нюанс - у меня сейчас размер этой базы данных (20 миллионов строк, 26 столбцов) 11Гб (индекс занимает 300 Мб) - это нормально 11Гб или я может быть что-то не так сделал?
...
Рейтинг: 0 / 0
Большая база данных
    #39413032
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
11 Гб / 20 кк = полкило на запись.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Большая база данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]