Is Adminer better than phpMyAdmin?
Adminer is a tool for managing content in MySQL databases. Adminer is distributed under Apache license in a form of a single PHP file (currently approx. 160 KiB in size). Its author is Jakub Vrána who (during 2007) decided to develop such tool as an "light-weight" alternative to phpMyAdmin. Currently (August 2009), the tool is in version 2.0 and so far it exceeded phpMyAdmin in some of the features it offers. Also, first webhosting providers started to include Adminer as MySQL managing tool into their portfolio of services.Features:
- Users log in specifying the destination server and providing the user name and password (which is sto#fff during whole session)
- Basic functions: select database, select/edit tables, browse/insert/edit table rows
- Searching or sorting via multiple columns
- Editing of other database objects: views, triggers, events, sto#fff procedures, processes, mysql variables, user permissions
- Text area for arbitrary SQL commands and storing these commands in command history
- Export of databases and tables (its structures and/or data) as a dump to output or a downloadable attachment
- User-friendly interface (extensive employment of JavaScript)
- Multiple language support (English, German, Spanish, Dutch, French, Italian, Estonian, Chinese, Czech, Slovak, Russian)
- SQL syntax highlighting
- Visual database/E-R schema editing
- XHTML 1.1 validity in UTF-8
- Countermeasures against XSS, CSRF, SQL injection, session stealing, …
- "Light-weight" - released in a form of a single file, approx. 160 KiB in size, with support of CSS skins
The small single file is a result of compilation and minification of source codes.
Here is an interesting comparison between phpMyAdmin 3.3.9 & Adminer 3.1.0 made by Jakub Vrána.
There are several screenshots linked from the comparison table further explaining the difference.
| Feature | phpMyAdmin 3.3.9 | Adminer 3.1.0 | Comment |
|---|---|---|---|
| Supported systems | MySQL | MySQL, SQLite, PostgreSQL, MS SQL, Oracle | Adminer is also available in a MySQL-only version. |
| Login | partial | complete | Adminer offers permanent login including user list, phpMyAdmin only partial support through configuration. |
| Create table | not smart | smart | In phpMyAdmin you have to specify the number of fields prior to creating the table. The form design transposes based on the number of fields. Adminer adds fields automatically. |
| Alter table | restricted | free | phpMyAdmin cannot move columns and cannot add columns in different places at once (every alter table is very slow when applied to big tables). Adminer can reorganize columns and add them in different places - at once. |
| Enum type | miserable | comfortable | Adminer offers textarea with one item per line for enum type creation. |
| Indexes | one at a time | all at once | Adding an index is a slow operation with big tables. Adminer allows manipulation with all indexes together. |
| Foreign keys | limited | complete | It is not possible to create multi-column foreign keys in phpMyAdmin. You have to create an index manually before you create the foreign key. Adminer offers a foreign keys interface directly in create/alter table. |
| Views | no alter | full support | It is not possible to alter a view in phpMyAdmin, it must be dropped and recreated manually. |
| User interface | confusing | intuitive | An example that applies to many differenet cases: there is an icon by table name in navigation. Half of users do not know that it has a different function than table name, the other half is not sure which function it is. |
| Triggers, routines, events | no create, alter manually | full support | phpMyAdmin does not offer an interface for creating these objects and has only primitive functionality for altering them. |
| Calling routines | SQL only | friendly | Calling sto#fff procedures and functions in phpMyAdmin is possible only by creating a SQL query. Adminer offers a friendly interface. |
| Selecting data | lacking | functions, grouping | Adminer allows grouping results and applying functions to columns in select statements. It is also possible to order by several columns at once. phpMyAdmin lacks these features. |
| Blob field download | extra tables | automatic | It is possible to download the contents of a blob field in phpMyAdmin only by creating extra tables, specifying them in the configuration and manually marking the downloadable fields. Adminer allows downloading any blob. |
| Relations | extra tables | automatic | To link data through foreign keys, you have to create an extra table and specify it in the configuration of phpMyAdmin. |
| Bulk editing | absent | present | There is no way to change a field value for several rows at once in phpMyAdmin. Adminer offers both relative and absolute modifications. |
| Multiple editing | complicated | trivial | For example, to fix typos on ten rows: You have to select these rows in phpMyAdmin, edit them, find the typos again and save. In Adminer, just double-click on a typo and save. |
| Clone row | error-prone | safe | phpMyAdmin offers the clone row feature after standard editing, therefore it is possible to overwrite the row by mistake. Adminer has a special button that is displayed prior to this operation. |
| Schema | extra tables | always | Schema in phpMyAdmin is available only after setting up and specifying extra tables in the configuration file and only through PDF or <canvas>. Adminer uses HTML and JavaScript. |
| Synchronization | requires remote access | works anywhere | phpMyAdmin synchronize feature does not work without remote access to the server which is usually disabled by a firewall. Adminer uses a different approach - it can create an ALTER export which generates alter commands to synchronize the target database with the source after running on the remote server. |
| Database list | slow | fast | Database list is slow because it displays the number of tables. Adminer downloads this data asynchronously. |
| Status variables | one-line summary | official documentation | phpMyAdmin displays an on-line summary for some status variables, Adminer links to the official documentation. |
| Variables | no description | official documentation | phpMyAdmin does not display any description for variables, Adminer links to the official documentation. |
| Multiple browser tabs | blocking | non-blocking | When one browser tab is performing a long operation, it is not possible to work with phpMyAdmin in another tab. Adminer on the other hand is concurrent and non-blocking. |
| SQL queries | one result | several results | Adminer is able to display the results of separate SQL queries all in one page. |
| Syntax highlighting | no links | documentation links | Adminer provides links to documentation for all SQL keywords. |
| Keyboard shortcucts | obstructive | handy | In phpMyAdmin, Ctrl+Left/Right does not skip by words as is the standard, instead it moves between fields. In Adminer keyboard shortcuts work as expected: Tab inside a SQL textarea works and Ctrl+Enter sends a form. |
| Skins | 6 | 8 | phpMyAdmin skin requires creating over 100 icons. |
| Customization | extra tables | PHP class | phpMyAdmin offers very simple customizations through special tables. Adminer offers advanced customization through a PHP extension class. |
| Languages | 7/57 up-to-date | 17/17 up-to-date | Nearly all translations in phpMyAdmin are incomplete. Common languages including RTL are supported in both tools and both tools have an English-only version in addition to the multi-lingual version. |
| Overall performance | slow | fast | Adminer is 28% faster on average (according to independent test by Juraj Hajdúch). |
| Security bugs fixed in 2010 | 10 | 1 | phpMyAdmin still fails to address serious security issues such as ClickJacking from the same domain or Referer Leakage. |
| Number of files | 879 | 1 | The Adminer source code is well structu#fff and kept in 70 files. The final, single file version is the result of compilation and minification. |
| New version notifications | inside Adminer | You can subscribe to e-mail notifications in phpMyAdmin. Adminer is more user friendly: the availability of a new version is displayed automatically in Adminer itself. There is also an RSS channel for both tools. | |
| Size | 15 126 kB | 291 kB | Number of files and size becomes apparent when installing/copying the application to a remote server. Installing Adminer is a snap. |
| License | GPL | GPL or Apache | GPL license is quite restrictive - it requires derived products to be also under GPL. |
| Requirements | PHP 5.2+, MySQL 5+ | PHP 4.3+, MySQL 4.1+ | Adminer works even with older versions of PHP and MySQL. phpMyAdmin requires a downgrade to work in older versions. |
| Configuration | usually necessary | zero configuration | phpMyAdmin usually requires at least some configuration, Adminer just works. |
To be fair, there are also some areas where phpMyAdmin exceeds Adminer:
| Feature | phpMyAdmin 3.3.9 | Adminer 3.1.0 | Comment |
|---|---|---|---|
| Export formats | 16 (LaTeX, Texy!, ...) | 3 (SQL, CSV, TSV) | Exporting database to LaTeX is a task that most developers solve on a daily basis. |
| Downloads in 11/2010 | 280 000 | 7 000 | You can change it this month! |
Would you prefer Adminer to phpMyAdmin? Share your thoughts in comments below.
Posted
by Jiby John