[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGCoqIKGe5fhrqgz7FWI0lzKMsYuv3pD3SHGdoh_63Xc":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":9,"tested_up_to":15,"requires_at_least":16,"requires_php":9,"tags":17,"homepage":23,"download_link":24,"security_score":13,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":34,"analysis":139,"fingerprints":245},"sm-sql-logs","SM – SQL logs","1.1.1","Mi7oSz","https:\u002F\u002Fprofiles.wordpress.org\u002Fmi7osz\u002F","","Record and view all SQL queries that your WordPress is requesting. Browse formated and highlighted syntax queries for debug and speedup your site.",10,2447,100,1,"4.8.28","3.5",[18,19,20,21,22],"logs","mysql","query","report","sql","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsm_sql_logs\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsm-sql-logs.1.1.1.zip",0,null,"2026-03-15T10:48:56.248Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":11,"avg_security_score":13,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},"mi7osz",30,94,"2026-04-04T05:04:39.933Z",[35,57,76,93,116],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":45,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":9,"tags":50,"homepage":53,"download_link":54,"security_score":55,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":56},"sql-executioner","SQL Executioner","1.4","Justin Watt","https:\u002F\u002Fprofiles.wordpress.org\u002Fjustincwatt\u002F","\u003Cp>Instead of needing a tool like \u003Ca href=\"http:\u002F\u002Fwww.phpmyadmin.net\u002Fhome_page\u002Findex.php\" rel=\"nofollow ugc\">phpMyAdmin\u003C\u002Fa>\u003Cbr \u002F>\nor the mysql command line client to view and modify your WordPress database,\u003Cbr \u002F>\nthe SQL Executioner allows you to run arbitrary SQL queries against your\u003Cbr \u002F>\nWordPress database from within the Admin. In many cases this allows you to bypass\u003Cbr \u002F>\nthe inherent limitations of the WordPress Admin interface, and use the full expressive\u003Cbr \u002F>\npower of SQL to analyze and update your blog’s database.\u003C\u002Fp>\n\u003Cp>To use simply install and visit the Tools > SQL Executioner page.\u003C\u002Fp>\n\u003Cp>If you’re interested in contributing to the code behind this plugin, it’s also hosted on GitHub:\u003Cbr \u002F>\nhttps:\u002F\u002Fgithub.com\u002Fjustincwatt\u002Fwp-sql-executioner\u003C\u002Fp>\n","Execute arbitrary SQL queries against your WordPress database from the Admin.",2000,52946,92,11,"2016-09-28T07:27:00.000Z","4.6.30","3.0",[51,19,52,20,22],"dba","phpmyadmin","http:\u002F\u002Fjustinsomnia.org\u002F2008\u002F02\u002Fthe-wordpress-sql-executioner\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsql-executioner.zip",85,"2026-03-15T15:16:48.613Z",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":31,"downloaded":65,"rating":13,"num_ratings":66,"last_updated":67,"tested_up_to":68,"requires_at_least":69,"requires_php":9,"tags":70,"homepage":9,"download_link":75,"security_score":55,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":56},"dbtable-to-datatable","DbTable to DataTable","0.1","rikemsen","https:\u002F\u002Fprofiles.wordpress.org\u002Frikemsen\u002F","\u003Cp>This plugin allows you to display the content of MySql tables into sortable html tables thanks to the DataTable jQuery Plugin.\u003C\u002Fp>\n\u003Cp>You don’t need any configuration and once installed, it is ready to use.\u003C\u002Fp>\n\u003Cp>Simply add the shortcode \u003Ccode>[dbtable]\u003C\u002Fcode> into an article or a page and you will have a nice and clean table.\u003C\u002Fp>\n\u003Ch3>Examples:\u003C\u002Fh3>\n\u003Cp>All parameters that contain more than one value have to be separated by commas without spaces.\u003C\u002Fp>\n\u003Cp>Minimum needed : \u003Ccode>[dbtable from=MysqlTableName]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>select=field1,field2,field3\u003C\u002Fcode> will display all rows of the table and only specified fields\u003C\u002Fli>\n\u003Cli>\u003Ccode>except=field1,field2,field3\u003C\u002Fcode> will display all rows of the table except specified fields\u003C\u002Fli>\n\u003Cli>\u003Ccode>cssClass=class1,class2\u003C\u002Fcode> will add class1 and class2 to the class attribut of the table\u003C\u002Fli>\n\u003Cli>\u003Ccode>comments=true|(false)\u003C\u002Fcode> true will use comments specified in each field of the MySql table as datatable column names. If true and if a comment is missing, the plugin fallback on field name only for the one missing, not for the entire table.\u003C\u002Fli>\n\u003Cli>\u003Ccode>pagination=true|(false)\u003C\u002Fcode> will show\u002Fhide the bottom pagination links. If false, make sure you have the limit parameter large enough to display all your datas\u003C\u002Fli>\n\u003Cli>\u003Ccode>limit=25\u003C\u002Fcode> Display 25 rows by default.\u003C\u002Fli>\n\u003C\u002Ful>\n","Display mysql datas into datatable.",3929,4,"2016-02-12T08:35:00.000Z","4.4.34","4.4",[71,72,19,73,74],"datatable","jquery","sortable","table","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdbtable-to-datatable.zip",{"slug":77,"name":78,"version":79,"author":80,"author_profile":81,"description":82,"short_description":83,"active_installs":11,"downloaded":84,"rating":25,"num_ratings":25,"last_updated":85,"tested_up_to":86,"requires_at_least":87,"requires_php":88,"tags":89,"homepage":9,"download_link":92,"security_score":55,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":56},"sqlog","SQLog","1.0.0","xuxu.fr","https:\u002F\u002Fprofiles.wordpress.org\u002Fxuxufr\u002F","\u003Cp>Log WordPress MySQL queries in csv file (and log file). Useful when you need to improve the performance or debug something.\u003C\u002Fp>\n\u003Cp>You can contact me :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>My blog: https:\u002F\u002Fxuxu.fr\u002Fcontact\u003C\u002Fli>\n\u003Cli>My website : https:\u002F\u002Fwww.xuan-nguyen.fr\u003C\u002Fli>\n\u003Cli>My Twitter account:  https:\u002F\u002Ftwitter.com\u002Fxuxu\u003C\u002Fli>\n\u003C\u002Ful>\n","Log WordPress MySQL queries in csv file (and log file). Useful when you need to improve the performance or debug something.",788,"2022-06-16T20:31:00.000Z","6.0.11","4.8","5.6",[19,90,20,22,91],"queries","wordpress","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsqlog.1.0.0.zip",{"slug":94,"name":95,"version":96,"author":97,"author_profile":98,"description":99,"short_description":100,"active_installs":101,"downloaded":102,"rating":103,"num_ratings":104,"last_updated":105,"tested_up_to":86,"requires_at_least":106,"requires_php":107,"tags":108,"homepage":112,"download_link":113,"security_score":114,"vuln_count":66,"unpatched_count":25,"last_vuln_date":115,"fetched_at":56},"wp-db-backup","Database Backup for WordPress","2.5.2","WP Engine","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpengine\u002F","\u003Cp>Backup your database instantly, send the backup via email, or schedule backups to run automatically.\u003C\u002Fp>\n\u003Cp>Database Backup for WordPress allows you to quickly back up your core WordPress database tables, and either download the backup as a gzipped file, or send it via email to an address you choose.\u003C\u002Fp>\n\u003Cp>By default, the plugin will always back up all the core WordPress database tables. However, you may also selectively back up any custom tables that might be created by other plugins\u003C\u002Fp>\n\u003Cp>Additional options include the ability to exclude spam comments from the comments table, or post revisions from the posts table, saving you space and bandwidth.\u003C\u002Fp>\n\u003Cp>You can also enable scheduled backups to run automatically at set intervals, and configure the email address to send the scheduled backups to.\u003C\u002Fp>\n\u003Ch4>Backup Before You Mess Up\u003C\u002Fh4>\n\u003Cp>Backups are the one thing you don’t think of until you need them. You might have the best web host, the most secure server, and a tried and tested process for running plugin, theme, or core updates. But all it takes is one little thing to go wrong, and you lose your entire website.\u003C\u002Fp>\n\u003Cp>You need a reliable and automated solution which backs up your WordPress data and sends it to an off-site location. Database Backup for WordPress is that solution.\u003C\u002Fp>\n\u003Ch4>Why You Should Back Up Your Website\u003C\u002Fh4>\n\u003Cp>As much planning as you do, any CMS like WordPress that stores its data in a database is vulnerable. Hardware, software, and security hiccups are rare, but they do happen. Even the best enterprise systems in the world have multiple levels of backup in place.\u003C\u002Fp>\n\u003Cp>Think about the data you store in your WordPress site. Your blog posts since the day you launched the site. Your customers, products, and order history if you run an ecommerce site. Backups are like implementing an insurance policy for your data. With backups, you have a reliable way of restoring that data if anything goes wrong.\u003C\u002Fp>\n\u003Cp>Simple, automated backups save you time and give you peace of mind that you are prepared for the worst case scenario, even if you never need it. Better to have it and not need it, than to not have it and suddenly need it.\u003C\u002Fp>\n\u003Ch4>Scheduled Backups\u003C\u002Fh4>\n\u003Cp>Depending on your needs, you might want to back up your database every few minutes, hourly, daily, weekly, or monthly. You’ll want to automate this process, or it becomes another possible point of failure.\u003C\u002Fp>\n\u003Cp>Scheduled backups give you peace of mind that your data is being backed up as much or as little as you need, without your intervention. By emailing the backups to an email address you choose, you can verify that the backup has run, and store it in a safe location.\u003C\u002Fp>\n\u003Ch3>Translators\u003C\u002Fh3>\n\u003Cp>Thanks to the following people for providing translation files for Database Backup for WordPress:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Abel Cheung\u003C\u002Fli>\n\u003Cli>Alejandro Urrutia\u003C\u002Fli>\n\u003Cli>Alexander Kanakaris\u003C\u002Fli>\n\u003Cli>Angelo Andrea Iorio\u003C\u002Fli>\n\u003Cli>Calle\u003C\u002Fli>\n\u003Cli>Daniel Erb\u003C\u002Fli>\n\u003Cli>Daniel Villoldo\u003C\u002Fli>\n\u003Cli>Diego Pierotto\u003C\u002Fli>\n\u003Cli>Eilif Nordseth\u003C\u002Fli>\n\u003Cli>Eric Lassauge\u003C\u002Fli>\n\u003Cli>Friedlich\u003C\u002Fli>\n\u003Cli>Gilles Wittezaele\u003C\u002Fli>\n\u003Cli>Icemanpro\u003C\u002Fli>\n\u003Cli>İzzet Emre Erkan\u003C\u002Fli>\n\u003Cli>Jong-In Kim\u003C\u002Fli>\n\u003Cli>Kaveh\u003C\u002Fli>\n\u003Cli>Kessia Pinheiro\u003C\u002Fli>\n\u003Cli>Kuratkoo\u003C\u002Fli>\n\u003Cli>Majed Alotaibi\u003C\u002Fli>\n\u003Cli>Michał Gołuński\u003C\u002Fli>\n\u003Cli>Michele Spagnuolo\u003C\u002Fli>\n\u003Cli>Paopao\u003C\u002Fli>\n\u003Cli>Philippe Galliard\u003C\u002Fli>\n\u003Cli>Robert Buj\u003C\u002Fli>\n\u003Cli>Roger\u003C\u002Fli>\n\u003Cli>Rune Gulbrandsøy\u003C\u002Fli>\n\u003Cli>Serge Rauber\u003C\u002Fli>\n\u003Cli>Sergey Biryukov\u003C\u002Fli>\n\u003Cli>Tai\u003C\u002Fli>\n\u003Cli>Timm Severin\u003C\u002Fli>\n\u003Cli>Tzafrir Rehan\u003C\u002Fli>\n\u003Cli>吴曦\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Past Contributors\u003C\u002Fh3>\n\u003Cp>filosofo, skippy, Firas, LaughingLizard, MtDewVirus, Podz, Ringmaster\u003C\u002Fp>\n","Database Backup for WordPress is your one-stop database backup solution for WordPress.",70000,3731269,90,66,"2022-05-26T11:49:00.000Z","3.6.0","5.3",[109,110,111,19],"backup","database","database-backup","https:\u002F\u002Fgithub.com\u002Fdeliciousbrains\u002Fwp-db-backup","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-db-backup.2.5.2.zip",82,"2022-05-11 00:00:00",{"slug":117,"name":118,"version":119,"author":120,"author_profile":121,"description":122,"short_description":123,"active_installs":124,"downloaded":125,"rating":126,"num_ratings":126,"last_updated":127,"tested_up_to":128,"requires_at_least":129,"requires_php":88,"tags":130,"homepage":135,"download_link":136,"security_score":137,"vuln_count":14,"unpatched_count":25,"last_vuln_date":138,"fetched_at":56},"index-wp-mysql-for-speed","Index WP MySQL For Speed","1.5.6","OllieJones","https:\u002F\u002Fprofiles.wordpress.org\u002Folliejones\u002F","\u003Ch4>How do I use this plugin?\u003C\u002Fh4>\n\u003Cp>After you install and activate this plugin, visit the Index MySQL Tool under the Tools menu. From there you can press the \u003Cem>Add Keys Now\u003C\u002Fem> button. If you have large tables, use it with \u003Ca href=\"https:\u002F\u002Fwp-cli.org\u002F\" rel=\"nofollow ugc\">WP-CLI\u003C\u002Fa> instead to avoid timeouts. See the WP-CLI section to learn more.\u003C\u002Fp>\n\u003Ch4>What does it do for my site?\u003C\u002Fh4>\n\u003Cp>This plugin works to make your MySQL database work more efficiently by adding high-performance keys to the tables you choose. On request it monitors your site’s use of your MySQL database to detect which database operations are slowest. It is most useful for large sites: sites with many users, posts, pages, and \u002F or products.\u003C\u002Fp>\n\u003Cp>You can use it to restore WordPress’s default keys if need be.\u003C\u002Fp>\n\u003Ch4>What is this all about?\u003C\u002Fh4>\n\u003Cp>Where does WordPress store all that stuff that makes your site great? Where are your pages, posts, products, media, users, custom fields, metadata, and all your valuable content? All that data is in the \u003Ca href=\"https:\u002F\u002Fwww.mysql.com\u002F\" rel=\"nofollow ugc\">MySQL\u003C\u002Fa> relational database management system. (Many hosting providers and servers use the \u003Ca href=\"https:\u002F\u002Fmariadb.org\u002F\" rel=\"nofollow ugc\">MariaDB\u003C\u002Fa> fork of the MySQL software; it works exactly the same way as MySQL itself.)\u003C\u002Fp>\n\u003Cp>As your site grows, your MySQL tables grow. Giant tables can make your page loads slow down, frustrate your users, and even hurt your search-engine rankings. And, bulk imports can take absurd amounts of time. What can you do about this?\u003C\u002Fp>\n\u003Cp>You can install and use a database cleaner plugin to get rid of old unwanted data and reorganize your tables. That makes them smaller, and therefore faster. That is a good and necessary task. That is not the task of this plugin. You can, if your hosting provider supports it, install and use a \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Freference\u002Fclasses\u002Fwp_object_cache\u002F#persistent-cache-plugins\" rel=\"nofollow ugc\">Persistent Object Cache plugin\u003C\u002Fa> to reduce traffic to your database. That is not the task of this plugin either.\u003C\u002Fp>\n\u003Cp>This plugin adds database \u003Ca href=\"https:\u002F\u002Fdev.mysql.com\u002Fdoc\u002Frefman\u002F8.0\u002Fen\u002Fmysql-indexes.html\" rel=\"nofollow ugc\">keys\u003C\u002Fa> (also called indexes) to your MySQL tables to make it easier for WordPress to find the information it needs. All relational database management systems store your information in long-lived \u003Cem>tables\u003C\u002Fem>. For example, WordPress stores your posts and other content in a table called \u003Cem>wp_posts\u003C\u002Fem>, and custom post fields in another table called \u003Cem>wp_postmeta\u003C\u002Fem>.  A successful site can have thousands of posts and hundreds of thousands of custom post fields. MySQL has two jobs:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Keep all that data organized.\u003C\u002Fli>\n\u003Cli>Find the data it needs quickly.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>To do its second job, MySQL uses database keys. Each table has one or more keys. For example, \u003Ccode>wp_posts\u003C\u002Fcode> has a key to let it quickly find posts when you know the author. Without its \u003Cem>post_author\u003C\u002Fem> key MySQL would have to scan every one of your posts looking for matches to the author you want. Our users know what that looks like: slow. With the key, MySQL can jump right to the matching posts.\u003C\u002Fp>\n\u003Cp>In a new WordPress site with a couple of users and a dozen posts, the keys don’t matter very much. As the site grows the keys start to matter, a lot. Database management systems are designed to have their keys updated, adjusted, and tweaked as their tables grow. They’re designed to allow the keys to evolve without changing the content of the underlying tables. In organizations with large databases adding, dropping, or altering keys doesn’t change the underlying data. It is a routine maintenance task in many data centers. If changing keys caused databases to lose data, the MySQL and MariaDB developers would hear howling not just from you and me, but from many heavyweight users. (You should still back up your WordPress instance of course.)\u003C\u002Fp>\n\u003Cp>Better keys allow WordPress’s code to run faster \u003Cem>without any code changes\u003C\u002Fem>.  Experience with large sites shows that many MySQL slowdowns can be improved by better keys. Code is poetry, data is treasure, and database keys are grease that makes code and data work together smoothly.\u003C\u002Fp>\n\u003Ch4>Which tables does the plugin add keys to?\u003C\u002Fh4>\n\u003Cp>This plugin adds and updates keys in these WordPress and WooCommerce tables.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>wp_comments\u003C\u002Fli>\n\u003Cli>wp_commentmeta\u003C\u002Fli>\n\u003Cli>wp_posts\u003C\u002Fli>\n\u003Cli>wp_postmeta\u003C\u002Fli>\n\u003Cli>wp_termmeta\u003C\u002Fli>\n\u003Cli>wp_users\u003C\u002Fli>\n\u003Cli>wp_usermeta\u003C\u002Fli>\n\u003Cli>wp_options\u003C\u002Fli>\n\u003Cli>wp_wc_orders_meta\u003C\u002Fli>\n\u003Cli>wp_woocommerce_order_itemmeta\u003C\u002Fli>\n\u003Cli>wp_automatewoo_log_meta\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You only need run this plugin once to get its benefits.\u003C\u002Fp>\n\u003Ch4>How can I monitor my database’s operation?\u003C\u002Fh4>\n\u003Cp>On the Index MySQL page (from your Tools menu on your dashboard), you will find the “Monitor Database Operations” tab. Use it to request monitoring for a number of minutes you choose.\u003C\u002Fp>\n\u003Cp>You can monitor\u003C\u002Fp>\n\u003Cul>\n\u003Cli>either the site (your user-visible pages) or the dashboard, or both.\u003C\u002Fli>\n\u003Cli>all pageviews, or a random sample. (Random samples are useful on very busy sites to reduce monitoring overhead.)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Once you have gathered monitoring information, you can view the captured queries, and sort them by how long they take. Or you can save the monitor information to a file and show it to somebody who knows about database operations. Or you can upload the monitor to the plugin’s servers so the authors can look at it.\u003C\u002Fp>\n\u003Cp>It’s a good idea to monitor for a five-minute interval at a time of day when your site is busy. Once you’ve completed a monitor, you can examine it to determine which database operations are slowing you down the most.\u003C\u002Fp>\n\u003Cp>Please consider uploading your saved monitors to the plugin’s servers. It’s how we learn from your experience to keep improving. Push the Upload button on the monitor’s tab.\u003C\u002Fp>\n\u003Ch4>WP-CLI command line operation\u003C\u002Fh4>\n\u003Cp>This plugin supports \u003Ca href=\"https:\u002F\u002Fwp-cli.org\u002F\" rel=\"nofollow ugc\">WP-CLI\u003C\u002Fa>.  When your tables are large this is the best way to add the high-performance keys: it doesn’t time out.\u003C\u002Fp>\n\u003Cp>Give the command \u003Ccode>wp help index-mysql\u003C\u002Fcode> for details. A few examples:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp index-mysql status\u003C\u002Fcode> shows the current status of high-performance keys.\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp index-mysql enable --all\u003C\u002Fcode> adds the high-performance keys to all tables that don’t have them.\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp index-mysql enable wp_postmeta\u003C\u002Fcode> adds the high-performance keys to the postmeta table.\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp index-mysql disable --all\u003C\u002Fcode> removes the high-performance keys from all tables that have them, restoring WordPress’s default keys.\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp index-mysql enable --all --dryrun\u003C\u002Fcode> writes out the SQL statements necessary to add the high-performance keys to all tables, but does not run them.\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp index-mysql enable --all --dryrun | wp db query\u003C\u002Fcode> writes out the SQL statements and pipes them to wp db to run them.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Note: avoid saving the –dryrun output statements to run later. The plugin generates them to match the current state of your tables.\u003C\u002Fp>\n\u003Ch4>Why use this plugin?\u003C\u002Fh4>\n\u003Cp>Three reasons (maybe four):\u003C\u002Fp>\n\u003Col>\n\u003Cli>to save carbon footprint.\u003C\u002Fli>\n\u003Cli>to save carbon footprint.\u003C\u002Fli>\n\u003Cli>to save carbon footprint.\u003C\u002Fli>\n\u003Cli>to save people time.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Seriously, the microwatt hours of electricity saved by faster web site technologies add up fast, especially at WordPress’s global scale.\u003C\u002Fp>\n\u003Ch4>How can I learn more about making my WordPress site more efficient?\u003C\u002Fh4>\n\u003Cp>We offer several plugins to help with your site’s database efficiency. You can \u003Ca href=\"https:\u002F\u002Fwww.plumislandmedia.net\u002Fwordpress\u002Fperformance\u002Foptimizing-wordpress-database-servers\u002F\" rel=\"nofollow ugc\">read about them here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Michael Uno for Admin Page Framework.\u003C\u002Fli>\n\u003Cli>Marco Cesarato for LiteSQLParser.\u003C\u002Fli>\n\u003Cli>Allan Jardine for Datatables.net.\u003C\u002Fli>\n\u003Cli>Leho Kraav and Sebastian Sommer for suggesting the WooCommerce tables.\u003C\u002Fli>\n\u003Cli>Japreet Sethi for advice, and for testing on his large installation.\u003C\u002Fli>\n\u003Cli>Rick James for everything.\u003C\u002Fli>\n\u003Cli>Jetbrains for their IDE tools, especially PhpStorm. It’s hard to imagine trying to navigate an epic code base without their tools.\u003C\u002Fli>\n\u003C\u002Ful>\n","Speed up your WordPress site by adding high-performance keys (database indexes) to your MariaDB \u002F MySQL database tables.",50000,645309,96,"2026-01-26T20:00:00.000Z","6.9.4","4.2",[131,132,19,133,134],"index","key","performance","wp-cli","https:\u002F\u002Fplumislandmedia.org\u002Findex-wp-mysql-for-speed\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Findex-wp-mysql-for-speed.1.5.6.zip",99,"2024-06-22 00:00:00",{"attackSurface":140,"codeSignals":177,"taintFlows":230,"riskAssessment":231,"analyzedAt":244},{"hooks":141,"ajaxHandlers":173,"restRoutes":174,"shortcodes":175,"cronEvents":176,"entryPointCount":25,"unprotectedCount":25},[142,148,152,157,160,162,165,167,171],{"type":143,"name":144,"callback":145,"file":146,"line":147},"action","admin_menu","sm_sql_logs_setup_menu","admin\\class-sm_sql_logs-admin.php",67,{"type":143,"name":149,"callback":150,"file":146,"line":151},"admin_init","sm_sql_logs_options_init",72,{"type":143,"name":153,"callback":154,"file":155,"line":156},"plugins_loaded","anonymous","includes\\class-sm_sql_logs.php",162,{"type":143,"name":158,"callback":154,"file":155,"line":159},"admin_enqueue_scripts",177,{"type":143,"name":158,"callback":154,"file":155,"line":161},178,{"type":143,"name":163,"callback":154,"file":155,"line":164},"wp_enqueue_scripts",193,{"type":143,"name":163,"callback":154,"file":155,"line":166},194,{"type":168,"name":169,"callback":154,"file":155,"line":170},"filter","shutdown",196,{"type":168,"name":153,"callback":154,"file":155,"line":172},197,[],[],[],[],{"dangerousFunctions":178,"sqlUsage":179,"outputEscaping":190,"fileOperations":25,"externalRequests":25,"nonceChecks":25,"capabilityChecks":25,"bundledLibraries":229},[],{"prepared":66,"raw":180,"locations":181},3,[182,186,188],{"file":183,"line":184,"context":185},"admin\\partials\\log_details.php",28,"$wpdb->get_results() with variable interpolation",{"file":155,"line":187,"context":185},223,{"file":155,"line":189,"context":185},237,{"escaped":14,"rawEcho":191,"locations":192},17,[193,197,200,201,203,205,207,209,210,212,214,216,218,221,222,225,227],{"file":194,"line":195,"context":196},"admin\\partials\\header_html.php",23,"raw output",{"file":198,"line":199,"context":196},"admin\\partials\\logs.php",105,{"file":198,"line":199,"context":196},{"file":198,"line":202,"context":196},106,{"file":198,"line":204,"context":196},108,{"file":198,"line":206,"context":196},112,{"file":183,"line":208,"context":196},79,{"file":183,"line":208,"context":196},{"file":183,"line":211,"context":196},88,{"file":183,"line":213,"context":196},93,{"file":183,"line":215,"context":196},98,{"file":183,"line":217,"context":196},109,{"file":219,"line":220,"context":196},"admin\\partials\\main.php",21,{"file":219,"line":195,"context":196},{"file":223,"line":224,"context":196},"admin\\partials\\options_fnc.php",144,{"file":223,"line":226,"context":196},146,{"file":223,"line":228,"context":196},212,[],[],{"summary":232,"deductions":233},"The sm-sql-logs plugin v1.1.1 exhibits a mixed security posture. On the positive side, the static analysis reveals no identified vulnerabilities in its history and no critical or high severity taint flows.  The plugin also avoids risky operations like file manipulation or external HTTP requests, and it does not bundle any libraries.  This suggests a generally cautious approach to development in these areas.\n\nHowever, significant concerns arise from the lack of security checks in the code. The absence of any nonce checks, capability checks, or even authentication checks on the identified entry points (though the total is zero) is a major red flag. Furthermore, the output escaping is very poor, with only 6% of outputs being properly escaped, leaving the plugin highly susceptible to cross-site scripting (XSS) vulnerabilities if any entry points were to be discovered or if the plugin's functionality evolves. The SQL query usage is also a point of concern, with 43% of queries not using prepared statements, which could lead to SQL injection vulnerabilities.",[234,237,240,242],{"reason":235,"points":236},"Poor output escaping (XSS risk)",7,{"reason":238,"points":239},"Raw SQL queries without prepared statements",5,{"reason":241,"points":239},"No nonce checks",{"reason":243,"points":239},"No capability checks","2026-03-16T23:13:42.572Z",{"wat":246,"direct":255},{"assetPaths":247,"generatorPatterns":250,"scriptPaths":251,"versionParams":252},[248,249],"\u002Fwp-content\u002Fplugins\u002Fsm-sql-logs\u002Fcss\u002Fsm_sql_logs-admin.css","\u002Fwp-content\u002Fplugins\u002Fsm-sql-logs\u002Fjs\u002Fsm_sql_logs-admin.js",[],[249],[253,254],"sm-sql-logs\u002Fcss\u002Fsm_sql_logs-admin.css?ver=","sm-sql-logs\u002Fjs\u002Fsm_sql_logs-admin.js?ver=",{"cssClasses":256,"htmlComments":257,"htmlAttributes":258,"restEndpoints":259,"jsGlobals":260,"shortcodeOutput":261},[],[],[],[],[],[]]