Magnesium (Mg)

vitguidemagnesiumMagnesium is an essential mineral. An adult contains around 20-30 grams of magnesium. Approximately half of the body's magnesium supply is stored in the bones. The rest is distributed in the muscles, liver, nerve tissue and other soft tissues. Magnesium is mainly found inside the cells where it supports over 300 different enzymatic processes.

Functions and importance for

Deficiencies and poor utilisation may be caused by

Deficiency symptoms

Often very similar to those that occur with calcium deficiencies:

Sources

Mainly kernels, almonds, nuts, seeds, beans, oats, whole-grain, avocado, cabbage and other vegetables, dark chocolate, and seaweed. Also, dairy products, fruit, berries, meat, fish, and sea salt.

Magnesium content in mg per 100 grams

Pumpkin seeds 540
Cocoa powder 523
Almonds 265
Oats 117
Avocado, parsley 29


Recommended daily allowance

Adults: 11 years of age and older: 375 mg
Pregnancy: Slightly more (with help from supplements)
Children: 1-10 years of age: 85 mg

Increased need

Magnesium, supplements, and medical drugs

Magnesium is used in nutritional supplements as well as in certain medical drugs. The most bio-available magnesium sources are magnesium carbonate, magnesium acetate, magnesium orotate, and magnesium amino acid chelate. Magnesium oxide (E530) is a tablet excipient that is also used against heart burn and constipation. This magnesium compound is difficult for the body to absorb and does therefore not affect the body's magnesium status.

Some supplements contain several magnesium sources in order to ensure the optimal bio-availability and utilisation of magnesium.

Over dosing - side effects

Rarely seen at doses below 2,000 mg and with normal kidney function. If a person consumes more magnesium than the body can absorb - especially in the form of laxatives with magnesium - it may result in:

In people with impaired kidney function, too much magnesium may in extreme cases cause:

Important information

There is an interaction between magnesium and calcium. For that reason, these two minerals must be ingested in the right balance. Normally, magnesium and calcium should be consumed in a 1:2 ratio. In the case of kidney diseases and serious heart complications it is advised only to take magnesium supplements if directed by a physician

