The InnoDB/XtraDB is a table engine, it has no say in parsing SQL. Thats another layer, which should be mostly engine independent.
MariaDB 5.5 is supposed to be 99.99% SQL compatible with MySQL 5.5 (there were some minor hiccups) and MariaDB 10.x is backward compatible with 5.5.
With MariaDB 10 and MySQL 5.6 (and now 5.7) the paths diverged somehow - some features were implemented in one but not other, some were implemented in both but with some differences (GTID, virtual/computed columns, differences in optimizer, ...).
So the answer is: There should be no difference in "standart" queries between using InnoDB/XtraDB or even MyISAM as both are "under" the SQL level of MySQL/MariaDB structure. You only have to be aware of differences in syntax for new features in 5.6+/10.0+ and those are not because of the engine differences (virtual columns for example are not handled by InnoDB afaik, but by the SQL layer - permanent computed column is just another normal column for InnoDB with the higher layer supplementing the data and the non-stored variant does not "touch" the engine at all and is always computed after the engine returns the columns needed).
wait_timeout
is a screwball one:
"On thread startup, the session wait_timeout value is initialized from the global wait_timeout value or from the global interactive_timeout value, depending on the type of client (as defined by the CLIENT_INTERACTIVE connect option to mysql_real_connect()). See also interactive_timeout. "
max_connections
claims to have an upper bound of 100000, but I would say that even 10000 is unreasonably large. Does it work to put max_connections=1000
in my.cnf
?
You understand that you need to, after changing my.cnf,
- restart mysqld
- disconnect and reconnect to see the change
- use
SHOW GLOBAL
, not SHOW
, which defaults to SHOW SESSION
.
The interaction between GLOBAL
and SESSION
(for both VARIABLES
and STATUS
) varies with the setting. For many, not all things, session is initialized to global when you login. And wait_timeout
is probably the quirkiest.
Warning
If you had 100000 connections each running complex SELECTs
needing, say, 3 tmp tables, then you might need 100000 * 3 * 256M = 76.8TB of RAM to handle the tmp table! ( 256M = min(tmp_table_size, max_heap_table_size) ). This is a strong reason not to set all those things so high.
Best Answer
MariaDB comes in a few different forms:
MariaDB is free and includes: Access all the features of MariaDB Server
MariaDB Enterprise Subscription includes a number of other features and is priced per server.
To look at the high-level features available see: https://mariadb.com/pricing