Version 1.4.3 of the innotop MySQL and InnoDB monitor is out. This release fixes some minor bugs and feature annoyances, and at last innotop has thorough documentation, available online!
MySQL K.K., the Japanese arm of the open source database developer MySQL AB, has announced three new initiatives aimed at strengthening its expansion in the Japanese market: New Tokyo offices; a Japanese-language beta version of the MySQL 5.1 User's Manual; and the addition of a new corporate partner.
First, we download ACC from www.aspectc.net and make it following
the README. ACC script tacc can automatically compile aspect
files (with suffix .acc) with regular .c files. To use tacc, we
need setup several environment variables:
For example, in .bashrc
export PATH=$PATH:.:/ACC_PATH/bin
export CC=tacc
export SRCROOT=/PBXT_SOURCE_CODE_PATH/src
export AR=accar
SRCROOT is our source code (i.e. pbxt) directory. We also put
.acc files in the same source code directory. Then, we can run
./configure inside PBXT source code directory as before.
E.g,
./configure --with-mysql=/home/build/mysql-51
--libdir=/home/build/test/lib/mysql --with-debug=full
It will automatically generate a makefile which uses ACC
command.
Note, in our case, we have mixed .cc and .c files. Since ACC does
not work with .cc, we need use gcc to link file instead of using
g++. So, we have …
Version 1.4.3 of the innotop MySQL and InnoDB monitor is out. This release fixes some minor bugs and feature annoyances, and at last innotop has thorough documentation, available online! What’s new Here’s what’s new: Added standard –version command-line option Changed colors to cyan instead of blue; more visible on dark terminals. Added information to the filter-choosing dialog. Added column auto-completion when entering a filter expression. Changed Term::ReadKey from optional to mandatory.
It's very easy to have an auto_increment column in a table and maintain primary keys. Many people think so, and also they think that MySQL will do the best job for them. With InnoDB, the case is a little different as supposed to be. Basic assumption is that since InnoDB works with row-level locking, combining it with auto_increment should ward off worries. But it is just the beginning.
Let me clarify how auto_increment works. InnoDB maintains the auto_increment value in memory. Good approach. When an insert statement requests the auto_increment value, InnoDB takes the stored value, increment it by one and return. The value in memory is not incremented at this time. This is not bad, because who knows how many rows the insert statement has.
But, this means that InnoDB cannot provide auto_increment values to other threads until this finishes, hence we cannot have concurrent inserts even in InnoDB when using an auto_increment value. …
[Read more]
I have had some comments on my stored functions for XML output
from MySql. First of all, publishning the code as a part of a
blog post was not a good choice. All xml chars, like < and
> must be escaped, and I missed some. I should probably have
used the xml_escape function to precess my text...
That is fixed now, and also I have put the function definitions
on the MySql forge, here. Please do not hesitate to tell me if you
find any errors, or have suggestions for improvement.
Another comment was about the xml functionality of 'mysql --xml'.
Yes, there is a function for generating xml output from MySql, I
do know that. But if you need to output xml from your application
there are a number of problems with it:
1) it has to be invoked from the command line, so you need to
start a command shell, redirect output somewhere etc. This is …
After many gruelling hours I've managed to put together reliable
methods for decoding the contents of both the Server Handshake
packets and Client Credentials packets. Due to the fact that both
packet types contain variable length-strings representing details
such as the server's version and the client's username (added to
the fact that I want to use the MySQL C API) I had to stay away
from c++ strings and remain in the realm of null-terminated
C-strings. Of course, this meant I had to introduce measures for
preventing memory leaks since we're talking about variable length
(dynamic!) strings.
That was quite a headache given the amount of complex
pointer-passing I'm doing, with segfaults rearing their heads
left right and center along the way. However now that I've got
some solid methods for decoding, creating and destroying these
data types, I'm confident that subsequent work on decoding
command and response packets will got far more …
aka, “Better late than never”…..
Back in March 2007, the Boston MySQL User Group (http://mysql.meetup.com/137) watched and heard Brian DeLacey give a tutorial of Ruby on Rails, including its interaction with MySQL using ActiveRecord.
I knew absolutely nothing about Ruby on Rails before attending the presentation, other than Ruby was a language and people were saying that Rails made for easy development. After the presentation, I knew enough to start coding!
Brian is an excellent speaker, and this presentation is long overdue. (I’d tried creating the video before, during and after the MySQL Users Conference back in April, and my application kept crashing. I guess it just needed a break, because I fired it up today and it seemed to save the movie OK. Please let me know if you watch the presentation and something seems wrong).
Enjoy!
…
[Read more]Back in March 2007, the Boston MySQL User Group ( http://mysql.meetup.com/137 ) watched and heard Brian DeLacey give a tutorial of Ruby on Rails, including its interaction with MySQL using ActiveRecord. I knew absolutely nothing about Ruby on Rails before attending the presentation, other than Ruby was a language and people were saying that Rails made for easy development.
After the presentation, I knew enough to start coding! Brian is an excellent speaker, and this presentation is long overdue. (I'd tried creating the video before, during and after the MySQL Users Conference back in April, and my application kept crashing. More »