Skip to main content

D-vitamin kan med framgång mätas i håret

- och ge en trovärdigare bild över tid

D-vitamin kan med framgång mätas i håretAlla kroppens celler behöver D-vitamin. Men brist är vanligt, och listan över sjukdomar det kan medföra växer stadigt. Enligt en ny studie från Trinity College i Dublin kan D-vitamin nu mätas i håret, och detta kan avslöja stora svängningar under året som inte framgår av vanliga blodprov. Forskarna ser därför en stor potential i den nya mätningen, som också kan användas på historiska populationer som de gamla egyptierna eller forntidsdjur som mammutar.

I takt med den moderna livsstilen och varningar för solen har D-vitaminbrist blivit en epidemi. Man antar nämligen att en miljard människor lider brist på D-vitamin, och detta ökar risken för en lång rad akuta och kroniska sjukdomar som influensa, astma, depression, hjärt-kärlsjukdomar, inflammation, diabetes, cancer och benskörhet. Det föreligger dessutom en utbredd missuppfattning om att vi vid våra breddgrader kan bilda D-vitamin året runt, bara solen skiner. Därför bör hälsovårdsmyndigheterna lägga mycket mer fokus på det livsviktiga vitaminet.

Ett vanligt blodprov kan inte avslöja årets svängningar

Idag är det vanligast att ta blodprov för att mäta kroppens D-vitaminstatus. Men blodprov kan vara smärtsamma, kräver expertis, omfattande hygien och rätt utrustning. Dessutom kommer ett blodprov bara att avslöja kroppens status här och nu. Enligt forskare från Trinity College i Dublin är det mycket problematiskt, eftersom kroppens nivå av D-vitamin kan svänga dramatiskt med årstiderna.
Som bekant är solen den bästa källan till D-vitamin, eftersom maten bara bidrar med blygsamma mängder. Men på våra breddgrader kan vi bara bilda D-vitamin under sommarhalvåret, när solen står tillräckligt högt på himlen. Därefter lagras D-vitaminet i levern för senare användning. Men hur mycket D-vitamin vi bildar och hur länge leverns lager räcker skiljer sig väsentligt åt. Därför kan blodets nivå av D-vitamin lätt vara optimalt under sommaren och hösten, och sedan falla katastrofalt under vintermånaderna och fram till maj, när solen åter står tillräckligt högt. Det innebär samtidigt att ett enda blodprov, som kanske har tagits på hösten eller på vintern, inte säger något om kroppens status på våren.
Det är heller inte någon slump att många människor får luftvägsinfektioner, ledsmärta och depression under vintermånaderna, och sedan mår bättre under sommarhalvåret. Många människor som lever sunt och dyrkar solen har därför en naturligt svängande D-vitaminnivå under hela året. Det finns emellertid även många som idag lider av kronisk D-vitaminbrist, eftersom de undviker solen vilket på sikt kan öka risken för allvarligare kroniska sjukdomar. Solskyddskräm, mörk hud, åldringsprocesser, fetma, diabetes och brist på magnesium kan dessutom göra det svårare att bilda eller utnyttja D-vitamin, och det ger automatiskt ett ökat behov.

Den framgångsrika studien

Den nya studien från Trinity College i Dublin har publicerats i den vetenskapliga tidskriften Nutrients, och det är den första i världen som har visat hur man kan mäta nivån av D-vitamin i håret. Enligt forskarna är detta ett viktigt och framgångsrikt steg för att mäta kroppens nivå av D-vitamin över tid.
Som nämnts ger traditionella blodprov bara en ögonblicksbild. Däremot kan håret, som växer ungefär en centimeter i månaden, avslöja kroppens nivå av D-vitamin under hela året eller över flera år, om håret är tillräckligt långt. På detta sätt kan en mätning av håret visa på säsongsmässiga och andra skillnader under hela livet.
Enligt Lina Zgaga, professor i epidemiologi vid Trinity College i Dublin, är detta ett helt nytt sätt att mäta kroppens nivå av D-vitamin över tid. Enligt Zgaga deponeras vitaminet konstant i håret medan det växer. Sålunda deponeras det mer D-vitamin när koncentrationen i blodet är hög, och mindre när koncentrationen i blodet är låg.
Det behövs dock mer forskning i förhållandet mellan blodets och hårets nivå av D-vitamin över tid. Det är också nödvändigt att undersöka faktorer som kan påverka hårets nivå av D-vitamin, däribland individuell hårtjocklek, hårfärgning och andra hårprodukter.

