Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by Lukas Vileikis
How to make database schema changes without downtime in MySQL: complete guide
Every growing application eventually faces the same challenge: your database schema needs to change, but your users can’t afford the downtime. Whether you’re adding a column, creating an index, or restructuring a table with billions of rows, schema changes can lock tables, strain server resources, and disrupt live traffic if handled carelessly. The good news is that MySQL offers several ways to make these changes while keeping your database online and responsive.
What really happens when you let AI design your database schema (everything you should know)
AI coding assistants have become a fixture in most developers’ workflows, but when it comes to databases, the picture gets complicated fast. Over 60% of developers don’t use AI for database tasks at all — and for good reason. From confusing MariaDB with MySQL to generating over-engineered schemas that solve the wrong problem entirely, AI chatbots make enough database mistakes that MariaDB has had to create eight dedicated SKILL.md files just to correct them.
The one big difference between MySQL and MariaDB you may have overlooked
The big difference between MySQL and MariaDB largely revolves around database storage engines and anything related to them. In this article, I’ll walk you through some of the key differences between storage engines in MySQL and MariaDB, explain which is best for your use case, and detail how to change your database’s storage engine if necessary.
Bi-directional logical replication in PostgreSQL: a practical guide
Logical replication has long been a feature of many database management systems. It’s the simple process of copying and maintaining identical data across multiple database servers. The methods taken to achieve this process, however, are quite varied – and new methods are being introduced all the time. One of the newest methods is PostgreSQL’s bi-directional logical replication – and that’s the focus of this article. Logical replication is how database management systems replicate changes to data.
How to ensure replication stability in PostgreSQL (fix/prevent lag, bloat, and bottlenecks)
PostgreSQL replication is one of the most powerful tools available for keeping your database resilient, redundant, and performant, but it’s only effective when it’s stable. Replication lag, network bottlenecks, and long-running transactions can each quietly erode the reliability your applications depend on.
Comparing MySQL Enterprise Monitor with Oracle Enterprise Manager for MySQL – which is best?
MySQL Enterprise Monitor was a tool many database administrators turned to in times of need – that was, until Oracle Enterprise Manager for MySQL came along and stole the show, leading to . Plenty of DBAs have since made the switch to Enterprise Manager, but have you? If the answer’s ‘no’, I’ll explain why you should make the upgrade, and how to do it. But first, let’s take a step back and compare the two tools – looking at what they are, and why they’re useful.
Why you should still become SQL-certified in 2026 (and how to achieve it)
It may seem that in today’s rapidly evolving landscape of AI and digital threats, becoming certified is a thing of the past. A throwback, perhaps, to forums circa 2015, where seeing ‘SQL-certified’ community members was the norm. However, many people are still becoming certified, and the reasons for that are numerous. Aside from the potential of a salary increase, a certificate might open doors to jobs in new industries, or attract clients to your business.
PostgreSQL is removing MD5 authentication for passwords. Here’s what it means for your databases
Upcoming versions of PostgreSQL will be phasing out the MD5 hashing method within the authentication infrastructure of the database, as first suggested by Nathan Bossart in 2024. In doing so, PostgreSQL will become a safer and more secure database for everyone. Its architecture will be more resilient to brute-force attacks, more computationally expensive to deal with, and more suitable for secure authentication.
Why COALESCE might be the most useful SQL function you’re not using right
In SQL, handling missing or NULL values is essential for reliable data analysis and application logic. The SQL COALESCE function provides a simple, standard way to return the first available (non-NULL) value from a list -making it a go-to tool for cleaning data, setting defaults, and building resilient queries across modern databases. In this article, Lukas Vileikis explains exactly how the SQL COALESCE function works.
Everything you need to know about MongoBleed (CVE-2025-14847)
MongoBleed (CVE-2025-14847) was defined as “the vulnerability of the year.” In this article, find out what it is, why it’s dangerous, and if (and when) you should care about it. But first, some context. Back in April 2014, a vulnerability in the TLS extension ‘Heartbeat’ was discovered by researchers at Google. The vulnerability came about because, at the time, OpenSSL never properly checked the length of any requested data.
How to secure MySQL and PostgreSQL in the world of AI
Are you feeling the impact of AI in your daily work? No? Your database might say otherwise. If you run a forum, threads, posts and messages that are forwarded to the database are likely to be at least partially AI-generated. Run a search engine deriving information from a database or two? You’re likely to have suggestions from users or customers related to AI. AI is here and, while it’s unlikely to destroy us and take over the world (at least for now), it’s here to stay. That’s a fact.
How to safely use MySQL 8.0 post end-of-life (and alternatives to consider)
Regardless of how popular a specific software appliance is, particular versions of it are inevitably phased out over time, paving the way for new ones. MySQL, the DB-Engines DBMS of the Year in 2025, is perfect proof of this. MySQL 8.0 was officially released on April 19, 2018, and now its official End-Of-Life (EOL) is set for April 2026, 8 years later. Oracle will stop providing security patches, bug fixes and general support for the RDBMS after this date.
Securing Your Databases in 2026: Best Practices for the Evolving Threat Landscape
In 2026, your approach to both applications and databases must be focused on practical and technical real-world operations and use cases rather than just hype. If not, you’re heading for trouble as threat actors are becoming more sophisticated and the threat landscape changes all the time, too. Before we defend ourselves from anything, we have to understand what we’re defending against.
Securing Your Databases in 2026: Best Practices for the Evolving Threat Landscape
In 2026, your approach to both applications and databases must be focused on practical and technical real-world operations and use cases rather than just hype. If not, you’re heading for trouble as threat actors are becoming more sophisticated and the threat landscape changes all the time, too. Before we defend ourselves from anything, we have to understand what we’re defending against.
Making AI Talk to Your Database: AI-Powered Database Queries Made Simple
Nowadays, artificial intelligence is everywhere. It’s so prevalent that even universities are implementing it into their curriculums. That’s the case because on its face, AI really is immensely powerful – we can find pretty much any information on anything we desire. Beneath the surface though, AI is just a tool that learns certain patterns and draws conclusions from information on the Web to answer questions, make decisions, or craft a code sample or two.
Making AI Talk to Your Database: AI-Powered Database Queries Made Simple
Nowadays, artificial intelligence is everywhere. It’s so prevalent that even universities are implementing it into their curriculums. That’s the case because on its face, AI really is immensely powerful – we can find pretty much any information on anything we desire. Beneath the surface though, AI is just a tool that learns certain patterns and draws conclusions from information on the Web to answer questions, make decisions, or craft a code sample or two.
MySQL Index Overviews: PRIMARY KEY Indexes
If you’re a developer who had interactions with indexes in the past, you certainly know that indexes in MySQL come in a variety of shapes and sizes.
MySQL Index Overviews: Hash Indexes
Welcome back to the MySQL indexing series! We’ve already covered the nuances surrounding indexes in MySQL as well as walked you through B-tree indexes. MySQL, however, has many other index types it can offer for your use case, and one of those indexes are hash indexes, too. In MySQL, hash indexes are indexes that are used in queries that use the equality operators like = or <=> (which is the MySQL NULL safe equality operator, equivalent to the SQL Standard IS NOT DISTINCT FROM).
Announcing Database Frontiers: a Database Conference You Haven’t Yet Heard About
Database Frontiers is a new database conference hitting the spotlight come October 15th, 2025. Here’s everything you need to know. It would be an educated guess that you spend a lot of time solving database problems – hopefully, the Simple-Talk blog helps you solve more than a couple. At the same time, if you ask yourself or anyone around you how best to solve database problems, you will receive a couple of answers.
MySQL Index Overviews: Descending B-Tree Indexes
Most anyone who works with indexes should be familiar with B-tree indexes. These are the most commonly used data structures to facilitate faster access to data when we search for exact matches of data using the WHERE clause (or partial matches that can take advantage of the sort order of the index).
I Wrote a Book on How You Broke Your Database – Here's Why You Should Read It
If you are a frequent reader of Simple-Talk, it’s possible that you’ve come across blogs about optimizing all kinds of queries, tutorials on how to back up your database, tutorials on index internals, or even speaking at conferences. If you’re a DBA, these things should resonate with you because all of those things have their place. These blogs advance your knowledge about database internals, and query structure, or inform you about things to come.
MySQL Index Deep Dive: Clustered B-Tree Indexes
If you’re a frequent reader of the Simple-Talk blog, you’re no stranger to indexes as we’ve covered indexes in database management systems previously – in that blog, we’ve told you that indexes come in a variety of flavors including ordinary Balanced Tree (B-Tree) indexes and R-Tree, or spatial, indexes. B-Tree indexes have multiple types: they can be covering, composite, descending, FULLTEXT, UNIQUE, hash-based, or have something to do with the PRIMARY KEY.
MySQL Index Overviews: FULLTEXT B-Tree Indexes
If you’ve been following Simple Talk for a while, you know that we’re fans of databases and everything they involve. We’re also big fans of database performance, too. And if you’re a developer or a DBA, you surely know one of the primary answers to database performance – indexing! We’ve already told you about indexes when we talked about multiple approaches to improve your query performance and we’ve already told you about indexing nuances during some of our previous blog posts, too.
Thoughts Before Covering MariaDB Indexes in the MariaDB Server Fest 2024
Next week, Tuesday, 17th of September, I’m speaking at the MariaDB Server Fest. My speech involves and heavily focuses on indexes within MariaDB. One of my primary goals with this speech is for attendees to understand how to harness the power of indexing.
Devising the Perfect Index for Your Use Case – MySQL Edition - Simple Talk
If you’ve been following SimpleTalk for a while, you will be aware that I’ve recently blogged about MySQL indexes. I’ve already told you about the nuances of indexes in MySQL, vanilla B-Tree indexes, composite B-Tree indexes, and other kinds of indexes too. This blog will walk you through how to choose the perfect index for your specific use case. It will also advise you on the things you should consider to devise the perfect index design in MySQL.
MySQL Index Overviews: Composite B-Tree Indexes
Indexes in MySQL are one of the primary ways to enhance query performance and they are especially useful when the primary use case of our project refers to reading data stored in a database. We‘ve already told you about the nuanced world of indexes in MySQL – and there we‘ve mentioned that MySQL has multiple types of SQL indexes available for you to choose from. The primary index type available within MySQL is the B-Tree index which we‘ve already covered in one of our previous articles.
Thoughts Before Speaking at the Software Architecture Conference
Tomorrow, August 15, I have yet another conference where I’ll speak about MySQL’s performance. To be more exact – MySQL performance on bigger data sets. You can watch me speak via this link through YouTube – it will be fun! The Software Architecture Conference is a conference organized by an online community called C# Corner. C# Corner is a community that lets all kinds of developers share their thoughts, knowledge, and experience through various forms of content.
MySQL Index Overviews: B-Tree Indexes
In this first entry in a multipart series on indexes, I will cover the most important index type in MySQL, B-Tree Indexes. Applying indexes of any type in MySQL is nuanced task – they are used to speed up the performance of our search queries at the expense of having to be maintained when data is changed in the table.
Exploring MVCC and InnoDB's Multi-Versioning Technique
In the realm of relational databases, MySQL stands out as one of the most popular choices. Maximizing its performance is crucial, especially in highly concurrent environments where multiple transactions compete for resources. InnoDB, the default storage engine for MySQL, employs a technique known as Multi-Version Concurrency Control (MVCC) to address concurrency needs and enhance performance.
Optimizing MySQL: Deleting Data
In the previous parts of these MySQL optimization series, we told you how query optimization works on a high level, then walked you through how you should optimize queries that insert, read, or update data. Remember the laws of physics? “What goes up, must come down”?
Chris Date and the Relational Model
44 29452 views 29452 views 44 Chris Date is famous for his writings on relational theory. At IBM in the seventies, and afterwards, he was a friend and colleague of Edgar Codd, who invented the principles of the relational database. Chris took on the role of communicating and teaching Codd's relational theory, and reluctantly admits to a role in establishing SQL as the dominant relational language.
SQL Server: Optimize for Ad Hoc Workloads - use or not use
I used to believe this option was something almost absolute: it should be enabled as best practice. I was in some way happy when all my demos for SQL Server 2022 started to fail, and I discovered it was because this option was enabled by default. This weekend I attended a technical session which caught my attention to many blog posts stating the opposite.
Managing Query Store Hints
I wrote about query store hints before when they were first released in Azure SQL databases. However, there are some tricks related to managing query store hints we will explore on this blog post. Applying Query Store Hint When we apply a query store hint, the query already exists in query store, and it has at least one plan registered. It’s even possible to have more.
Exporting data from a MySQL database using SELECT…INTO OUTFILE
This article is part of Robert Sheldon's continuing series on Learning MySQL. To see all of the items in the series, click here. In the previous article in this series, I introduced you to the MySQL LOAD DATA statement, which lets you retrieve data from a plain text file and insert it into a table. In this article, I cover the SELECT…INTO OUTFILE statement, a type of SELECT statement that includes the INTO OUTFILE clause.
Optimizing Queries in MySQL: Optimizing Updates
In the previous parts of these MySQL optimization series, we’ve told you how queries work on a high level, then dived deeper into the power of SELECT and INSERT statements. In this blog, I will cover some of the ways to optimize modifying your data too. UPDATE Queries – the Basics As the name of the statement suggests, UPDATE queries provide us with the ability to make changes to our existing data.
Working with MySQL transactions
MySQL transactions provide an effective method for executing multiple statements as a single unit, making it possible to safely modify data, while preventing concurrent users from updating the same data or overwriting changed data. If any statements within a transaction fail or do not achieve their desired results, the changes can be rolled back and the database returned to its original state, as it existed prior to starting the transaction.
Optimizing MySQL: Adding Data to Tables
Welcome back to the MySQL optimization series! In case you haven’t been following this series, in the past couple of articles we have discussed the basics of query optimization, and told you how to optimize SELECT queries for performance as well. In this blog, we’re further learning ways to optimize INSERT operations and look at alternatives when you need to load more than a few rows in the LOAD DATA INFILE statement. How Does INSERT Work?
Build a Better WordPress Archives Page Using MySQL
I recently wrote about a way to generate visual, interactive calendars in HTML by combining a calendar table with data from an events table (part 1 and part 2). This technique could be used to overlay any type of data onto calendars, but my specific goal was to make the monthly archives page on my blog a little less boring. I started with SQL Server because that’s what I know, but I knew that wouldn’t be my final solution. Like many of you I’m sure, my blog runs on WordPress and MySQL.
Retrieving MySQL data from within Python
Applications of all types commonly access MySQL to retrieve, add, update, or delete data. The applications might be written in Python, Java, C#, or another programming language. Most languages support multiple methods for working with a MySQL database and manipulating its data. The approach you take when accessing MySQL will depend on the programming language you’re using and the connector you choose for interfacing with the database.
The Top 10 Security Vulnerabilities for Web Applications
It's super important to consider the security of the applications you build. There are lots of ways to address security issues, but a powerful way to get started is to address the top ten security issues as identified by OWASP (the Open Web Application Security Project).
Backing Up MySQL Part 7: MySQL Enterprise Backup
MySQL Enterprise Backup is a known tool for everyone inside of the world of MySQL, no matter if people dealing with the tool are enterprise (business) minded or not. The tool can be considered the flagship of MySQL’s enterprise-level offerings: it comes as a part of its Enterprise tier and costs thousands to attain: is it worth your money, and perhaps more importantly, your time? We will figure that out in this blog.
CHAR vs. VARCHAR: What's the Difference?
If you've found yourself in the MySQL space even for a little while, you already know that MySQL and other flavors of it offer a couple of data types for developers to choose from. A wide majority of the most popular data types offered by MySQL are related to text — in this space, MySQL offers VARCHAR, CHAR, TINYTEXT, TEXT, and other options.
MySQL's UTF-8 Isn't Real
If you are familiar with MySQL, you probably already know that it comes with multiple character encodings. One of the main encodings in the MySQL world and on the web, in general, is UTF-8 - it is used in almost every web and mobile application, and is widely considered to be the "default" option as far as MySQL is concerned.
Deriving Ideal Indexes: A Guide
Join the DZone community and get the full member experience. Join For Free Indexes are there to simplify our work when searching for data: they speed up SELECT queries at the expense of slowing down other kinds of queries like DELETEs, UPDATEs, and INSERT s instead. However, as awesome as indexes might be, they also need a lot of work to get right — in this blog, we will tell you how you should go about deriving ideal indexes for your database.
The Darker Side of ALTER TABLE
Join the DZone community and get the full member experience. Join For Free If you frequently find yourself immersed into the MySQL world, there's probably no need to explain to you what SQL queries are and what they do. Chances are, you know them like your five fingers.
How Does MySQL Configuration Work?
If you've found yourself in the MySQL space at least for a little while, chances are that you have heard about one of its well-known files: my.cnf. my.cnf is a configuration file exclusive to MySQL and all of its flavors and it's widely regarded as the "go-to" file whenever MySQL configuration errors occur.
Security vs. Performance in the SQL World
If you found yourself inside of the world of databases in one way or another, you already know a little about database security and performance. Database management systems certainly do come with benefits to your databases, but have you thought about what options you need to weigh from the security and performance perspectives for your choice to be the most effective? That’s what we’re going to explore in this post. Are Security and Performance Linked Together?
Are Foreign Keys Unscalable?
If you find yourself reading this post, there are very good chances that you find yourself in the shoes of a MySQL database administrator, a database-savvy developer, or even a sysadmin. If you're reading this post, also chances are that you know a couple of things about storage engines, indexes, partitioning, normalization, search engines helping you secure your data, and whatnot. In this blog, we will dive deeper into the correlation between big data and foreign keys on MySQL.
Blind SQL Injection — Threat or Child's Play? - DZone Database
One of the primary issues in the database world is SQL injection - it's prevalent to such an extent that even OWASP continuously lists it as the #1 threat targeting web applications. SQL injection can have many types, and one of these types is blind SQL injection - in this blog post, we will go through just how harmful such an attack can be. What Is SQL Injection? What Are Its Categories?
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with Lukas
Contact Lukas, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack