Ich verstehe nicht, warum ich die folgende Störung erhalte:Speicherleck Problem in CI mysql_result
Fatal error: Out of memory (allocated 10747904) (tried to allocate 93 bytes) in /home/project/public_html/system/database/drivers/mysql/mysql_result.php on line 167
phpinfo() Details
localvalue mastervalue
memory_limit 4028M 4028M
SQL
SELECT
p.*,l.*,u.*,ct.*,t.*,pc.*
FROM
tbl_Product AS p
JOIN tbl_DistributorLocationId AS l ON p.fk_LocationId = l.pk_DistributorLocationId
JOIN tbl_Manufacturer AS m ON p.fk_Manufacturer = m.pk_ManufacturerId
LEFT JOIN tbl_Color AS c ON p.fk_Colors = c.pk_ColorId
LEFT JOIN tbl_Texture AS t ON p.fk_Texture = t.pk_TextureId
LEFT JOIN tbl_ProductLine AS pl ON p.fk_ProductLine = pl.pk_ProductLineId
LEFT JOIN tbl_States AS s ON l.fk_StateId = s.pk_StateId
LEFT JOIN tbl_Users AS u ON l.fk_UserId = u.pk_UserId
LEFT JOIN tbl_UserType AS ut ON u.fk_UserTypeId = ut.pk_UserTypeId
LEFT JOIN tbl_ProductCategories AS pc ON p.fk_CategoryId = pc.pk_CategoryId
LEFT JOIN tbl_CategoryType AS ct ON pc.fk_CategoryTypeId = ct.pk_CategoryTypeId
where
1 = 1
AND p.boolean_status = 1
ORDER BY
LOCATE('', varchar_Title),
LOCATE('', varchar_ProductLineText),
LOCATE('', varchar_ColorName),
LOCATE('', varchar_TextureName),
LOCATE('', text_Description),
LOCATE('', varchar_CategoryName),
LOCATE('', varchar_CategoryTypeName)
Ergebnis aus phpMyAdmin
39706 total, Query took 1.2748 seconds.
Ich bezweifle es ist ein Speicherleck, in der Regel, wenn Sie über genügend Arbeitsspeicher ausgeführt beim Versuch, eine kleine Menge zu verteilen gibt eine unendliche Schleife irgendwo in Ihr Code .. Nur weil der db-Teil nicht genügend Speicher hatte, heißt das nicht, dass das eigentliche Problem darin liegt. Sie könnten zum Beispiel den gleichen Datensatz eine Milliarde Mal herausziehen. – ArtisticPhoenix
Sie können nicht die sehr großen Daten auf der Abfrage abrufen ... Verwenden Sie tun While-Schleife, um den Speicher abzurufen und zu löschen – Sundar
Wir müssten wirklich mehr Code sehen, um herauszufinden, was es ist, @Sundar hat einen guten Punkt, aber unmöglich ohne mehr Informationen zu wissen. 4GB ist ein guter Teil des Speichers, so dass es viele Zeilen oder Zeilen mit einer großen Menge an Daten wie BLOB-Bildern benötigen würde, um nicht genügend Arbeitsspeicher zu haben. – ArtisticPhoenix