данные не изменяютсяа через год-два так же?
5 млн файловэто не тот объем, из-за которого стоит переживать насчёт производительности.
fgrep:$ cat /tmp/file1.txt
aaa
bbb
ccc
$ cat /tmp/file2.txt
bbb
123
aaa
$ fgrep -f /tmp/file1.txt /tmp/file2.txt
bbb
aaa$output = shell_exec('fgrep -f /tmp/file1.txt /tmp/file2.txt > /tmp/dups.txt');$ sort -u /tmp/file1.txt /tmp/file2.txt
123
aaa
bbb
ccc$output = shell_exec('sort -u /tmp/file1.txt /tmp/file2.txt > /tmp/dups.txt');
ALGORITHM=INSTANT к синтаксису:ALTER TABLE table_name [alter_specification], ALGORITHM=INSTANT;
The benefit of the INSTANT algorithm is that only metadata changes are made in the data dictionary. There is no need to acquire metadata lock during SE changes and we don’t touch the data of the table.
{
"age_to": "8",
"gender": "children",
"age_from": "4",
"quantity": "400",
"additionally": "no"
}надо хранить в отдельной записи для возможности поиска по ним.SELECT * FROM table WHERE column ->> '$.a.b' = 'bla-bla'SEARCH: Боль в костяхЭто уже полнотекстовый поиск.
я же считаю что первичный ключ, в большенстве случаев должен называться ID.согласен.
SELECT
[ItemCode],
COUNT([ProjectId]) as ProjectsCnt,
ProjectIds AS ProjectId
FROM [ItemCodes] C
CROSS APPLY (
SELECT ','+[ProjectId] FROM [ItemCodes]
WHERE [ProjectId]=C.[ProjectId]
GROUP BY [ItemCode],[ProjectId]
FOR XML PATH('')
) D (ProjectIds)
GROUP BY [ItemCode]
CREATE TABLE employees ( employee_id INTEGER PRIMARY KEY AUTOINCREMENT, last_name VARCHAR NOT NULL, first_name VARCHAR, hire_date DATE, CONSTRAINT name_unique UNIQUE (last_name, first_name) );