I’m now at Sun Tech Days St Petersburg. MySQL got involved in it on a very short notice so there are no MySQL sessions or tutorials, and we only have a small booth. It’s decently manned though, there are six MySQLers here in total and we have no less than three people on the booth at nearly all times.
We organized some ad hoc sessions, so far, Alexey (aka Kaamos)’s talk about MySQL and dtrace attracted the most listeners, and Kostja was the second with his talk about new MySQL 5.1 features.
We get lots of questions on wide range of topics, the most popular are
- Is Sun going to change MySQL license (close the source)? People are pleased to learn that MySQL will remain GPL.
- How is MySQL development going to co-exist with PostgreSQL development inside Sun?
- What, exactly, are MySQL licensing terms? People are not sure whether they will be able to use GPL or will need an OEM license, and what are the OEM licensing conditions and terms. It would be nice if MySQL website had more details about OEM agreements terms.
We get a fair number of technical questions as well. Here’s a quick dump in no particular order:
- Does MySQL have special optimizations for Sun Niagara processors? What are the settings one should use when running on Niagara?
- A complaint about poor subquery performance for a query generated by Hibernate. We figured that the issue is addressed in MySQL 6.0 by WL#3740 table pullout optimization.
- Quite a few people are interested in in-memory transactional databases. Not all of them know about MySQL Cluster.
- Most people are not aware of existence of MySQL Forge or MySQL University. People were interested to see slides, talks and other similar media, we’re handing out pieces of paper with MySQL Forge urls.
- How does one create a load-balanced and/or fault-tolerant multi-machine MySQL installation? There is MySQL Proxy and there are 3rd-party solutions, there are also clustered JDBC drivers, but people would like to see a packaged or officially supported configurations. It would also be nice if there was an overview of available solutions and their relative properties.
- MySQL’s command line client has poor tab completion in comparison to PostgreSQL’s. Indeed, hitting <TAB> in /usr/bin/mysql client always completes the list of tables and columns while in /usr/bin/psql completion is context-sensitive, e.g. if you type ALTER and hit TAB you’ll get a list of continuations available ALTER commands.
- Is there a way to have more than 64 indexes?
- Does MySQL’s GIS implementation allow to efficiently select primitives that are contained within (or have non-empty intersection with) a given axis-aligned rectangle? WL#3126 GIS: Precise spatial operations source tree needs to have some user-level documentation.
- mysqldump and charsets. Quite a few people complained about having difficulties when doing export and import of databases in cp1251.
- There needs to be some tool to assist upgrades. Several attendees said they were unable to upgrade their applications: the application stops working when moved to a newer MySQL version and they can’t figure out what went wrong. Ideally, they would like to have a tool that would just take their source code and update it with a newer MySQL, but that seems to be an “AI-complete” task. As a realistic option, we might use Proxy to run all queries against both old and new server, and report the differences.
- MySQL cannot use index_merge over both fulltext and non-fulltext indexes, that is, it will use only one index (actually the fulltext one) for query like
SELECT count(*) FROM tbl WHERE match(ft_key) AGAINST ('pizza' IN BOOLEAN MODE) AND non_ft_key='bar'
The conference is definitely worth to have presence on, also it’s nice to have enough people so we don’t have a strict booth watch schedule and there is always some rested force on the booth. Day-wise, the first day was the busiest, starting from the very opening hours. The second day had a slower start and even now (13:00) the crowd is not as thick. The good side of that is that it’s easier to have longer and uninterrupted discussions with interested attendees.
“Most people are not aware of existence of MySQL Forge or MySQL University.”
I will first note that this is not criticism directed at you. That said I wonder if the reason that many are not aware of MySQL forge is because of lack of ease of use, or not well vetted data. A few months ago I ended up on
There are some passages that look like information has been lost at some point:
“SELECT * FROM Table1 WHERE s1 = AND s2 = 5;
When choosing a strategy to solve this query, the optimizer picks s2 = Regard this as an accidental effect rather than a rule it could change at any moment. ”
The page is also not particularly easy to find (which it should be given how important the information is for performance), and it has the feel of not being throughly updated between MySQL releases.
It’s unfortunately true that the internals manual does not receive enough attention – the task of updating it has been offloaded to us developers and we don’t have enough time.
Re information loss – it might have happened, as the manual has passed automatic texi->wiki conversion at some point. I’ll look into this, thanks for the note.