In this MariaDB tutorial, we will study the use of MariaDB Limit and we will also cover some examples. There are lists of the topic that comes under discussion is given below:
- MariaDB limit
- MariaDB limit offset
- MariaDB limit in subquery
- MariaDB limit connections per user
- MariaDB limit table size
MariaDB limit
The limit clause is used in this section to limit the number of rows returned. When you use the limit keyword with a single integer n, the first n rows are returned. In most cases, the user will utilise the order by clause to specify which rows should be displayed first.
You can select several rows after an offset using either of the following methods given below:
LIMIT OFFSET, ROW_COUNT
LIMIT ROW_COUNT OFFSET offset.
The sample example of the offset clause is given below:
CREATE TABLE members(name varchar(20));
INSERT INTO members value('Jagdish'),('Martin'),('Christain'),('Messi'),('Max Payne');
SELECT * from members;

When we use the limit clause on the members table by 2 which means that it will provide the first 2 names of the table members. Here, n refers to 2 which means limit by 2. ( NO orders specified)
After using the limit clause by 2 on the members table, the table show like this below:
SELECT * FROM MEMBERS LIMIT 2;

Read MariaDB varchar
MariaDB limit offset
In MariaDB, the offset clause allows one to return only those elements of a result set that comes after the specified offset. The FETCH clause specifies the number of rows to be returned, it either can be singular ROW or plural ROWS. The choice has no impact on the results.
The syntax of the offset clause is given below:
OFFSET start { ROW | ROWS }
FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES }
Let’s create a table for the offset clause. The sample example is given below:
CREATE TABLE Laptop_Name(Name_of_Laptop VARCHAR(20));
INSERT INTO Laptop_Name values('Dell'),('Apple'),('Microsoft'),('Lenovo'),('MSI'),('Alienware);
SELECT * FROM Laptop_Name;

The sample example of using the offset clause in the table Laptop_Name is given below:
SELECT * FROM laptop_name
ORDER BY name_of_laptop ASC
LIMIT 5
OFFSET 2;

MariaDB Limit in Subquery
In this section, a subquery is a nested query which means that a query is inside another query.
There are some limitations regarding subqueries which is discussed below.
A sample example to draw the limit of the subquery is given below and there are two tables cricket_playername and baseball_playername.
CREATE TABLE cricket_playername(name varchar(20), age int);
INSERT INTO cricket_playername VALUES('Kane Williamson',35),('Ish Sodhi',32),('Glenn Phillips',37),
('Martin Guptill',36),
('James Neeshman',37),('Vakerius',34),('Valerius',34);
SELECT * FROM cricket_playername;

Let’s create another table baseball_playername with given details as shown below:
CREATE TABLE baseball_playername(name varchar(20),age int);
INSERT INTO baseball_playername VALUES('A J Alexy',23),('A J Cole',29),('Andrew Kittredge',31),
('Austin Dean',27),('Billy Hamiltion',30),
('Valerius',34);
SELECT * FROM baseball_playername;

The sample example of order by clause in the subquery is given below:
SELECT * FROM cricket_playername
WHERE name IN
(SELECT name FROM baseball_playername ORDER BY name);

The limitation of subquery in MariaDB is given below:
- The order by clause and limit must be used in the sub query. If you try to use limit clause, it will cause unnamed: error
[Note]: This version of MariaDB doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME subquery’.
- There is only partial support of row comparison.The expression is in:
expr op {ALL|ANY|SOME} subquery,
If you try to use AND clause in the subquery it will cause an error to add one more column.
SELECT * FROM cricket_playername WHERE (name,age) = ALL (
SELECT name,age FROM baseball_playername WHERE age >=51
);

MariaDB limit connections per user
In MariaDB, each user of the database is limited to 38 simultaneous Mysql connections. These limitations will help to prevent overloading the Mysql server that leads to damage to other sites hosted by another server.
If you want to reset values of per user max_user_connection, try to use this command as given below:
SELECT User, Host, max_connections, max_user_connections
FROM mysql.user;

Let’s create a new user account in the MariaDB server with a new pwd as Gclock@121 to secure a new user account. Here we use localhost to run clients and servers on the same network. [Note]: While creating a new user account, don’t forget to add @Test into it.
CREATE USER Andrew@Test identified by 'Gclock@121';
The final output illustrates the above query as shown in the image below:

By default, in Mysql 5.5+ can handle up to 150 max_user_connections.If you to increase maximum user support connection then your server should have enough RAM to support the increased connections.
In order to limit the max_user_connection, try to set global default to 50: SET PERSIST max_user_connections=50.
The sample example to create a new user account as ‘Briteny’ with max_user_account=100 and max_queries_per_hour=200 as it shows below:
create user 'Briteny'@'test' with
MAX_USER_CONNECTIONS 100
MAX_QUERIES_PER_HOUR 200;
SELECT USER, MAX_USER_CONNECTIONS FROM mysql.user;

Read How to create a database from an SQL file in MariaDB
MariaDB limit table size
In this section, the max table size for the MariaDB database is limited by operating system file length constraints rather than a MariaDB inner limit.
The following table given below lists some examples of operating system file size- limits:
Operating System | File Size limit |
Win 32 w/FAT/FAT 32 | 2GB/4GB |
Win 32 w/NTFS | 2TB(possibly larger) |
Linux 2.2 -Intel 32 Bit | 2GB(LFS: 4GB) |
Linux 2.4+ | (using ext3 file system) 2 TB |
Solaris 9/10 | 16TB |
macOS X w/ HFS+ | 2TB |
If you want to minimize or limit the table size of the ‘baseball_playername’ table then try to limit max_rows to 10000 ( as per user’s requirement) and avg_row_length to 100 (as per user’s requirement).
The syntax to alter command for max_rows and avg_row_length is given below:
ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;
The sample example to alter max_rows and avg_row_length of table baseball_playername is given below:
ALTER TABLE baseball_playername max_rows=1000 avg_row_length=10000;
To check maximum size and index size by using this statement given below:
SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';
The sample example to check the maximum size and index size of the table in the database is given below:
In this example, we have created a table baseball_playername that has a list of baseball players from the United States of America. In the Hotel database, we have used the baseball_playername table to show statuses like max_rows and avg_row_length.
SHOW TABLE STATUS FROM hotel LIKE 'baseball_playername';

You may like the following MariaDB tutorials:
- MariaDB Insert Into
- MariaDB create procedure
- How to Change Column in MariaDB
- MariaDB Update Statement
- MariaDB AUTO_INCREMENT
- How to Remove User in MariaDB
- MariaDB Delete Row
- MariaDB IF Tutorial
In this tutorial, we have learned about the MariaDB Limit using some examples. Moreover, we have also covered the following topics in this tutorial as given below:
- MariaDB limit
- MariaDB limit offset
- MariaDB limit in subquery
- MariaDB limit connections per user
- MariaDB limit table size
I am Bijay having more than 15 years of experience in the Software Industry. During this time, I have worked on MariaDB and used it in a lot of projects. Most of our readers are from the United States, Canada, United Kingdom, Australia, New Zealand, etc.
Want to learn MariaDB? Check out all the articles and tutorials that I wrote on MariaDB. Also, I am a Microsoft MVP.