Nya spännande historiska mätningar

Enligt forskarna från Trinity College i Dublin kan de nya teknikerna och mätningarna av D-vitamin också användas för prover från arkeologiska fynd. Hår är liksom tänder ett av de biologiska material som bibehålls bäst efter döden, och som något helt nytt kommer det nu vara möjligt att mäta nivån av D-vitamin över tid bland historiska populationer som vikingarna, egyptierna, kelterna, romarna samt kineserna från de gamla kungarikena.
Det är också möjligt att mäta nivån av D-vitamin bland kor, grisar och andra lantbruksdjur samt mammutar och andra forntidsdjur, som man till exempel har hittat välbevarade i permafrosten.

Framtidsperspektiv i förebyggande och behandling

Närvaron av D-vitamin i håret kan enligt forskarna tolkas som en personlig spegling av D-vitamin under perioder av livet. På så sätt öppnar de nya håranalyserna helt ny åtkomst till epidemiologiska studier, som kan avslöja sambandet mellan kroppens nivå av D-vitamin och en lång rad akuta och kroniska sjukdomar hos individer och större befolkningspopulationer.
I framtiden kan de nya håranalyserna därför bidra till en bättre förståelse av sjukdomsutveckling till följd av D-vitaminbrist, samt bättre förebyggande och bättre behandling med D-vitamin i form av mer sommarsol och nödvändiga tillskott. För vi behöver tillräckligt med D-vitamin året runt och under hela livet.

Mätning av D-vitamin i blodet

Man mäter D-vitaminnivåerna i blodet som 25-hydroxy-vitamin D. De officiella gränsvärdena ligger på 50 ng/ml, men många ledande forskare anser att det är otillräckligt, och att de måste upp till hela 75–100 ng/ml för att få optimalt sjukdomsförebyggande.
Eftersom nivån av D-vitamin kan svänga kraftigt under året, och i regel är lägst på våren, behövs fler mätningar för att få en trovärdig bild.

Referenser

Lina Zgaga et al. 25-Hydroxyvitamin D Measurement in Human Hair; Results from a Proof-of-Concept study. Nutrients 2019

Qi Dai el al. Abstract CT093: Bimodal relationship between magnesium supplementation and vitamin D status and metabolism: Results from randomized trial. Cancer Research July 2018

Anne Marie Uwitonze, Mohammed S Razzaque. Role of magnesium in Vitamin D Activation and Function. The Journal of the American Osteopathic Association. 2018

  • Skapad