7.614MBMemory Usage124msRequest Duration
Joomla! Version4.4.4
PHP Version8.3.6
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
8.0.40-0ubuntu0.24.04.1
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_0900_ai_ci
$_GET
array:9 [ "option" => "com_content" "view" => "article" "id" => "488:magnesium-mg" "catid" =...
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
array:1 [ "8c48c4b25e7bfaf1e1e1af15958abb70" => "hkfpf81n3nfafg9edjfago13ao" ]
$_SERVER
array:42 [ "HTTP_AUTHORIZATION" => "" "HTTPS" => "on" "SSL_TLS_SNI" => "healthandscience.eu" ...
session
array:3 [ "counter" => 2 "timer" => array:3 [ "start" => 1753487842 "last" => 1753487842...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
plg_system_languagefilter
array:1 [ "language" => "en-GB" ]
  • afterLoad (456.11KB) (1.82ms)
  • afterInitialise (1.28MB) (41.12ms)
  • afterRoute (826.89KB) (8.31ms)
  • beforeRenderComponent com_content (40.48KB) (374μs)
  • Before Access::preloadComponents (all components) (60.19KB) (5.04ms)
  • After Access::preloadComponents (all components) (97.34KB) (2.7ms)
  • Before Access::preloadPermissions (com_content) (1.6KB) (26μs)
  • After Access::preloadPermissions (com_content) (3.29MB) (15.13ms)
  • Before Access::getAssetRules (id:919 name:com_content.article.488) (130.65KB) (420μs)
  • After Access::getAssetRules (id:919 name:com_content.article.488) (7.38KB) (75μs)
  • afterRenderComponent com_content (1.05MB) (37.59ms)
  • Before Access::getAssetRules (id:8 name:com_content) (18.48KB) (2.57ms)
  • After Access::getAssetRules (id:8 name:com_content) (6.17KB) (34μs)
  • afterDispatch (14.3KB) (831μs)
  • afterRender (255.17KB) (7.44ms)
  • 1 x afterInitialise (1.28MB) (33.13%)
    41.12ms
    1 x afterRenderComponent com_content (1.05MB) (30.29%)
    37.59ms
    1 x After Access::preloadPermissions (com_content) (3.29MB) (12.19%)
    15.13ms
    1 x afterRoute (826.89KB) (6.7%)
    8.31ms
    1 x afterRender (255.17KB) (5.99%)
    7.44ms
    1 x Before Access::preloadComponents (all components) (60.19KB) (4.06%)
    5.04ms
    1 x After Access::preloadComponents (all components) (97.34KB) (2.18%)
    2.70ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (18.48KB) (2.07%)
    2.57ms
    1 x afterLoad (456.11KB) (1.47%)
    1.82ms
    1 x afterDispatch (14.3KB) (0.67%)
    831μs
    1 x Before Access::getAssetRules (id:919 name:com_content.article.488) (130.65KB) (0.34%)
    420μs
    1 x beforeRenderComponent com_content (40.48KB) (0.3%)
    374μs
    1 x After Access::getAssetRules (id:919 name:com_content.article.488) (7.38KB) (0.06%)
    75μs
    1 x After Access::getAssetRules (id:8 name:com_content) (6.17KB) (0.03%)
    34μs
    1 x Before Access::preloadPermissions (com_content) (1.6KB) (0.02%)
    26μs
29 statements were executed, 3 of which were duplicates, 26 unique41.27ms659.48KB
  • SELECT @@SESSION.sql_mode;60μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `has_session` WHERE `session_id` = ?131μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `has_session` WHERE `session_id` = :session_id LIMIT 183μs1.31KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • UPDATE `has_session` SET `guest` = :guest , `time` = :time , `userid` = :user_id , `username` = :username , `client_id` = :client_id WHERE `session_id` = :session_id8.39ms992BParams/libraries/src/Session/MetadataManager.php:316Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `has_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 11.98ms1.56KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `has_viewlevels`1.71ms656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `has_usergroups` AS `a` LEFT JOIN `has_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest2.93ms1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `has_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`591μs3.98KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT * FROM `has_languages` WHERE `published` = 1 ORDER BY `ordering` ASC202μs2.33KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `element`,`name`,`client_id`,`extension_id` FROM `has_extensions` WHERE `type` = 'language' AND `state` = 0 AND `enabled` = 1289μs1008B/libraries/src/Language/LanguageHelper.php:213Copy
  • SELECT * FROM has_rsform_config194μs1.06KB/administrator/components/com_rsform/helpers/config.php:52Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `has_menu` AS `m` LEFT JOIN `has_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`2.41ms165.8KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `has_template_styles` AS `s` LEFT JOIN `has_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1248μs848B/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `has_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40)1.96ms7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `has_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 05.09ms417.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `has_content`1.26ms1.77KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `has_content` SET `hits` = (`hits` + 1) WHERE `id` = '488'2.06ms1.3KB/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `has_content` AS `a` INNER JOIN `has_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `has_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `has_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `has_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `has_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0 AND `a`.`language` IN (:preparedArray1,:preparedArray2)) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray3,:preparedArray4)2.43ms22.19KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `has_categories` AS `s` INNER JOIN `has_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`1.01ms4KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `has_contentitem_tag_map` AS `m` INNER JOIN `has_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2) AND `language` IN (:preparedArray3,:preparedArray4)3.1ms4.13KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `has_categories` AS `s` INNER JOIN `has_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`513μs4KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM has_fields AS a LEFT JOIN `has_languages` AS l ON l.lang_code = a.language LEFT JOIN has_users AS uc ON uc.id=a.checked_out LEFT JOIN has_viewlevels AS ag ON ag.id = a.access LEFT JOIN has_users AS ua ON ua.id = a.created_user_id LEFT JOIN has_fields_groups AS g ON g.id = a.group_id LEFT JOIN `has_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform AND `a`.`language` IN (:preparedArray8,:preparedArray9) ORDER BY a.ordering ASC1.44ms4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `has_categories` AS `s` INNER JOIN `has_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`456μs4KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT custom_data FROM has_extensions WHERE element = 'yootheme' AND folder = 'system' LIMIT 1174μs536B/templates/yootheme/packages/platform-joomla/src/Storage.php:30Copy
  • SELECT `language`,`id` FROM `has_menu` WHERE `home` = '1' AND `published` = 1 AND `client_id` = 0402μs704B/libraries/src/Language/Multilanguage.php:123Copy
  • SELECT `c2`.`language`,CONCAT_WS(':', `c2`.`id`, `c2`.`alias`) AS `id`,CONCAT_WS(':', `ca`.`id`, `ca`.`alias`) AS `catid` FROM `has_content` AS `c` INNER JOIN `has_associations` AS `a` ON `a`.`id` = `c`.`id` AND `a`.`context` = :context INNER JOIN `has_associations` AS `a2` ON `a`.`key` = `a2`.`key` INNER JOIN `has_content` AS `c2` ON `a2`.`id` = `c2`.`id` INNER JOIN `has_categories` AS `ca` ON `c2`.`catid` = `ca`.`id` AND `ca`.`extension` = :extension2 WHERE `c`.`id` = :id AND c2.access IN (1,5) AND c2.language != 'en-GB' AND (c2.publish_up IS NULL OR c2.publish_up <= '2025-07-25 23:57:27') AND (c2.publish_down IS NULL OR c2.publish_down >= '2025-07-25 23:57:27') AND c2.state = 1383μs1.47KBParams/libraries/src/Language/Associations.php:145Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `has_scheduler_tasks` AS `a` WHERE `a`.`state` = 1168μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `has_session` WHERE `session_id` = ?138μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `has_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?1.47ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy