Subject | Re: [firebird-support] Off-Topic: Firebird future |
---|---|
Author | liviuslivius |
Post date | 2019-10-09T08:45:04Z |
Hi
lack of GUI tool is a realy big problem, especially for newcommers.
As you have pointed flamerobin looks like abandoned project. It have some problems but was quite good tool.
But to compare Firebird to other servers like Postgress few points must be taken.
1. Firebird have simple instalation and its size is really small. It is simple to administration by novice users.
2. Firebird database file is single flat file. It is simple to backup. In Postgress it is some folder with number in the name and many files. Novice user do not know how to backup it.
3. Firebird have genius embeded version. I use it on near every webpage as i do not depend on preinstalled version on the provider side. I am also not limited in size of my database :)
It is working on medium trust servers :)
4. I have made comparission in speed for my biggest project, with not so big database file. It is only 50GB. I have catch near the all sql from the system. And the resutls are:
66% of sql are run faster on Postgress 34% are run faster on Firebird. One critical for us sql was run faster on Firebird side and it is winner for us here.
I know this is specific comparisoin but i have analysed where the problems are.
I describe it in next points (5..9)
5. Firebird do not have index only scans and include clause in index. This is the biggest lack. Because of this i have migreted ~800GB database, noncommercial project based on GAIA DR2 data from Firebird. Look at http://tracker.firebirdsql.org/browse/CORE-5909.
6. Firebird do not have parallel operations.
7. Firebird indexes are not bidirectional. You must specify asc desc. (this is not so big problem as you can crate both separately).
8. Firebird compound indexes cannot use parts from composite index if middle part is missed. E.g. 1,2,4 but 3 is missed. Postgres catch this.
9. Lack of hash/merge algorithms for outer joins. Also believe that it will be in FB4 :)
10. Firebird triggers and procedures are really good. I know that newcomers have problems with it i do not know why. Maybe something obvious is missed in the documentation.
11. Firebird miss some obvious feature which made me crasy. Import from CSV file. I have proposed simple fix for this http://tracker.firebirdsql.org/browse/CORE-5818 but it was rejected by the team as the more common/extended version is needed.
I understand this, but more extended version will be implemented maybe in next 10 years but my simple proposition i suppose can be implemented in few days. I know it must be then maitained when more extended version will be avaiable. This is a know every day developer problem i understand.
12. Lack of lateral join, i believe that it will be in FB4 :)
13. Firebird have really good system monitoring. It have good trace and MON$ tables. I like it very much.
14. Firebird have non detailed info in query plan. Compared to other servers.
15. Firebird lack of running query plan as it depend strongly on plan gethered at prepare time. It cannot addapt to value provided in parameter by histogram use.
16. Firebird have really good CTE also recursive where you can provide almost every feature avaiable in normal sql.
17. Firebird have quite good support. But i suppose, team do not have dedicated person for this point. Compared to Interbase it is still much much better :) IB paid support is something what should be banned. We have migrated all projects from Interbase to Firebird because of this.
18. Lack of grouping sets.
19. Finally Firebird 3 is really stable for us. No problems occurred (fingers crossed). This is something what also cannot be missed.
Finally i can only say really good words about Firebird team. With such limited resources they do really big progress. Compare how many persons are in Firebird team and how many in Postgress.
The problem is that team is overloaded and new peresons also when provide pull requests cannot be carried by the hand from the team as team have not time and circle is closed.
I see that some users provide pull requests and as they looks finished stay not merged.
This should be improved as such person can provide more pull requests and maybe in the future will be in the team as a member. Maybe not, but every brick counts.
E.g. https://github.com/FirebirdSQL/firebird/pull/204
I greet everyone warmly and i hope that the Firebird team will grow in the future
Karol Bieniaszewski