8.687MBMemory Usage498msRequest Duration
Joomla! Version4.4.4
PHP Version8.3.6
Identityguest
Response200
Templateyootheme
Database
Server
mysql
Version
8.0.40-0ubuntu0.24.04.1
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_0900_ai_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:46 [ "REDIRECT_HTTP_AUTHORIZATION" => "" "REDIRECT_HTTPS" => "on" "REDIRECT_SSL_TLS_SNI"...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1744519423 "last" => 1744519423...
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" => "sv-SE" ]
  • afterLoad (456.44KB) (7.42ms)
  • afterInitialise (1.27MB) (46.96ms)
  • afterRoute (906.15KB) (23.48ms)
  • beforeRenderComponent com_content (23.47KB) (343μs)
  • Before Access::preloadComponents (all components) (33.44KB) (7.94ms)
  • After Access::preloadComponents (all components) (97.34KB) (6.15ms)
  • Before Access::preloadPermissions (com_content) (1.6KB) (21μs)
  • After Access::preloadPermissions (com_content) (3.23MB) (27.97ms)
  • Before Access::getAssetRules (id:4425 name:com_content.article.2185) (130.65KB) (170μs)
  • After Access::getAssetRules (id:4425 name:com_content.article.2185) (7.38KB) (69μs)
  • beforeRenderRawModule mod_custom (GO GOOGLE) (1.41MB) (77.99ms)
  • afterRenderRawModule mod_custom (GO GOOGLE) (4.63KB) (275μs)
  • beforeRenderModule mod_custom (GO GOOGLE) (720B) (5μs)
  • afterRenderModule mod_custom (GO GOOGLE) (4.18KB) (93μs)
  • afterRenderComponent com_content (49.42KB) (23.7ms)
  • Before Access::getAssetRules (id:8 name:com_content) (49.95KB) (11.97ms)
  • After Access::getAssetRules (id:8 name:com_content) (6.17KB) (33μs)
  • afterDispatch (17.73KB) (2.76ms)
  • beforeRenderRawModule mod_articles_category (LÄS MER...) (32.21KB) (509μs)
  • afterRenderRawModule mod_articles_category (LÄS MER...) (70.01KB) (164ms)
  • beforeRenderRawModule mod_custom (Stärk immunförsvaret) (6.45KB) (35μs)
  • afterRenderRawModule mod_custom (Stärk immunförsvaret) (912B) (50μs)
  • beforeRenderRawModule mod_custom (Kontrollera Q10-produkten innan du köper den:) (752B) (12μs)
  • afterRenderRawModule mod_custom (Kontrollera Q10-produkten innan du köper den:) (944B) (22μs)
  • beforeRenderModule mod_articles_category (LÄS MER...) (272.94KB) (11.82ms)
  • afterRenderModule mod_articles_category (LÄS MER...) (1.25KB) (75μs)
  • beforeRenderModule mod_custom (Stärk immunförsvaret) (6.83KB) (14μs)
  • afterRenderModule mod_custom (Stärk immunförsvaret) (1.27KB) (26μs)
  • beforeRenderModule mod_custom (Kontrollera Q10-produkten innan du köper den:) (368B) (11μs)
  • afterRenderModule mod_custom (Kontrollera Q10-produkten innan du köper den:) (1.3KB) (22μs)
  • beforeRenderRawModule mod_menu (Main Menu_Svensk) (13.77KB) (6.43ms)
  • afterRenderRawModule mod_menu (Main Menu_Svensk) (134.69KB) (6.58ms)
  • beforeRenderModule mod_menu (Main Menu_Svensk) (720B) (7μs)
  • afterRenderModule mod_menu (Main Menu_Svensk) (5.61KB) (75μs)
  • beforeRenderRawModule mod_languages (Sprogskift) (3.14KB) (21μs)
  • afterRenderRawModule mod_languages (Sprogskift) (24.62KB) (11.55ms)
  • beforeRenderModule mod_languages (Sprogskift) (720B) (9μs)
  • afterRenderModule mod_languages (Sprogskift) (5.31KB) (26μs)
  • beforeRenderRawModule mod_finder () (6.34KB) (15μs)
  • afterRenderRawModule mod_finder () (65.84KB) (21.09ms)
  • beforeRenderModule mod_finder () (704B) (6μs)
  • afterRenderModule mod_finder () (3.29KB) (1.07ms)
  • beforeRenderRawModule mod_custom () (6.62KB) (215μs)
  • afterRenderRawModule mod_custom () (21.92KB) (7.01ms)
  • beforeRenderModule mod_custom () (704B) (8μs)
  • afterRenderModule mod_custom () (1.23KB) (69μs)
  • beforeRenderRawModule mod_menu (Main Menu_Svensk) (4.77KB) (1.22ms)
  • afterRenderRawModule mod_menu (Main Menu_Svensk) (5.77KB) (670μs)
  • beforeRenderModule mod_menu (Main Menu_Svensk) (720B) (4μs)
  • afterRenderModule mod_menu (Main Menu_Svensk) (1.25KB) (64μs)
  • beforeRenderRawModule mod_languages (Sprogskift Mobil) (608B) (18μs)
  • afterRenderRawModule mod_languages (Sprogskift Mobil) (3.89KB) (1.39ms)
  • beforeRenderModule mod_languages (Sprogskift Mobil) (720B) (5μs)
  • afterRenderModule mod_languages (Sprogskift Mobil) (1.27KB) (45μs)
  • beforeRenderRawModule mod_finder () (2.3KB) (13μs)
  • afterRenderRawModule mod_finder () (6.29KB) (6.15ms)
  • beforeRenderModule mod_finder () (704B) (6μs)
  • afterRenderModule mod_finder () (1.23KB) (65μs)
  • beforeRenderRawModule mod_custom () (8.66KB) (213μs)
  • afterRenderRawModule mod_custom () (944B) (165μs)
  • beforeRenderModule mod_custom () (704B) (3μs)
  • afterRenderModule mod_custom () (2.43KB) (57μs)
  • beforeRenderRawModule mod_custom () (688B) (6.16ms)
  • afterRenderRawModule mod_custom () (896B) (157μs)
  • beforeRenderModule mod_custom () (704B) (3μs)
  • afterRenderModule mod_custom () (5.21KB) (36μs)
  • afterRender (193.92KB) (12.09ms)
  • 1 x afterRenderRawModule mod_articles_category (LÄS MER...) (70.01KB) (32.97%)
    164.07ms
    1 x beforeRenderRawModule mod_custom (GO GOOGLE) (1.41MB) (15.67%)
    77.99ms
    1 x afterInitialise (1.27MB) (9.44%)
    46.96ms
    1 x After Access::preloadPermissions (com_content) (3.23MB) (5.62%)
    27.97ms
    1 x afterRenderComponent com_content (49.42KB) (4.76%)
    23.70ms
    1 x afterRoute (906.15KB) (4.72%)
    23.48ms
    1 x afterRenderRawModule mod_finder () (65.84KB) (4.24%)
    21.09ms
    1 x afterRender (193.92KB) (2.43%)
    12.09ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (49.95KB) (2.4%)
    11.97ms
    1 x beforeRenderModule mod_articles_category (LÄS MER...) (272.94KB) (2.37%)
    11.82ms
    1 x afterRenderRawModule mod_languages (Sprogskift) (24.62KB) (2.32%)
    11.55ms
    1 x Before Access::preloadComponents (all components) (33.44KB) (1.6%)
    7.94ms
    1 x afterLoad (456.44KB) (1.49%)
    7.42ms
    1 x afterRenderRawModule mod_custom () (21.92KB) (1.41%)
    7.01ms
    1 x afterRenderRawModule mod_menu (Main Menu_Svensk) (134.69KB) (1.32%)
    6.58ms
    1 x beforeRenderRawModule mod_menu (Main Menu_Svensk) (13.77KB) (1.29%)
    6.43ms
    1 x beforeRenderRawModule mod_custom () (688B) (1.24%)
    6.16ms
    1 x afterRenderRawModule mod_finder () (6.29KB) (1.24%)
    6.15ms
    1 x After Access::preloadComponents (all components) (97.34KB) (1.24%)
    6.15ms
    1 x afterDispatch (17.73KB) (0.55%)
    2.76ms
    1 x afterRenderRawModule mod_languages (Sprogskift Mobil) (3.89KB) (0.28%)
    1.39ms
    1 x beforeRenderRawModule mod_menu (Main Menu_Svensk) (4.77KB) (0.25%)
    1.22ms
    1 x afterRenderModule mod_finder () (3.29KB) (0.21%)
    1.07ms
    1 x afterRenderRawModule mod_menu (Main Menu_Svensk) (5.77KB) (0.13%)
    670μs
    1 x beforeRenderRawModule mod_articles_category (LÄS MER...) (32.21KB) (0.1%)
    509μs
    1 x beforeRenderComponent com_content (23.47KB) (0.07%)
    343μs
    1 x afterRenderRawModule mod_custom (GO GOOGLE) (4.63KB) (0.06%)
    275μs
    1 x beforeRenderRawModule mod_custom () (6.62KB) (0.04%)
    215μs
    1 x beforeRenderRawModule mod_custom () (8.66KB) (0.04%)
    213μs
    1 x Before Access::getAssetRules (id:4425 name:com_content.article.2185) (130.65KB) (0.03%)
    170μs
    1 x afterRenderRawModule mod_custom () (944B) (0.03%)
    165μs
    1 x afterRenderRawModule mod_custom () (896B) (0.03%)
    157μs
    1 x afterRenderModule mod_custom (GO GOOGLE) (4.18KB) (0.02%)
    93μs
    1 x afterRenderModule mod_articles_category (LÄS MER...) (1.25KB) (0.02%)
    75μs
    1 x afterRenderModule mod_menu (Main Menu_Svensk) (5.61KB) (0.02%)
    75μs
    1 x After Access::getAssetRules (id:4425 name:com_content.article.2185) (7.38KB) (0.01%)
    69μs
    1 x afterRenderModule mod_custom () (1.23KB) (0.01%)
    69μs
    1 x afterRenderModule mod_finder () (1.23KB) (0.01%)
    65μs
    1 x afterRenderModule mod_menu (Main Menu_Svensk) (1.25KB) (0.01%)
    64μs
    1 x afterRenderModule mod_custom () (2.43KB) (0.01%)
    57μs
    1 x afterRenderRawModule mod_custom (Stärk immunförsvaret) (912B) (0.01%)
    50μs
    1 x afterRenderModule mod_languages (Sprogskift Mobil) (1.27KB) (0.01%)
    45μs
    1 x afterRenderModule mod_custom () (5.21KB) (0.01%)
    36μs
    1 x beforeRenderRawModule mod_custom (Stärk immunförsvaret) (6.45KB) (0.01%)
    35μs
    1 x After Access::getAssetRules (id:8 name:com_content) (6.17KB) (0.01%)
    33μs
    1 x afterRenderModule mod_custom (Stärk immunförsvaret) (1.27KB) (0.01%)
    26μs
    1 x afterRenderModule mod_languages (Sprogskift) (5.31KB) (0.01%)
    26μs
    1 x afterRenderRawModule mod_custom (Kontrollera Q10-produkten innan du köper den:) (944B) (0%)
    22μs
    1 x afterRenderModule mod_custom (Kontrollera Q10-produkten innan du köper den:) (1.3KB) (0%)
    22μs
    1 x Before Access::preloadPermissions (com_content) (1.6KB) (0%)
    21μs
    1 x beforeRenderRawModule mod_languages (Sprogskift) (3.14KB) (0%)
    21μs
    1 x beforeRenderRawModule mod_languages (Sprogskift Mobil) (608B) (0%)
    18μs
    1 x beforeRenderRawModule mod_finder () (6.34KB) (0%)
    15μs
    1 x beforeRenderModule mod_custom (Stärk immunförsvaret) (6.83KB) (0%)
    14μs
    3 x beforeRenderModule mod_custom () (704B) (0%)
    14μs
    1 x beforeRenderRawModule mod_finder () (2.3KB) (0%)
    13μs
    1 x beforeRenderRawModule mod_custom (Kontrollera Q10-produkten innan du köper den:) (752B) (0%)
    12μs
    2 x beforeRenderModule mod_finder () (704B) (0%)
    12μs
    1 x beforeRenderModule mod_custom (Kontrollera Q10-produkten innan du köper den:) (368B) (0%)
    11μs
    2 x beforeRenderModule mod_menu (Main Menu_Svensk) (720B) (0%)
    11μs
    1 x beforeRenderModule mod_languages (Sprogskift) (720B) (0%)
    9μs
    1 x beforeRenderModule mod_custom (GO GOOGLE) (720B) (0%)
    5μs
    1 x beforeRenderModule mod_languages (Sprogskift Mobil) (720B) (0%)
    5μs
43 statements were executed, 9 of which were duplicates, 34 unique248ms1.11MB
  • SELECT @@SESSION.sql_mode;106μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `has_session` WHERE `session_id` = ?551μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `has_session` WHERE `session_id` = :session_id LIMIT 1450μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `has_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)4.89ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `has_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 11.4ms1.61KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `has_viewlevels`86μs656B/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.11ms1.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`553μs3.98KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT * FROM `has_languages` WHERE `published` = 1 ORDER BY `ordering` ASC284μ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` = 1149μs1008B/libraries/src/Language/LanguageHelper.php:213Copy
  • SELECT * FROM has_rsform_config1.26ms1.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.99ms165.8KBParams/libraries/src/Menu/SiteMenu.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 (:preparedArray1,:preparedArray2)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`519μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • 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` = 1221μ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)5.14ms7.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` = 014.03ms397.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `has_content`2.14ms3.02KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `has_content` SET `hits` = (`hits` + 1) WHERE `id` = '2185'3.66ms48B/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)1.53ms22.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`981μs3.98KBParams/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)1.75ms4.09KBParams/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`3.12ms3.98KBParams/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 ASC932μs4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `alias` FROM `has_content` WHERE `id` = :id196μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `has_content` WHERE `id` = :id90μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `has_modules` AS `m` LEFT JOIN `has_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `has_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) AND `m`.`language` IN (:preparedArray3,:preparedArray4) ORDER BY `m`.`position`,`m`.`ordering`4.85ms212.84KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`catid`,`a`.`language`, CASE WHEN CHAR_LENGTH(`a`.`alias`) != 0 THEN CONCAT_WS(':', `a`.`id`, `a`.`alias`) ELSE a.id END AS `slug`, CASE WHEN CHAR_LENGTH(`cc`.`alias`) != 0 THEN CONCAT_WS(':', `cc`.`id`, `cc`.`alias`) ELSE cc.id END AS `catslug` FROM `has_content` AS `a` LEFT JOIN `has_categories` AS `cc` ON `cc`.`id` = `a`.`catid` WHERE `a`.`catid` = :catid AND `a`.`state` = :state AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND (`publish_up` IS NULL OR `publish_up` <= :nowDate1) AND (`publish_down` IS NULL OR `publish_down` >= :nowDate2) AND `a`.`language` IN (:preparedArray3,:preparedArray4) ORDER BY CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END DESC12.36ms109.75KBParams/plugins/content/pagenavigation/src/Extension/PageNavigation.php:188Copy
  • 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`2.05ms3.98KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT custom_data FROM has_extensions WHERE element = 'yootheme' AND folder = 'system' LIMIT 1464μ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` = 01.36ms704B/libraries/src/Language/Multilanguage.php:123Copy
  • SELECT `alias` FROM `has_content` WHERE `id` = :id177μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `has_content` WHERE `id` = :id3.67ms1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • 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 != 'sv-SE' AND (c2.publish_up IS NULL OR c2.publish_up <= '2025-04-13 04:43:43') AND (c2.publish_down IS NULL OR c2.publish_down >= '2025-04-13 04:43:43') AND c2.state = 1716μs3.97KBParams/libraries/src/Language/Associations.php:145Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END AS `publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`metadata`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`featured`,`a`.`language`,LENGTH(`a`.`fulltext`) AS `readmore`,`a`.`ordering`,`fp`.`featured_up`,`fp`.`featured_down`,CASE WHEN `c`.`published` = 2 AND `a`.`state` > 0 THEN 2 WHEN `c`.`published` != 1 THEN 0 ELSE `a`.`state` END AS `state`,`c`.`title` AS `category_title`,`c`.`path` AS `category_route`,`c`.`access` AS `category_access`,`c`.`alias` AS `category_alias`,`c`.`language` AS `category_language`,`c`.`published`,`c`.`published` AS `parents_published`,`c`.`lft`,CASE WHEN `a`.`created_by_alias` > ' ' THEN `a`.`created_by_alias` ELSE `ua`.`name` END AS `author`,`ua`.`email` AS `author_email`,`uam`.`name` AS `modified_by_name`,`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`,COALESCE(NULLIF(ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1), 0), 0) AS `rating`,COALESCE(NULLIF(`v`.`rating_count`, 0), 0) AS `rating_count` FROM `has_content` AS `a` LEFT JOIN `has_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `has_users` AS `ua` ON `ua`.`id` = `a`.`created_by` LEFT JOIN `has_users` AS `uam` ON `uam`.`id` = `a`.`modified_by` LEFT JOIN `has_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `has_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `has_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE `a`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`access` IN (:preparedArray3,:preparedArray4) AND `c`.`published` = 1 AND `a`.`state` = :condition AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`language` IN (:preparedArray5,:preparedArray6) ORDER BY RAND() ASC LIMIT 10152ms151.16KBParams/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`2.09ms3.98KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c2`.`language`,`c2`.`id` FROM `has_menu` 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_menu` AS `c2` ON `a2`.`id` = `c2`.`id` WHERE `c`.`id` = :id1.19ms1.38KBParams/libraries/src/Language/Associations.php:145Copy
  • SELECT `name`,`element` FROM `has_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 12.54ms640B/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `has_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)4.97ms584B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • 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 WHERE ( (`a`.`context` = :context AND `a`.`access` IN (:preparedArray1,:preparedArray2)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray3,:preparedArray4)) 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 (:preparedArray5,:preparedArray6) ORDER BY a.ordering ASC2.6ms4.75KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `title` FROM `has_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)232μs584B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • 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` = 1161μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `has_session` WHERE `session_id` = ?3.98ms1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `has_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?3.64ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy