MySQL Performance Tuning with Jay Pipes (MySQL Users Conference Workshop).
Standing room only — who’dve thunk performance tuning was so important!?!?!? (< / sarcasm>). Seriously though, there was a lot of typing happening.
Benchmark:
Get a baseline
Give yourself a target (“what’s good enough?”)
Change one thing at a time
Record everything (even the ‘trivial’ stuff)
Disable the query cache.
Profiling:
Profiling a currently running system (vs. benchmarking, on test)
EXPLAIN SELECT
slow query logs (mysqldumpslow
)
low hanging fruit (you figure out what they are, if you’re a DBA it might be putting an index, if you’re a developer maybe it’s changing a query) and diminishing returns
mytop
to catch excessive locking/contention and long-running queries.
Usual problem sources:
Bad indexing choices
too many indexes
missing indexes
Look for covering indexes (indexes where all the info is in the index, so it never has to go to the data for it, only the index)
Order of fields in multi-column index
Ensure good selectivity on index fields (if there is bad selectivity, the optimizer won’t use the index. Bad selectivity is records that are “true” or “false”; “active” or “closed”. If most of the records are one or a few types and others aren’t used much, then it will just do a table scan, if you’re looking for the many data type (ie, “closed” orders when the database is large).
Removing redundant indexes (look for column + multi-column indexes. No need to index “lastname” and “lastname, firstname”)
InnoDB puts the primary key in each index
Not using storage engines effectively, bloated/inefficient schema
Use appropriate datatypes. Do you need a BIGINT for the autoincrement? Index records are narrower with smaller datatypes.
Consider horizontally splitting multi-column tables. If you use some fields but not others, make 2 tables, and index the heck out of the one used more. π
Vertically splitting using MERGE tables or partitioning
InnoDB: choose the smallest possible primary key because it’s appended to EACH secondary index. Also ALWAYS GIVE A PRIMARY KEY because InnoDB is going to put one in.
Don’t use surrogate keys if a natural primary key occurs.
Bad coding practices
Break things down into the smallest chunks possible (that’s a good practice). Break large SELECT statements into smaller queries — are you doing an intersect? a union?)
Use Stored Procedures for BIG performance boost (26%)
InnoDB: use counter tables — ie make a separate table that updates count when a row is inserted or deleted.
Isolate index fields on one side of the table if you have a function. If you want orders from last 7 days, WHERE TO_DAYS(order_created) - TO_DAYS(CURRENT_DATE()) >= 7
can be improved to:
WHERE order_created >= CURRENT_DATE() = INTERVAL 7 DAY
or, even better, put the CURRENT_DATE() into a variable (MySQL or otherwise) and just use that, so the query can be cached.
Use calculated fields: For example, wildcard on left of string can’t use index. WHERE email LIKE "%.mysql.com"
won’t use index. But if you add another field, reverse_email, and add the REVERSE(email) into it, and then WHERE reverse_email LIKE "moc.lqsym.%"
Join hints like STRAIGHT JOIN (tells the optimizer what order to use and ignore optimization) should not be used, if they are, they should be re-examined regularly to make sure they’re still valid.
Convert correlated subqueries to a standard join. Use INNER or LEFT JOIN instead. Or, use a derived table — a subquery in the FROM clause.
Server variables not tuned properly — although Jay stated that you should tune the application FIRST (ie, queries) and THEN the server
Know what’s global vs. per thread
Make small changes and test (ie, one var at a time)
Usually temporary solution
Query cache defaults to size 0. Increase if you need to!
key_buffer_size for MyISAM only, innodb_buffer_pool_size is for InnoDB
Put more memory in. Cheapest, fastest, and easiest way to boost performance
Hardware/network bottlenecks
Trivia: MySQL engineers represent 12 countries.
MySQL Performance Tuning with Jay Pipes (MySQL Users Conference Workshop).
Standing room only — who’dve thunk performance tuning was so important!?!?!? (< / sarcasm>). Seriously though, there was a lot of typing happening.
Benchmark:
Get a baseline
Give yourself a target (“what’s good enough?”)
Change one thing at a time
Record everything (even the ‘trivial’ stuff)
Disable the query cache.
Profiling:
Profiling a currently running system (vs. benchmarking, on test)
EXPLAIN SELECT
slow query logs (mysqldumpslow
)
low hanging fruit (you figure out what they are, if you’re a DBA it might be putting an index, if you’re a developer maybe it’s changing a query) and diminishing returns
mytop
to catch excessive locking/contention and long-running queries.
Usual problem sources:
Bad indexing choices
too many indexes
missing indexes
Look for covering indexes (indexes where all the info is in the index, so it never has to go to the data for it, only the index)
Order of fields in multi-column index
Ensure good selectivity on index fields (if there is bad selectivity, the optimizer won’t use the index. Bad selectivity is records that are “true” or “false”; “active” or “closed”. If most of the records are one or a few types and others aren’t used much, then it will just do a table scan, if you’re looking for the many data type (ie, “closed” orders when the database is large).
Removing redundant indexes (look for column + multi-column indexes. No need to index “lastname” and “lastname, firstname”)
InnoDB puts the primary key in each index
Not using storage engines effectively, bloated/inefficient schema
Use appropriate datatypes. Do you need a BIGINT for the autoincrement? Index records are narrower with smaller datatypes.
Consider horizontally splitting multi-column tables. If you use some fields but not others, make 2 tables, and index the heck out of the one used more. π
Vertically splitting using MERGE tables or partitioning
InnoDB: choose the smallest possible primary key because it’s appended to EACH secondary index. Also ALWAYS GIVE A PRIMARY KEY because InnoDB is going to put one in.
Don’t use surrogate keys if a natural primary key occurs.
Bad coding practices
Break things down into the smallest chunks possible (that’s a good practice). Break large SELECT statements into smaller queries — are you doing an intersect? a union?)
Use Stored Procedures for BIG performance boost (26%)
InnoDB: use counter tables — ie make a separate table that updates count when a row is inserted or deleted.
Isolate index fields on one side of the table if you have a function. If you want orders from last 7 days, WHERE TO_DAYS(order_created) - TO_DAYS(CURRENT_DATE()) >= 7
can be improved to:
WHERE order_created >= CURRENT_DATE() = INTERVAL 7 DAY
or, even better, put the CURRENT_DATE() into a variable (MySQL or otherwise) and just use that, so the query can be cached.
Use calculated fields: For example, wildcard on left of string can’t use index. WHERE email LIKE "%.mysql.com"
won’t use index. But if you add another field, reverse_email, and add the REVERSE(email) into it, and then WHERE reverse_email LIKE "moc.lqsym.%"
Join hints like STRAIGHT JOIN (tells the optimizer what order to use and ignore optimization) should not be used, if they are, they should be re-examined regularly to make sure they’re still valid.
Convert correlated subqueries to a standard join. Use INNER or LEFT JOIN instead. Or, use a derived table — a subquery in the FROM clause.
Server variables not tuned properly — although Jay stated that you should tune the application FIRST (ie, queries) and THEN the server
Know what’s global vs. per thread
Make small changes and test (ie, one var at a time)
Usually temporary solution
Query cache defaults to size 0. Increase if you need to!
key_buffer_size for MyISAM only, innodb_buffer_pool_size is for InnoDB
Put more memory in. Cheapest, fastest, and easiest way to boost performance
Hardware/network bottlenecks
Trivia: MySQL engineers represent 12 countries.
Today’s first session — “The Java Advantage in MySQL” by Philip Antoniades. I’ve seen Philip speak before (at the Boston MySQL User Group) so I knew it was going to be good.
Enterprise level Java
Connector/J
Bulk of the code in Connector/J code is that it’s tested and works with most major application servers.
Pure Java
SSL
Entirely in-house code base (java/mysql)
open source, gpl
created by Mark Matthews
need java 1.4 to compile
small footprint driver
can set up config to cache prepared statements.
Profiling tools for developers:
Time executions
Time prepared statements
log prepare vs. execute occurrences (are you executing more than preparing?)
Debugging tools for developers:
Logging — StandardLogger or roll your own
http://dev.mysql.com/doc/refman/5.0/en/cj-configuration-properties.html
profileSQL — trace execution times, including latency, to logger
bad SQL warnings — useUsageAdvisor
Developer extensions are light, less than 1% additional load
ReplicationDriver — substitute for standard driver for replication/cluster aware apps or use standard with options. Works for asynchronous replication and synchronous clustering. Basic round-robin load balancing. Automated load balancing and automatic failover (works [best] for readonly stuff on replication). If master and 3 slaves and one slave goes down it will automatically use another slave. If cluster, automatic failover, can do sticky or load balanced.
use Connection.setReadOnly()
. (ie, I’m doing read only)
Connection con = ....
con.setReadOnly(true);
ResultSet rs = con.createStatement().executeQuery("select * from foo");
can setReadOnly(false) when you want to execute DML.
Driver string goes from
jdbc:mysql:\\DB1\appdb
to
jdbc:mysql\\DB1,slave1,slave2,slave3/appdb
Small Form Java (ie, desktop)
Goals — simplified maintenance, easy deployment, ease of use. instead of using a java db, use mysql with connector/J.
Connector/MXJ = wrapper around MySQL, platform neutral
what does it do?
1 jar file. auto-detects platform, auto-installs MySQL (has copies of ’em all), starts server on command/connect, stops on command/connect, 1-line db delete/server uninstall.
connect using
Connection conn=null;
try { conn=DriverManager.getConnection(url,userName,password)
} catch (Exception never){}
String url="jdbc:mysql:mxj://localhost:" + port + "\test" + "?" + "server.basedir=" + dbDir;
Therefore, easy to embed MySQL in a java application. .jar with Sun, Windows, Linux is 40MB. For smaller, you can make your own .jar.
Can configure to run always or on demand.
Can uninstall/data delete when application terminates (or is deleted).
jUDF
UDF’s in Java — ie, write UDF’s in Java instead of C++.
(would have to install Java server side, of course)
Also has hooks that could be extended to other langs. Imagine writing UDF’s in perl or PHP!
GPL available
Written by MySQL Engineers
linux-only
alpha status
not being worked on now, but you can cast your vote, because the engineers want to work on it (but it’s lower priority).
Future Directions for Java in MySQL
Next JDBC driver version is 5.0, to work with MySQL 5.0.
Will support major java frameworks, ie Struts, Hybernate
MySQL will continue to be the core Open Source java development database
I left the tutorial thinking, “wow! PHP can’t do that!”
Tangent: Carl Zimmer, “Parasite Rex” is a great book about parasites according to Philip.
Today’s first session — “The Java Advantage in MySQL” by Philip Antoniades. I’ve seen Philip speak before (at the Boston MySQL User Group) so I knew it was going to be good.
Enterprise level Java
Connector/J
Bulk of the code in Connector/J code is that it’s tested and works with most major application servers.
Pure Java
SSL
Entirely in-house code base (java/mysql)
open source, gpl
created by Mark Matthews
need java 1.4 to compile
small footprint driver
can set up config to cache prepared statements.
Profiling tools for developers:
Time executions
Time prepared statements
log prepare vs. execute occurrences (are you executing more than preparing?)
Debugging tools for developers:
Logging — StandardLogger or roll your own
http://dev.mysql.com/doc/refman/5.0/en/cj-configuration-properties.html
profileSQL — trace execution times, including latency, to logger
bad SQL warnings — useUsageAdvisor
Developer extensions are light, less than 1% additional load
ReplicationDriver — substitute for standard driver for replication/cluster aware apps or use standard with options. Works for asynchronous replication and synchronous clustering. Basic round-robin load balancing. Automated load balancing and automatic failover (works [best] for readonly stuff on replication). If master and 3 slaves and one slave goes down it will automatically use another slave. If cluster, automatic failover, can do sticky or load balanced.
use Connection.setReadOnly()
. (ie, I’m doing read only)
Connection con = ....
con.setReadOnly(true);
ResultSet rs = con.createStatement().executeQuery("select * from foo");
can setReadOnly(false) when you want to execute DML.
Driver string goes from
jdbc:mysql:\\DB1\appdb
to
jdbc:mysql\\DB1,slave1,slave2,slave3/appdb
Small Form Java (ie, desktop)
Goals — simplified maintenance, easy deployment, ease of use. instead of using a java db, use mysql with connector/J.
Connector/MXJ = wrapper around MySQL, platform neutral
what does it do?
1 jar file. auto-detects platform, auto-installs MySQL (has copies of ’em all), starts server on command/connect, stops on command/connect, 1-line db delete/server uninstall.
connect using
Connection conn=null;
try { conn=DriverManager.getConnection(url,userName,password)
} catch (Exception never){}
String url="jdbc:mysql:mxj://localhost:" + port + "\test" + "?" + "server.basedir=" + dbDir;
Therefore, easy to embed MySQL in a java application. .jar with Sun, Windows, Linux is 40MB. For smaller, you can make your own .jar.
Can configure to run always or on demand.
Can uninstall/data delete when application terminates (or is deleted).
jUDF
UDF’s in Java — ie, write UDF’s in Java instead of C++.
(would have to install Java server side, of course)
Also has hooks that could be extended to other langs. Imagine writing UDF’s in perl or PHP!
GPL available
Written by MySQL Engineers
linux-only
alpha status
not being worked on now, but you can cast your vote, because the engineers want to work on it (but it’s lower priority).
Future Directions for Java in MySQL
Next JDBC driver version is 5.0, to work with MySQL 5.0.
Will support major java frameworks, ie Struts, Hybernate
MySQL will continue to be the core Open Source java development database
I left the tutorial thinking, “wow! PHP can’t do that!”
Tangent: Carl Zimmer, “Parasite Rex” is a great book about parasites according to Philip.
I know how much I hate data entry. So do the MySQL folks a favor — if you’re at the Users conference, fill out an evaluation form for the conference at:
http://www.oreilly.com/go/confeval
and a speaker evaluation for each session at:
http://www.oreilly.com/go/spkreval
It took me a while to find the links, so I’m posting them here. I find myself writing down comments during the talk anyway, so having the browser open and writing comments directly into the eval form is useful for me.
And you have your laptop with you anyway (you’re reading this, aren’t you?). So pop open a browser and spend 2 minutes after each presentation giving feedback. Who knows, you might win something too!
I know how much I hate data entry. So do the MySQL folks a favor — if you’re at the Users conference, fill out an evaluation form for the conference at:
http://www.oreilly.com/go/confeval
and a speaker evaluation for each session at:
http://www.oreilly.com/go/spkreval
It took me a while to find the links, so I’m posting them here. I find myself writing down comments during the talk anyway, so having the browser open and writing comments directly into the eval form is useful for me.
And you have your laptop with you anyway (you’re reading this, aren’t you?). So pop open a browser and spend 2 minutes after each presentation giving feedback. Who knows, you might win something too!
So, I’m at the MySQL Users Conference. I ran into Jay Pipes and Mike Kruckenberg yesterday. That was not surprising. Surprising was the fact that Mike Hillyer (of sakila sample db fame, which I am very interested in) found me and said “Hi”. I can’t wait for his talk on the sample database; I want to run out and rewrite all the documentation using the sample db. I was introduced to Colin Charles as well, who congratulated me on the success of the Boston MySQL Users conference.
This morning I sat down for the keynotes and Roland Bouman said, “Sheeri!” He was followed by Markus Popp, Beat Vontobel, Giuseppe Maxia and Jay Pipes. So of course we had to get a picture! (Click on any picture to get bigger versions…)
(Quick pronunciation guide for American English Speakers:
Sheeri = SHEE-ree
Beat = BEE-aht
Guiseppe = Ju-SEP-pee
Arjen = AR-yen
to their credit, nobody has mispronounced my name yet.)

left to right: Beat, Markus, Jay, Sheeri (me), Guiseppe and Roland.
And then Arjen Lentz appeared, so we got another one…..

And then Monty Widenius appeared.


left to right: Markus, Guiseppe, Roland, Sheeri, Monty
Listening to Monty speak, he really cares about the product and the community. I’ve learned that the company cares about that sort of thing, but it’s nice to hear that Monty’s favorite thing about the 5.0 release was that he could give features to people that they’ve asked you.
While I’ve been writing, 4 community awards have been given, and 3 from people I’m sitting with!

Left to right: Congrats to
Roland Bouman
Giuseppe Maxia
Markus Popp
and Rasmus Lerdof (one of the founders of PHP) for their huge contributions to the MySQL Community.
More pics:
Welcome to San Jose!

I arrived at night:

The convention center has inflatable furniture in the hallways for break time use. Silicon Valley is geeky, who’dve thunk?

The food is great — the cheese and olives are wonderful! And salads, quiche and salmon also make an appearance on my plate. This isn’t bad lasagna, this is real, good food, and there are healthy options.

If you’re wondering who I am, and the pictures aren’t helping, I’m the knitter. Yesterday I started and finished a scrunchie, and today I’m continuing work on a vest. The scrunchie (hair thing):

So come, find me and say hi!
The Buddha is my DBA
I thought this was neat….
The Buddha is my DBA
I thought this was neat….
So, as well, who congratulated me on the success of the Boston MySQL Users conference.
This morning I sat down for the keynotes and Roland Bouman said, “Sheeri!” He was followed by Markus Popp, Beat Vontobel, Giuseppe Maxia and Jay Pipes. So of course we had to get a picture! (Click on any picture to get bigger versions…)
(Quick pronunciation guide for American English Speakers:
Sheeri = SHEE-ree
Beat = BEE-aht
Guiseppe = Ju-SEP-pee
Arjen = AR-yen
to their credit, nobody has mispronounced my name yet.)

