interesting benchmark at tweakers.net

2006-12-18 Thread David Sparks
I noticed an interesting benchmark at tweakers.net that shows mysql not
scaling very well on hyperthreading and multicore cpus (see links at end
of email).

Does anyone know what engine they are using for their tests? (Innodb,
myisam, berkdb heheh)

In fact they seem to show that postgres is a faster db overall.  This
goes against my personal experience where I benchmarked a real world app
we have and found mysql 10 to 100 times faster, and that was ignoring
both postgres poor connection performance and the hideous vacuum
rigmarole.  But that was 2 years ago, maybe postgres performance has
finally caught up?

Any other recent benchmark links?

http://tweakers.net/reviews/657

http://tweakers.net/reviews/646/10

ds

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Interview questions?

2006-12-18 Thread David T. Ashley

On 12/18/06, Peter Smith <[EMAIL PROTECTED]> wrote:


Hello MySQLers,

Since I'm mildly technical and I know how to spell orakle,
I've been asked to write up some technical interview questions
for a MySQL position at a startup.

Can any of you help me out?



Your apparent focus on doing what is best for the company will rob you of
the opportunity to have fun.  You need to include at least one question that
the interview candidate has no reasonable hope of answering, just for your
own amusement.

How about:

How do applications of the latin1_german1_ci and latin1_german2_ci collation
differ?  Why and how are dictionary sort order and phone book sort order in
the German language different?

Dave.


Core dump in mysql_real_connect( )

2006-12-18 Thread Nishant Gupta

Hello All

If I compile my code with Purify (a memory tool), I get a core dump in
mysql_real connect. at teh follwing path :

Program received signal SIGSEGV, Segmentation fault.
0x007acb37 in mysql_manager_fetch_line ()
  from
/opt/Rational/releases/purecov.i386_linux2.2003a.06.15//cache/getz/usr/lib/mysql/libmysqlclient_r.so.14_pure_p0_c0_104011552_269-5EL_32
(gdb) bt
#0  0x007acb37 in mysql_manager_fetch_line ()
  from
/opt/Rational/releases/purecov.i386_linux2.2003a.06.15//cache/getz/usr/lib/mysql/libmysqlclient_r.so.14_pure_p0_c0_104011552_269-5EL_32
#1  0x007ca960 in my_strnncoll_gbk ()
  from
/opt/Rational/releases/purecov.i386_linux2.2003a.06.15//cache/getz/usr/lib/mysql/libmysqlclient_r.so.14_pure_p0_c0_104011552_269-5EL_32
#2  0x007cad8a in my_xml_parse ()
  from
/opt/Rational/releases/purecov.i386_linux2.2003a.06.15//cache/getz/usr/lib/mysql/libmysqlclient_r.so.14_pure_p0_c0_104011552_269-5EL_32
#3  0x007bd2e3 in my_parse_charset_xml ()
  from
/opt/Rational/releases/purecov.i386_linux2.2003a.06.15//cache/getz/usr/lib/mysql/libmysqlclient_r.so.14_pure_p0_c0_104011552_269-5EL_32
#4  0x007b3e73 in my_charset_same ()
  from
/opt/Rational/releases/purecov.i386_linux2.2003a.06.15//cache/getz/usr/lib/mysql/libmysqlclient_r.so.14_pure_p0_c0_104011552_269-5EL_32
#5  0x007b40ea in add_compiled_collation ()
  from
/opt/Rational/releases/purecov.i386_linux2.2003a.06.15//cache/getz/usr/lib/mysql/libmysqlclient_r.so.14_pure_p0_c0_104011552_269-5EL_32
#6  0x007b4b03 in get_charset_by_csname ()
  from
/opt/Rational/releases/purecov.i386_linux2.2003a.06.15//cache/getz/usr/lib/mysql/libmysqlclient_r.so.14_pure_p0_c0_104011552_269-5EL_32
#7  0x007cec07 in mysql_real_connect ()
  from
