Archives

You are currently viewing archive for 05 September 2007
Category: Web dev
Posted by: hajime osako
MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 7.5.9.3 ロックを取得する読み取り
SELECT LOCK IN SHARE MODE and FOR UPDATE
テーブル型毎のロックの挙動

InnoDB型のREADロックとWRITEロックの取得は、MyISAM型のそれとは大きく異なります。MySQLのトランザクション処理はMVCC(Multi Version Concurrency Control: 多版型同時実行制御)を基に行われるので、WRITEロックとREADロックは競合しません。
データ操作(INSERT, UPDATE, DELETE)はデータ検索(SELECT)の実行をブロックしませんし、逆もまた然りです(補足 1)。特に、SELECT文の実行は一切ブロックされません。

次に、WRITEロック間の関係ですが、一意性(UNIQUE)制約もしくは主キー(PRIMARY KEY)制約を持つテーブルの場合は行レベルロック、それ以外のテーブルではテーブルロックが取得されます。
これはMySQLの実装方式に起因するもので、MySQL特有の挙動です。

SELECT FOR UPDATE文で排他的ロックを、SELECT LOCK IN SHARE MODE文で共有ロックを設定することができます。これらはトランザクションブロック内でのみ実行されます。

IN SHARE MODE と FOR UPDATE 読み取りによって設定されたロックは、トランザクションがコミットされたりロールバックされたりした時にリリースされます。


MySQL SELECT文

SELECT * FROM table_a USE INDEX (use_index_name);
SELECT * FROM table_a IGNORE INDEX (ignore_index_name);
SELECT col1, col2, col3 FROM table_a ORDER BY 1, 2;
SELECT STRAIGHT_JOIN * FROM T1,T2,T3;
SELECT HIGH_PRIORITY * FROM table_a;
SELECT SQL_BIG_RESULT * FROM table_a GROUP BY col1;
SELECT SQL_BUFFER_RESULT * FROM table_a;
SELECT SQL_SMALL_RESULT * FROM table_a GROUP BY col1;
SELECT SQL_CALC_FOUND_ROWS * FROM table_a LIMIT 100;
SELECT FOUND_ROWS();
SELECT * FROM table_a FOR UPDATE;
Category: Web dev
Posted by: hajime osako
DbEdit update site http://dbedit.sourceforge.net/update
QuickRex update site http://www.bastian-bergerhoff.com/eclipse/features/
eSpell download site http://www.bdaum.de/eclipse/
SVNKit update site http://svnkit.com/
Subclipse update site http://subclipse.tigris.org/update_1.2.x
SimpleTest download site http://simpletest.org/en/extension_eclipse.html
EMF, GEF, VE, WST(WTP) and XSD from Callisto discovery site
PDT update site http://downloads.zend.com/pdt
JSEclipse download site http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs%5Fjseclipse
Category: Linux tips
Posted by: hajime osako
Use Evolution with Microsoft Exchange : Ubuntu (6.06 / 6.10) : Ubuntu Tutorials : Dapper - Edgy - Feisty - Gutsy

Server Type: “Microsoft Exchange”
Username: domain/username (ie; your windows domain and user account)
OWA URL: The URL for your office / domain webmail. (ie; https://webmail.domain.com/exchange/)
Category: Linux tips
Posted by: hajime osako
[Ctrl] + [Alt] + [F1] : Change to CUI (command console)
[Ctrl] + [Alt] + [L] : Lock the screen
[Alt] + [F2] : Run command
Category: Linux tips
Posted by: hajime osako
How To Use NTFS Drives/Partitions Under Ubuntu Edgy Eft | HowtoForge - Linux Howtos and Tutorials
$ sudo vi /etc/apt/sources.list
Add deb http://flomertens.keo.in/ubuntu/ edgy main main-all
$ sudo apt-get update
$ sudo apt-get install pmount
$ sudo apt-get install ntfs-3g
$ sudo mkdir /media/windows
$ sudo mount -t ntfs-3g /dev/sdd1 /media/windows (-o force)
Category: Linux tips
Posted by: hajime osako
How To Install VMware Server On Ubuntu 7.04 (Feisty Fawn) | HowtoForge - Linux Howtos and Tutorials
How-to for 8.04

# sudo vmware-install.pl

Before running VMware Server for the first time, you need to configure it by invoking the following command: "/usr/bin/vmware-config.pl". Do you want this program to invoke the command for you now? [yes] NO

# sudo ./runme.pl (vmware-any-any-updateXXX)
This time, we can run vmware-config.pl.