Это дает Вам хорошие направления для сокращения Вашего использования основной памяти:
http://www.theodorenguyen-cao.com/2008/12/07/reduce-mysql-memory-usage/
Можно затем использовать это для оценки использований памяти MySQL на основе my.ini/my.cnf
И конечно, необходимо проверить MySQL Performance Blog.
Перефразируя вопрос более grep-дружественным способом, Вы хотите распечатать все строки, которые соответствуют EAN из некоторого основного списка EANs.
При предположении, что что-то напоминающее EAN не обнаружится нигде кроме столбца EAN, попробуйте:
master
Принятие EAN является первым столбцом master
(и что ведущее устройство содержит другие столбцы),
egrep "(`cat master | awk '{print $1}' | tr '\n' '\\|' | sed 's/|$//'`)" newfile
должен приблизиться (можно удалить awk
если master
просто список EAN; противный sed в конце для удаления запаздывания |
это следует из остальной части конвейера),
Вышеупомянутое ломается, если бы EANs (или подобные EAN 13-разрядные шаблоны) присутствуют в другом месте в данных и потребовали бы, чтобы более сложное регулярное выражение ограничило поиск определенным столбцом.
Попробуйте что-то вроде этого:
# Put each code in one line, and sort them
sed -e 's/\ /\n/g' new | sort > neweans
sed -e '/s\ /\n/g' master | sort > mastereans
# Diff them by columns, and delete from the list
# the new's that are not in master. Then, print them
diff -y neweans mastereans | grep -v "<" | awk '{print $1}'
INNER JOIN
илиSELECT ... WHERE
будет намного больше эффективного пространства и времени :-) – voretaq7 9 February 2010 в 00:29