/opt/Rational/releases/purecov.i386_linux2.2003a.06.15//cache/getz/usr/lib/mysql/libmysqlclient_r.so.14_pure_p0_c0_104011552_269-5EL_32
#8  0x0807fe09 in main () at test.c:37

Here is the snippet of my code :

   system("mysqld_safe");
   mysql_server_init(num_elements, server_options, server_groups);
   mysql = mysql_init(NULL);
   mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "libmysqld_client");
   mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);
   mysql_real_connect(mysql, "127.0.0.1",NULL,NULL, "audit", 0,NULL,0);

I also checked and found the mysql pointer to be correct just before
mysql_real_connect( ) call.

But if i compile it without Purify, the whole code works absolutely fine.

Any idea what might be triggering this crash?


--
Bye for now,
Nishant



God Gave Me Nothing I Wanted,  He Gave Me Everything I Needed !


Re: Why innodb can give the same X gap lock to two transactions?

2006-12-18 Thread Leo Huang

Heikki,

Thanks for you help!

I also read the comment in file of innodbase/lock/lock0lock.c in which
you said "Different transaction can have conflicting locks set on the
gap at the same time.". I think that the innodb gap lock's behavior
just like an IX lock's behavior. When a transaction want to insert a
record, it must also get the LOCK_INSERT_INTENTION of the gap, isn't
it?

I have read some source code in innodbase/lock/lock0lock.c. But I
can't get a clear view of innodb lock modes and lock ways?  Can you
give me more information?

PS: hi, Eric, Our MySQL version is 4.1.18. Thx!



--
Best regards,
Leo Huang

2006/12/18, Heikki Tuuri <[EMAIL PROTECTED]>:

Leo,

'gap' locks in InnoDB are purely 'inhibitive': they block inserts to the
locked gap. But they do not give the holder of the lock any right to
insert. Several transactions can own X-lock on the same gap. The reason
why we let 'conflicting' locks of different transactions on a gap is
that this way there are less lock waits and less deadlocks.

In Eric Bergen's example, there was a row with id 6, and there the locks
were not gap locks.

Best regards,

Heikki
Oracle Corp./Innobase Oy
InnoDB - transactions, row level locking, and foreign keys for MySQL
InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up
MyISAM tables
http://www.innodb.com/order.php

.
From: leo huang Date: December 12 2006 7:46am
Subject: Why innodb can give the same X gap lock to two transactions?

Get Plain Text

Hi, all,

We have an innodb table named test. It has some rows as follow:
mysql> show create table test;
+---+-+
| Table | Create Table

 |
