Hello friends
I'm making some tests to use MySQL on a costumer. I know that many of you already use MySQL in production, and I need some clues:
=> I'm in doubt about the type of tables. On my searchings, I've seen nothing more than: "InnoDB is more stable, supports transactions, row-locking bla-bla-bla but MyISAM is faster". On a simple test, MyISAM proved to be much faster than InnoDB. Practically, what problems I'll have using MyISAM as main storage engine?
=> I'll use version 5.0 (the most recent stable release). Already tested with zeos and, at first look, no problems in the way. I don't plan to use many unusual things, just data (mostly integers, some floating point, DateTime and text), some keys and indexes and auto increments. No views, storedproc and such things. At least for now. There's is any big problem, unsupported big feature or something between MySQL 5 and Zeos?
=> Looking to convert my actual DB (Firebird 1.5) to MySQL, a nasty question came up: What floating point will replace the decimal(15,2) from FB ? The MySQL's decimal, double or float types seems to suit well, but there are people discussing something about "innacurate" calculations involving floating point values in MySQL. Anyone with this problem?
Thanks for now!
[]'s
Moving to MySQL, need some ideas
Moderators: gto, cipto_kh, EgonHugeist
- mdaems
- Zeos Project Manager
- Posts: 2766
- Joined: 20.09.2005, 15:28
- Location: Brussels, Belgium
- Contact:
Hi gto,
- MyIsam : If access is mainly for reading: no problem. If you need transactions : forget about it. Stability : never had trouble with Myisam.
- I never used Innodb, but as far as I've read about mysql a lot of people use it and are happy with it.
- If your application is about loads of data but few updates I would say go for MyIsam. If the amount of data is small but updates are an important partofit : go for Innodb. You can almost transparently change tabletypes easily with one alter table and even mix types for different tables.
Version 5 : Same features are available as for 4.1, so that's not an issue when you don't use the new features.
Floating point : this problem you are refering to should be fixed by now. (Testing branch rev 186)
Conclusion : Don't be afraid for mysql. It works pretty good!!
Mark
- MyIsam : If access is mainly for reading: no problem. If you need transactions : forget about it. Stability : never had trouble with Myisam.
- I never used Innodb, but as far as I've read about mysql a lot of people use it and are happy with it.
- If your application is about loads of data but few updates I would say go for MyIsam. If the amount of data is small but updates are an important partofit : go for Innodb. You can almost transparently change tabletypes easily with one alter table and even mix types for different tables.
Version 5 : Same features are available as for 4.1, so that's not an issue when you don't use the new features.
Floating point : this problem you are refering to should be fixed by now. (Testing branch rev 186)
Conclusion : Don't be afraid for mysql. It works pretty good!!
Mark
Using MySQL for latest 4 yeary - totally happy withe it.
About your questions:
MyISAM is OK. InnoDb is better for transactions, foregn keys, table/row locking and (in some cases) for stored procedures. I use both engines - except for speed the usage is practically identical. I reccomend you MyISAM for starting up.
For conversion from FB - MySQL uses float(12,5) and it's OK. I also heard some developers complaining about inaccurate folating point, but until now it was always a usage mistake (wrong SQL sentences or Delphi application code problem). A common mistake is also to create dataset fields during design time and later extend the database fields without modifying the fields size in the code - the result is somehow inpredictable.
Hope it helps. I would definitely stick to MySQL (I changed from Firebird when it was still Interbase and never regret it).
M@rko
About your questions:
MyISAM is OK. InnoDb is better for transactions, foregn keys, table/row locking and (in some cases) for stored procedures. I use both engines - except for speed the usage is practically identical. I reccomend you MyISAM for starting up.
For conversion from FB - MySQL uses float(12,5) and it's OK. I also heard some developers complaining about inaccurate folating point, but until now it was always a usage mistake (wrong SQL sentences or Delphi application code problem). A common mistake is also to create dataset fields during design time and later extend the database fields without modifying the fields size in the code - the result is somehow inpredictable.
Hope it helps. I would definitely stick to MySQL (I changed from Firebird when it was still Interbase and never regret it).
M@rko
Yo friends! Thanks for the answers
I'll be hard testing this week, and I'll let you know about the results.
This application I'm converting was totally messed up, it's using BDE to access a firebird (but with dialect 1, BDE restriction) database.
I'm changing it to zeos (VERY big work) since two weeks ago and, now, it's about 60% pure Zeos powered. As I finish it, the next step will be test it running in MySQL
[]'s!
I'll be hard testing this week, and I'll let you know about the results.
This application I'm converting was totally messed up, it's using BDE to access a firebird (but with dialect 1, BDE restriction) database.
I'm changing it to zeos (VERY big work) since two weeks ago and, now, it's about 60% pure Zeos powered. As I finish it, the next step will be test it running in MySQL
[]'s!