left to right: Beat, Markus, Jay, Sheeri (me), Guiseppe and Roland.
And then Arjen Lentz appeared, so we got another one…..

And then Monty Widenius appeared.


left to right: Markus, Guiseppe, Roland, Sheeri, Monty
Listening to Monty speak, he really cares about the product and the community. I’ve learned that the company cares about that sort of thing, but it’s nice to hear that Monty’s favorite thing about the 5.0 release was that he could give features to people that they’ve asked you.
While I’ve been writing, 4 community awards have been given, and 3 from people I’m sitting with!

Left to right: Congrats to
Roland Bouman
Giuseppe Maxia
Markus Popp
and Rasmus Lerdof (one of the founders of PHP) for their huge contributions to the MySQL Community.
More pics:
Welcome to San Jose!

I arrived at night:

The convention center has inflatable furniture in the hallways for break time use. Silicon Valley is geeky, who’dve thunk?

The food is great — the cheese and olives are wonderful! And salads, quiche and salmon also make an appearance on my plate. This isn’t bad lasagna, this is real, good food, and there are healthy options.

If you’re wondering who I am, and the pictures aren’t helping, I’m the knitter. Yesterday I started and finished a scrunchie, and today I’m continuing work on a vest. The scrunchie (hair thing):

So come, find me and say hi!
Do you have a users group near you? Is it thriving? In conjunction with Mike Kruckenberg, I’ve been running the Boston MySQL Users Group for 6 months. Every meeting draws 30-60 members, and members overall are quite satisfied.
How do we do it? If you’re at the MySQL Users Conference, come find out at the MySQL Users Group BOF to get tips and tricks, or to share your own success stories and pitfalls. 8:30 -9:30 pm, Tuesday April 25th.
Do you have a users group near you? Is it thriving? In conjunction with Mike Kruckenberg, I’ve been running the Boston MySQL Users Group for 6 months. Every meeting draws 30-60 members, and members overall are quite satisfied.
How do we do it? If you’re at the MySQL Users Conference, come find out at the MySQL Users Group BOF to get tips and tricks, or to share your own success stories and pitfalls. 8:30 -9:30 pm, Tuesday April 25th.
Jay Pipes gave an amazing tutorial on optimizing performance in MySQL by choosing your indexes and joins well. There were plenty of questions from the audience which he handled well, and in style. Over 50 people attended! And I really feel as though everyone learned a lot. The tutorial ran for 3 hours, but we were engaged until the last, and there were 15-20 people even at the bitter end.
Thanx, Jay! I can’t wait to see how the tutorial goes over at the MySQL Users Conference.
Pictures, video, slides and presentations will be up when we get to it.
Jay Pipes gave an amazing tutorial on optimizing performance in MySQL by choosing your indexes and joins well. There were plenty of questions from the audience which he handled well, and in style. Over 50 people attended! And I really feel as though everyone learned a lot. The tutorial ran for 3 hours, but we were engaged until the last, and there were 15-20 people even at the bitter end.
Thanx, Jay! I can’t wait to see how the tutorial goes over at the MySQL Users Conference.
Pictures, video, slides and presentations will be up when we get to it.
Jay Pipes (co-author of Pro MySQL) is in town and will speak about “MySQL Performance Tuning Best Practices”. This is the workshop he’ll be giving at the MySQL Users Conference, so if you can’t go don’t miss this user group meeting! There will be FREE pizza and soda.
We will have giveaways of Pro Mysql and gift certificates for free Apress books, and other swag like T-shirts, buttons, etc. RSVP for a headcount of soda and pizza at http://mysql.meetup.com/137/events/4875276/ (you will have to register; sorry…. π ) Mike Kruckenberg will be there, so if you want your copy (or the copy you win!) signed by both authors, you can.
Description of the workshop: Learn where to best focus your attention when tuning the performance of your applications and database servers, and how to effectively find the “low hanging fruit” on the tree of bottlenecks. It’s not rocket science, but with a bit of acquired skill and experience, and of course good habits, you too can do this magic! Jay Pipes is MySQL’s Community Relations Manager for North America.
We will be meeting on MIT campus, close to the Kendall stop on the Red Line (subway). There is also plenty of free parking — you can park in ANY MIT lot after 3 pm, even if it says “parking by permit only”. We are in building E51, room 372.
If you join the user group on the Meetup site, you’ll get these messages automatically and great things like 30% discounts on O’reilly books, discounts to conferences, etc. It’s OK to repost/forward this message.
Here is the URL for the MIT Map with the location of this building:
http://whereis.mit.edu/map-jpg ?selection=E51&Buildings=go
This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg ?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)
Here are the URL’s for the parking lots:
http://whereis.mit.edu/map-jpg ?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg ?selection=P5&Parking=go
Pizza and soda will be served, so please RSVP accurately.
When:
Monday, April 10, 2006, 7:00 PM 2006-04-10 07:00:00
Where:
MIT Building E51, Room 372
Wadsworth and Amherst Streets
Cambridge , MA 02117
Jay Pipes (co-author of Pro MySQL) is in town and will speak about “MySQL Performance Tuning Best Practices”. This is the workshop he’ll be giving at the MySQL Users Conference, so if you can’t go don’t miss this user group meeting! There will be FREE pizza and soda.
We will have giveaways of Pro Mysql and gift certificates for free Apress books, and other swag like T-shirts, buttons, etc. RSVP for a headcount of soda and pizza at http://mysql.meetup.com/137/events/4875276/ (you will have to register; sorry…. π ) Mike Kruckenberg will be there, so if you want your copy (or the copy you win!) signed by both authors, you can.
Description of the workshop: Learn where to best focus your attention when tuning the performance of your applications and database servers, and how to effectively find the “low hanging fruit” on the tree of bottlenecks. It’s not rocket science, but with a bit of acquired skill and experience, and of course good habits, you too can do this magic! Jay Pipes is MySQL’s Community Relations Manager for North America.
We will be meeting on MIT campus, close to the Kendall stop on the Red Line (subway). There is also plenty of free parking — you can park in ANY MIT lot after 3 pm, even if it says “parking by permit only”. We are in building E51, room 372.
If you join the user group on the Meetup site, you’ll get these messages automatically and great things like 30% discounts on O’reilly books, discounts to conferences, etc. It’s OK to repost/forward this message.
Here is the URL for the MIT Map with the location of this building:
http://whereis.mit.edu/map-jpg ?selection=E51&Buildings=go
This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg ?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)
Here are the URL’s for the parking lots:
http://whereis.mit.edu/map-jpg ?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg ?selection=P5&Parking=go
Pizza and soda will be served, so please RSVP accurately.
When:
Monday, April 10, 2006, 7:00 PM 2006-04-10 07:00:00
Where:
MIT Building E51, Room 372
Wadsworth and Amherst Streets
Cambridge , MA 02117
Dear Sheeri,
Congratulations! You have been accepted as a presenter for the O’Reilly Open Source Convention 2006 at the Oregon Convention Center July 24, 2006 – July 28, 2006.
The following has been accepted as a 45 minute session for the event:
“So you’ve inherited a MySQL Instance on Unix”
…..
——————-
I’d totally forgotten I’d even submitted that!
Guess I’m going to Oregon in July…..
Dear Sheeri,
Congratulations! You have been accepted as a presenter for the O’Reilly Open Source Convention 2006 at the Oregon Convention Center July 24, 2006 – July 28, 2006.
The following has been accepted as a 45 minute session for the event:
“So you’ve inherited a MySQL Instance on Unix”
…..
——————-
I’d totally forgotten I’d even submitted that!
Guess I’m going to Oregon in July…..
Today I was musing about how great \c is, and how it seems that many people are not aware of it, even though it’s in the banner of MySQL, and has been for a while.
So I decided to see what else I could find. I typed \h and found that a simple \W will show all warnings automatically after a query. That is great for the commandline interface! Now I just have to figure out if it’s possible to automatically do a \W (or “warnings”) whenever I log in with the commandline client.
Today I was musing about how great \c is, and how it seems that many people are not aware of it, even though it’s in the banner of MySQL, and has been for a while.
So I decided to see what else I could find. I typed \h and found that a simple \W will show all warnings automatically after a query. That is great for the commandline interface! Now I just have to figure out if it’s possible to automatically do a \W (or “warnings”) whenever I log in with the commandline client.