+---+-+
| test  | CREATE TABLE `test` (
   `id` int(11) NOT NULL default '0',
   `name` char(20) default NULL,
   PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+---+-+
1 row in set (1.75 sec)

mysql> select * from test;
++-+
| id | name|
++-+
|  1 | huangjy |
|  2 | huangjy |
|  3 | huangjy |
|  4 | huangjy |
|  5 | huangjy |
|  7 | huangjy |
|  8 | huangjy |
|  9 | huangjy |
++-+
8 rows in set (1.98 sec)

When I start two transactions as follow:

Transaction 1:
mysql> begin;
Query OK, 0 rows affected (2.51 sec)

mysql> select * from test where id=6 for update;
Empty set (2.17 sec)

Transaction 2:
mysql> begin;
Query OK, 0 rows affected (1.56 sec)

mysql> select * from test where id=6 for update;
Empty set (2.27 sec)

Now, I use "show engine innodb status" to see the innodb lock status.
The output as follow:


TRANSACTIONS

Trx id counter 0 5168907
Purge done for trx's n:o < 0 5168898 undo n:o < 0 0
History list length 2
Total number of lock structs in row lock hash table 2
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0 0, not started, process no 30668, OS thread id 2484620208
MySQL thread id 2, query id 46 localhost root
show engine innodb status
---TRANSACTION 0 5168906, ACTIVE 83 sec, process no 30668, OS thread
id 2484820912
2 lock struct(s), heap size 320
MySQL thread id 1, query id 45 localhost root
TABLE LOCK table `test/test` trx id 0 5168906 lock mode IX
RECORD LOCKS space id 0 page no 54 n bits 80 index `PRIMARY` of table
`test/test` trx id 0 5168906 lock_mode X locks gap before rec
Record lock, heap no 8 PHYSICAL RECORD: n_fields 4; 1-byte offs TRUE;
info bits 0
  0: len 4; hex 8007; asc ;; 1: len 6; hex 004eb50c; asc
N  ;; 2: len 7; hex 008013285c; asc  (\;; 3: len 20; hex
6875616e676a7920202020202020202020202020; asc huangjy ;;

---TRANSACTION 0 5168905, ACTIVE 120 sec, process no 30668, OS thread
id 2484419504
2 lock struct(s), heap size 320
MySQL thread id 3, query id 43 localhost root
TABLE LOCK table `test/test` trx id 0 5168905 lock mode IX
RECORD LOCKS space id 0 page no 54 n bits 80 index `PRIMARY` of table
`test/test` trx id 0 5168905 lock_mode X locks gap before rec
Record lock, heap no 8 PHYSICAL RECORD: n_fields 4; 1-byte offs TRUE;
info bits 0
  0: len 4; hex 8007; asc ;; 1: len 6; hex 004eb50c; asc
N  ;; 2: len 7; hex 008013285c; asc  (\;; 3: len 20; hex
6875616e676a7920202020202020202020202020; asc huangjy
  ...

As you can see, TRANSACTION 0 5168906 and TRANSACTION 0 5168905 both
get the X gap locks on the same record. The MySQL Manual said that X
lock is an exclusive lock. Why two transactions can get the same X
lock?

Any comment will be welcomed?

Best regards,
Leo Huang

--
MySQL General Mailing List
For list archives: http://lists.mysql.com

Re: Interview questions?

2006-12-18 Thread Peter Smith

Well,

The hiring mgr told me that he is looking for an Oracle DBA
who also knows MySQL.

To me that is a short sentence but says a lot since the
term Oracle DBA is kind of a loaded term.

Generally it someone with a large DB/data center kind of a slant.

Less of a programmer and more of an operations person.

A good Oracle DBA is usually good at performance tuning
large hairy sql statements.

Also a good Oracle DBA knows quite a bit about UNIX sysadmin
stuff and storage admin stuff.

Generally an Oracle DBA is weak when dealing with web servers and
php compared to a lot of strong MySQL techies.

That add any substance to my question?


On 12/18/06, Chris White <[EMAIL PROTECTED]> wrote:


On Monday 18 December 2006 18:23, Peter Smith wrote:
>  Hello MySQLers,
>
> Since I'm mildly technical and I know how to spell orakle,
> I've been asked to write up some technical interview questions
> for a MySQL position at a startup.
>
> Can any of you help me out?
>
> I did some searching via google and did not find anything all that
> good.

Depends what you're looking for in your candidates.  There are the "Do you
know how to program applications that use a database" types and "Describe
the
3 main levels of normalization" types and "You go to create a foreign key
constraint on an InnoDb table and it fails, what things should you look
for
to solve the issue?" types.  That's why it's really hard to find anything
like that on google.  The best thing to do would be describe what exactly
this person will be doing.

--
Chris White
PHP Programmer
Interfuel

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:
http://lists.mysql.com/[EMAIL PROTECTED]





--
Peter Smith
[EMAIL PROTECTED]
http://GoodJobFastCar.com


Re: Interview questions?

2006-12-18 Thread Chris White
On Monday 18 December 2006 18:23, Peter Smith wrote:
>  Hello MySQLers,
>
> Since I'm mildly technical and I know how to spell orakle,
> I've been asked to write up some technical interview questions
> for a MySQL position at a startup.
>
> Can any of you help me out?
>
> I did some searching via google and did not find anything all that
> good.

Depends what you're looking for in your candidates.  There are the "Do you 
know how to program applications that use a database" types and "Describe the 
3 main levels of normalization" types and "You go to create a foreign key 
constraint on an InnoDb table and it fails, what things should you look for 
to solve the issue?" types.  That's why it's really hard to find anything 
like that on google.  The best thing to do would be describe what exactly 
this person will be doing.

-- 
Chris White
PHP Programmer
Interfuel

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Interview questions?

2006-12-18 Thread Peter Smith

Hello MySQLers,

Since I'm mildly technical and I know how to spell orakle,
I've been asked to write up some technical interview questions
for a MySQL position at a startup.

Can any of you help me out?

I did some searching via google and did not find anything all that
good.

I'm tempted to just go here:
http://dev.mysql.com/doc/refman/5.1/en/ix01.html

And make up some of my own questions.

Here's one:

What is mysqlcheck?
When would I use it?

Here's another:

CHECK TABLE
What is it?

I searched for MySQL mail lists.
I only found 1 which looks significant:

mysql@lists.mysql.com

Are there others well suited for newbs?


...Peter
--
Peter Smith
[EMAIL PROTECTED]
http://GoodJobFastCar.com


RE: leading the technological bandwagon

2006-12-18 Thread Jay Blanchard
[snip]
I recently last week Had and experience with an Very small Company,
where as
they had around 15 Machines all hooked "Star topology" and a central iis
ASP
Web server that only showed the date, and a few small utilities when
addressed  To it, now there entire Operation was based upon Excel,
everything "not joking" I mean everything, was a file share to an Folder
("around 90 Folders") in which they had probably 200 + excel sheets in
each
one u name something u need to do in business I guarantee there was a
excel
sheet for it, repetitive sheets for Different Operations, all Sheets
linked
to one another thru references in excel, excel97 Mind u, I was there on
a
Consulting call, to inform them of a better way to update / Operate
there
business  "They ended up saying they liked there Current way better" it
makes more sence to them and Only wanted me to link 10 more sheets to
what
they already had and add a few more file shares, "of Course I refused
this
Project "  and walked out Laughing my ass off in the car" 
[/snip]

Seriously?

 

   

 


-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.15.24/592 - Release Date:
12/18/2006
 

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



leading the technological bandwagon

2006-12-18 Thread Brian E Boothe
I recently last week Had and experience with an Very small Company, where as
they had around 15 Machines all hooked "Star topology" and a central iis ASP
Web server that only showed the date, and a few small utilities when
addressed  To it, now there entire Operation was based upon Excel,
everything "not joking" I mean everything, was a file share to an Folder
("around 90 Folders") in which they had probably 200 + excel sheets in each
one u name something u need to do in business I guarantee there was a excel
sheet for it, repetitive sheets for Different Operations, all Sheets linked
to one another thru references in excel, excel97 Mind u, I was there on a
Consulting call, to inform them of a better way to update / Operate there
business  "They ended up saying they liked there Current way better" it
makes more sence to them and Only wanted me to link 10 more sheets to what
they already had and add a few more file shares, "of Course I refused this
Project "  and walked out Laughing my ass off in the car" 

 

   

 


-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.15.24/592 - Release Date: 12/18/2006
 


Re: Re: avg() AND limit

2006-12-18 Thread Dan Buettner

I'm sure there is ... here's one way I can think of, a two-step
process but doable in 3.23 I think.  Use a server-side variable and a
combination of the LIMIT and OFFSET features.

SELECT id FROM items ORDER BY DATE DESC LIMIT 1 OFFSET 10 INTO @myid

then

SELECT AVG(cost)
FROM items
WHERE id >= @myid

this assumes that going by date and id is valid for your situation.
Hopefully you can tweak that a little if not.

Also, the LIMIT/OFFSET can be used as "LIMIT 10,1" instead of "LIMIT 1
OFFSET 10".  I don't know which form will be valid in 3.23, sorry!

-Dan



On 12/18/06, Richard Reina <[EMAIL PROTECTED]> wrote:

Dan,

 Thank you very much for the reply.  Is there a way to do it with version
3.23.54?

Dan Buettner <[EMAIL PROTECTED]> wrote:
 Yes, the LIMIT function affects number of rows returned, not number of
rows evaluated.

If you're on 4.1 or later, you could use a subselect. Assuming you
have an ID field in your table, something like this:

SELECT AVG(cost)
FROM items
WHERE id IN (SELECT id FROM items ORDER BY date DESC LIMIT 10)

HTH,
Dan


On 12/18/06, Richard Reina wrote:
> Good day all! I have query like the one below that I uses to get the
average cost over the last six months. As is it works fine but, however now
I want to limit it to the last 10 rows in order to get a glimpse of the most
recent cost data. If I add ORDER BY date DESC limit 10 the average does not
change. Does anyone know how I can achieve the desired result?
>
> Thanks in advance.
>
> SELECT AVG(cost)
> FROM items
> WHERE UNIX_TIMESTAMP(date) >= (UNIX_TIMESTAMP(CURDATE() - 15724800)
>
>
>
>
>
> Your beliefs become your thoughts. Your thoughts become your words. Your
words become your actions. Your actions become your habits. Your habits
become your values. Your values become your destiny. -- Mahatma Gandhi
>



Your beliefs become your thoughts. Your thoughts become your words. Your
words become your actions. Your actions become your habits. Your habits
become your values. Your values become your destiny. -- Mahatma Gandhi


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: bug

2006-12-18 Thread Eric Bergen

Ajay,

To lookup the string for an error code use the perror utility:
$ perror 127
MySQL error code 127: Record-file is crashed

Try running repair table.

See http://dev.mysql.com/doc/refman/5.0/en/repair.html for more details.

-Eric

On 12/17/06, ajay roy <[EMAIL PROTECTED]> wrote:

i am getting the error somthing like that

GET ERROR(127) TABLE HANDLER PROBLEM

i am sorry that i coulde not take mysqlbug script

thanks


ajay,hyderabad,india

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]





--
Eric Bergen
[EMAIL PROTECTED]
http://www.provenscaling.com

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: avg() AND limit

2006-12-18 Thread Dan Buettner

Yes, the LIMIT function affects number of rows returned, not number of
rows evaluated.

If you're on 4.1 or later, you could use a subselect.  Assuming you
have an ID field in your table, something like this:

SELECT AVG(cost)
FROM items
WHERE id IN (SELECT id FROM items ORDER BY date DESC LIMIT 10)

HTH,
Dan


On 12/18/06, Richard Reina <[EMAIL PROTECTED]> wrote:

Good day all!  I have query like the one below that I uses to get the average 
cost over the last six months.  As is it works fine but, however now I want to 
limit it to the last 10 rows in order to get a glimpse of the most recent cost 
data. If I add ORDER BY date DESC limit 10 the average does not change.  Does 
anyone know how I can achieve the desired result?

 Thanks in advance.

 SELECT AVG(cost)
 FROM items
 WHERE UNIX_TIMESTAMP(date) >= (UNIX_TIMESTAMP(CURDATE() - 15724800)





Your beliefs become your thoughts.  Your thoughts become your words.  Your 
words become your actions.  Your actions become your habits.  Your habits 
become your values.  Your values become your destiny.  -- Mahatma Gandhi



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Selecting just the first 2 values

2006-12-18 Thread Peter Bradley

Ysgrifennodd goose:

However how do I tell it to select JUST the first 2 entries for each
channel??
  

Does this help:

http://dev.mysql.com/doc/refman/5.0/en/select.html

Look (on the page) for the LIMIT clause.  Not sure if it's what you want.


Peter


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Why innodb can give the same X gap lock to two transactions?

2006-12-18 Thread Heikki Tuuri

Leo,

'gap' locks in InnoDB are purely 'inhibitive': they block inserts to the 
locked gap. But they do not give the holder of the lock any right to 
insert. Several transactions can own X-lock on the same gap. The reason 
why we let 'conflicting' locks of different transactions on a gap is 
that this way there are less lock waits and less deadlocks.


In Eric Bergen's example, there was a row with id 6, and there the locks 
were not gap locks.


Best regards,

Heikki
Oracle Corp./Innobase Oy
InnoDB - transactions, row level locking, and foreign keys for MySQL
InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up 
MyISAM tables

http://www.innodb.com/order.php

.
From: leo huang Date: December 12 2006 7:46am
Subject: Why innodb can give the same X gap lock to two transactions?

Get Plain Text

Hi, all,

We have an innodb table named test. It has some rows as follow:
mysql> show create table test;
+---+-+
| Table | Create Table

|
+---+-+
| test  | CREATE TABLE `test` (
  `id` int(11) NOT NULL default '0',
  `name` char(20) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+---+-+
1 row in set (1.75 sec)

mysql> select * from test;
++-+
| id | name|
++-+
|  1 | huangjy |
|  2 | huangjy |
|  3 | huangjy |
|  4 | huangjy |
|  5 | huangjy |
|  7 | huangjy |
|  8 | huangjy |
|  9 | huangjy |
++-+
8 rows in set (1.98 sec)

When I start two transactions as follow:

Transaction 1:
mysql> begin;
Query OK, 0 rows affected (2.51 sec)

mysql> select * from test where id=6 for update;
Empty set (2.17 sec)

Transaction 2:
mysql> begin;
Query OK, 0 rows affected (1.56 sec)

mysql> select * from test where id=6 for update;
Empty set (2.27 sec)

Now, I use "show engine innodb status" to see the innodb lock status.
The output as follow:


TRANSACTIONS

Trx id counter 0 5168907
Purge done for trx's n:o < 0 5168898 undo n:o < 0 0
History list length 2
Total number of lock structs in row lock hash table 2
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0 0, not started, process no 30668, OS thread id 2484620208
MySQL thread id 2, query id 46 localhost root
show engine innodb status
---TRANSACTION 0 5168906, ACTIVE 83 sec, process no 30668, OS thread
id 2484820912
2 lock struct(s), heap size 320
MySQL thread id 1, query id 45 localhost root
TABLE LOCK table `test/test` trx id 0 5168906 lock mode IX
RECORD LOCKS space id 0 page no 54 n bits 80 index `PRIMARY` of table
`test/test` trx id 0 5168906 lock_mode X locks gap before rec
Record lock, heap no 8 PHYSICAL RECORD: n_fields 4; 1-byte offs TRUE;
info bits 0
 0: len 4; hex 8007; asc ;; 1: len 6; hex 004eb50c; asc
N  ;; 2: len 7; hex 008013285c; asc  (\;; 3: len 20; hex
6875616e676a7920202020202020202020202020; asc huangjy ;;

---TRANSACTION 0 5168905, ACTIVE 120 sec, process no 30668, OS thread
id 2484419504
2 lock struct(s), heap size 320
MySQL thread id 3, query id 43 localhost root
TABLE LOCK table `test/test` trx id 0 5168905 lock mode IX
RECORD LOCKS space id 0 page no 54 n bits 80 index `PRIMARY` of table
`test/test` trx id 0 5168905 lock_mode X locks gap before rec
Record lock, heap no 8 PHYSICAL RECORD: n_fields 4; 1-byte offs TRUE;
info bits 0
 0: len 4; hex 8007; asc ;; 1: len 6; hex 004eb50c; asc
N  ;; 2: len 7; hex 008013285c; asc  (\;; 3: len 20; hex
6875616e676a7920202020202020202020202020; asc huangjy
 ...

As you can see, TRANSACTION 0 5168906 and TRANSACTION 0 5168905 both
get the X gap locks on the same record. The MySQL Manual said that X
lock is an exclusive lock. Why two transactions can get the same X
lock?

Any comment will be welcomed?

Best regards,
Leo Huang

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: database design help

2006-12-18 Thread Jerry Schwartz
A lot depends upon the sophistication of the program you write to manage
this. I doubt there is any way to create something so sophisticated with
just SQL.

My first thought would be to use three tables. Make sure every user has a
unique use ID. The users' passwords would be stored in the table of users
(I'm assuming that the passwords are unique to users, rather than groups.)

user_id autoincrement
user_name
user_pass


Each group would also have a unique group id. The table of groups would only
contain three fields:

group_id autoincrement
owner's user id
group_name

This lets you find each user's owned groups. The name field is so that a
user can readily see which group is which in a human-readable way.

Then you want a table of group members, again with only two fields:

group_id
member_id

Now to find a user's groups, you look for the user_id in the group table. To
find its members, you look in the group member table. You can also work
backwards to find all of the groups that a user belongs to by starting from
the other direction.

The password checking for managing a user's groups would be at the
application level.

You'd have one record

Regards,

Jerry Schwartz
Global Information Incorporated
195 Farmington Ave.
Farmington, CT 06032

860.674.8796 / FAX: 860.674.8341


> -Original Message-
> From: ppywriw [mailto:[EMAIL PROTECTED]
> Sent: Saturday, December 16, 2006 11:54 AM
> To: mysql@lists.mysql.com
> Subject: database design help
>
>
> Hiya,
>
> Real easy quick question.
> I need to design a database which holds users with email,
> name and some
> other details.
> I also want each user to be able to create one or more groups
> of users,
> owned by themselves.
> What would be the best design approach?
>
> So far i have a table for the users which stores their
> personal details, but
> i dont know where to go from here to create the groups?
> Create a new table
> for every group? The group would just contain a list of the
> users emails in
> that group.
> Or would i create a new table for the groups and attach a
> password field on
> it so only the user that created it could access it?
>
> A very newbie question i know, but i am one, i'll admit it.
>
> Any help would be apprectiated.
>
> Thanks
>
> John
> --
> View this message in context:
> http://www.nabble.com/database-design-help-tf2832533.html#a7908028
> Sent from the MySQL - General mailing list archive at Nabble.com.
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
> http://lists.mysql.com/[EMAIL PROTECTED]
>
>




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Setting up version 5

2006-12-18 Thread Duncan Hill
On Monday 18 December 2006 13:10, Karl Larsen wrote:
> Is there a paper I can d/l that covers intalling MYSQL on Red Hat
> Linux?

http://dev.mysql.com/doc/refman/5.1/en/linux-rpm.html

perhaps?
-- 
Scanned by iCritical.

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Selecting just the first 2 values

2006-12-18 Thread Adrian Bruce

add "LIMIT 2" to the end of the statement

goose wrote:

Hi All,

I have the following SQL statement

SELECT 
	channel.channel_name, program_title, start_time, finish_time
FROM 
	program, channel 
WHERE 
	program.channel_id='3'

AND
	program.channel_id=channel.channel_id 
UNION
SELECT 
	channel.channel_name, program_title, start_time, finish_time
FROM 
	program, channel 
WHERE 
	program.channel_id='2'
AND 
	program.channel_id=channel.channel_id;


This produces this:

http://pastebin.ca/283519

However how do I tell it to select JUST the first 2 entries for each
channel??
  


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Setting up version 5

2006-12-18 Thread Karl Larsen

   Is there a paper I can d/l that covers intalling MYSQL on Red Hat Linux?

Karl Larsen


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Selecting just the first 2 values

2006-12-18 Thread goose

Hi All,

I have the following SQL statement

SELECT 
channel.channel_name, program_title, start_time, finish_time
FROM 
program, channel 
WHERE 
program.channel_id='3'
AND
program.channel_id=channel.channel_id 
UNION
SELECT 
channel.channel_name, program_title, start_time, finish_time
FROM 
program, channel 
WHERE 
program.channel_id='2'
AND 
program.channel_id=channel.channel_id;

This produces this:

http://pastebin.ca/283519

However how do I tell it to select JUST the first 2 entries for each
channel??
-- 
View this message in context: 
http://www.nabble.com/Selecting-just-the-first-2-values-tf2839705.html#a7928211
Sent from the MySQL - General mailing list archive at Nabble.com.


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: innodb_buffer_pool_size. How to setup with more than 5G ?

2006-12-18 Thread Juan Eduardo Moreno

Remigiusz,

If you work with 32bit OS you need apply hugemem package for work with big
memory settings.


I work with 64bit OS and you don`t need apply any package. In order to add
more memory for the Innodb using innodb_buffer_pool_size you don`t have any
restrictions. You can set 10G, 20G depend of your phisical memory.

Now, for the innodb_log_file_size, the combined size of the InnoDB log files
must not exceed 4 GB. If you
have 2 log files, you can make each at most 2000 MB in size.

When you startup your MySQL using innodb, in your my.cnf you can set the
variable innodb_log_files_in_group. For example, if your set
innodb_log_files_in_group=2
( ib_log_file001, ib_log_file002 are created) the total size must not exceed
4G.

Regards,
Juan


On 12/18/06, Remigiusz Soko?owski <[EMAIL PROTECTED]> wrote:


Uz.ytkownik Juan Eduardo Moreno napisa?:
> Hi everyone!!
>
>
> Normally we can set the .._buffer_pool_size up to 50 - 80 % of RAM
> innodb_buffer_pool_size = 50% of phisical memory.
>
> And
>
> # Set .._log_file_size to 25 % of buffer pool size
> innodb_log_file_size = 25% of buffer pool size
>
> Now, we installed a machine using Linux Redhat ES with 16G of RAM.
> When try
> to configure, for example 50% of ram ( 8G) in the
> innodb_buffer_pool_size,
> the Innodb and MySQL startup but not create the innodb log file size.
>
> It`s necessary use any special configuration in order to use 50-80% of
> 16G
> RAM in the Inno_buffer_pool_size?. Hugemem for OS or something for
> innodb/mysql?.
>
> Today we only config 5G in the innodb_buffer_pool_size.
did You change settings for log file size, when You added memory?



--
---
Remigiusz Sokolowski <[EMAIL PROTECTED]>
WP/PTI/DIP/ZAB (+04858) 52 15 770
MySQL  v.  4.x
Oracle v. 10.x
---




Re: innodb_buffer_pool_size. How to setup with more than 5G ?

2006-12-18 Thread Remigiusz Soko?owski

Uz.ytkownik Juan Eduardo Moreno napisa?:

Hi everyone!!


Normally we can set the .._buffer_pool_size up to 50 - 80 % of RAM
innodb_buffer_pool_size = 50% of phisical memory.

And

# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 25% of buffer pool size

Now, we installed a machine using Linux Redhat ES with 16G of RAM. 
When try
to configure, for example 50% of ram ( 8G) in the 
innodb_buffer_pool_size,

the Innodb and MySQL startup but not create the innodb log file size.

It`s necessary use any special configuration in order to use 50-80% of 
16G

RAM in the Inno_buffer_pool_size?. Hugemem for OS or something for
innodb/mysql?.

Today we only config 5G in the innodb_buffer_pool_size.

did You change settings for log file size, when You added memory?



--
---
Remigiusz Sokolowski <[EMAIL PROTECTED]>
WP/PTI/DIP/ZAB (+04858) 52 15 770
MySQL  v.  4.x
Oracle v. 10.x
---


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]