Я извлечения 10K записей (имеющих 10 столбцов с типами данных, как datetime
, text
, int
, varchar
) с использованием mysql_fetch_object
и загрузки всех столбцов из каждой присоединяемой таблицы в запросе, который дал память но затем я изменил запрос, чтобы получить только некоторые конкретные столбцы, которые устранили ошибку, избавив меня от утопления в озере ошибок.Как предотвратить фатальную ошибку размера памяти истощения
Запрос просто присоединение 3 таблицы, A, B, C, как, SELECT * FROM A JOIN B ON ......JOIN C ON ...... WHERE.....
Но я до сих пор в страхе, что если нет. записей или нет. столбцов, то ошибка снова появится .... так что будет полным решением этого? Я прочитал другие сообщения о SO и обнаружил, что следует использовать mysql_unbuffered_query
. Но нет ли решения, если я использую mysql_fetch_object
? Кроме того, небуферизованный запрос занимает больше времени, поскольку он возвращает одну строку за раз?
Вы можете дать нам ** фактический ** код? если вы хотите его оптимизировать, нам нужно что-то оптимизировать. Кстати, это может быть лучше на codereview.stackexchange.com. – PlantTheIdea
показать фактический запрос. Вы можете очень хорошо производить декартовое соединение, поэтому ваш 10k записывает воздушный шар в миллиарды или триллионы строк. –
no я выполнил запрос в mysql, и он буквально вернул 10000 строк. – sqlchild