This team of 2 people wants to…

witness the destruction of mysql

See everyone with this goal (11 people)


 

Sponsored Links

SQL Injection Testing

www.pronq.com/Fortify     Get a Free Software Scan. Fortify on Demand. Learn More Now.

My SQL Database Admin Help

www.percona.com/remoteDBA     Have the My SQL experts administer your databases. Fixed monthly cost.

MariaDB Enterprise 2

www.mariadb.com/     Comprehensive Knowledge Base Included

Download Book of Hazelcast

www.hazelcast.com/     free 173p Technical eBook on the #1 open source In-Memory Data Grid

Cassandra+Hadoop+Solr

www.datastax.com/     Download the free DataStax integrated Big Data Solution.

Oracle Fusion Integration

www.teamsupport.com/Oracle     Enhance Your Customer Support CRM. Try TeamSupport Oracle Integration

People doing this as a team:



Entries from people on this team:

witness the destruction of mysql (read all 3 entries…)
Woo!

I’ve now got a tool (almost complete) that slurps in a MySQL DB definition and spits out one for Postgres. I will post a link to it when I get creation of the enum tables working. (Instead of enums, Postgres uses constraints and extra tables.)



witness the destruction of mysql (read all 3 entries…)
I forgot to mention...

I had a few problems moving to FreeBSD 5 with MySQL, which ultimately caused by was shoddy code in InnoDB.



witness the destruction of mysql (read all 3 entries…)
Rewrites

I just rewrote all our in-code SQL queries to be easily recognizable. They now all live in

FOO = <<-SQL
SELECT blah
FROM there
WHERE x = 1
SQL

This will help us with moving away from MySQL.

Bob has also been exploring Postgres performance, but his results are preliminary



witness the destruction of mysql (read all 5 entries…)
Why God why?!!?!

How asinine is this?!? The best part is

The auto-increment counter is stored only in main memory, not on disk.

Let’s see how this lets us have fun.

  1. Create a table with an auto-increment key
  2. Insert two entries into said table
  3. Delete entry with greatest key; note key value
  4. Stop MySQL
  5. Start MySQL
  6. Insert a single entry into our favorite table

The newly inserted key value will be equal to the deleted key value. Wait, what? Another way to have fun with this is

  1. Create a table with an auto-increment key
  2. Insert a single entry into our favorite table; note key value
  3. Delete entry (using where id =); table should be empty
  4. Stop MySQL
  5. Start MySQL
  6. Insert a single entry into our favorite table

The newly inserted key value will be 1, regardless of the deleted key value. Why bother having auto_increment functionality if it always wants to reset itself?



witness the destruction of mysql (read all 5 entries…)
Another bug!

Try this one!

create table A (i enum (‘a’) not null);
insert into A (i) values (‘b’)

Rather than failing the insert it inserts the empty-string into the enum column. What’s the point of having an enum?



witness the destruction of mysql (read all 5 entries…)
Oh how I hate thee

I ran into this bug today. Yay!



witness the destruction of mysql (read all 5 entries…)
Another problem

autoincrement keys on InnoDB table types without binary logging turned on reset themselves upon a hard reboot, which happened to me on Friday by mistake. autoincrement keys are supposed to have a lifetime associated with the table. Crashing shouldn’t matter. This can have serious problems if the autoincrement value is used to assign message identifiers for delivery systems. Why can’t people just use PostgreSQL?



witness the destruction of mysql (read all 5 entries…)
It's so assy

The following query doesn’t work in 4.1.

update animals set color=’spotted’ where genus in (select genus from elephant limit 1)

It doesn’t allow a limit clause on a subquery. Wonderful!




 

43 Things Login