今年も 日本MySQLユーザ会(MyNA)のブース出しとセミナー開催のために、オープンソースカンファレンス北海道(OSC2011 Hokkaido)に参画しました。 http://www.ospn.jp/osc2011-do/ MyNAとしては(もちろん私個人としても)、OSC Hokkaido へは、昨年に続く2回目の参加です。昨年会場で知り合った方と再会できたりして、2回目ならではの喜びのあったOSCでした。 OSC-Hokkaido では長めの休憩時間に「ブースツアー」というのを ...
The latest from the MySQL community
Ideas, releases, practical guides, and perspectives from the people building with MySQL.
今年も 日本MySQLユーザ会(MyNA)のブース出しとセミナー開催のために、オープンソースカンファレンス北海道(OSC2011
Hokkaido)に参画しました。
http://www.ospn.jp/osc2011-do/
MyNAとしては(もちろん私個人としても)、OSC Hokkaido へは、昨年に続く2回目の参加です。昨年会場で知り合った方と再会できたりして、2回目ならではの喜びのあったOSCでした。
OSC-Hokkaido …
[さらに読む]
when Mysql shutdown or crash, the innodb data will lost in memory
cache,so the data query speed will drop,How to preload the
innodb table and index data into memory cache?
first, mysql provide a command,like myisam "load cache"
command,but now the mysql doesn't provide it.
second,use "select ..." statement to load the mysql innodb
table and index data when we restart the mysql.
if the mysql server includes many datas, you must preload by
multi-process.
the SQL script as following:
#vi initfile.sql
SET SESSION group_concat_max_len=100*1024*1024;
SELECT GROUP_CONCAT(CONCAT('SELECT COUNT(`',column_name,'`) FROM
`',table_schema,'`.`',table_name,'` FORCE INDEX
(`',index_name,'`)') SEPARATOR ' UNION ALL ') INTO @sql FROM
information_schema.statistics WHERE table_schema NOT IN
('information_schema','mysql', …
When we want to row_number() over(partition by ) in MYSQL, but
mysql does not exists this function,how to realize it by
SQL?
the sql example as following:
select id,uri,sequence,url_id,rank from (
select tmp.id,tmp.uri,@rownum:=@rownum+1 as
rnum,sequence,url_id,
if(@pid=tmp.id,@rank:=@rank+1,@rank:=1) as rank,
@pid:=tmp.id
from (
select a.id,a.uri,b.sequence,b.url_id from urls a, url_measure
b
where a.id=b.url_id and b.level=1 order by a.id,exec_time
desc
) tmp ,(select @rownum :=0 , @pid :=0 ,@rank:=0) a ) result
where rank=1 limit 0,5
最近为了解决一技术问题,使用了Force.com Multitenant
Architecture,在此详细说明下Force.com 的架构,具体的白皮书可以从下面的URL获取:(http://wiki.developerforce.com/index.php/Multi_Tenant_Architecture)。
Force.com Multitenant
架构的最大亮点在于,将数据索引化,一个存储数据的表,一个用于索引数据的表,再加上一系列存储元数据的表;每次的业务数据的查询首先查找元数据表,然后再改写成具体的查询语句到具体的数据表和索引中进行联合查询,这样SQL语句的执行计划固定,它一定是一个数据表加上一个索引表的join操作,非常适合于OLTP系统,具体的表ER图如下:
…
mysql version:5.1.55+innodb plugin 1.0.15+use Tmalloc
handlesocet:HandlerSocket-Plugin-for-MySQL-1.0.6-80
mysql and handlesocet configure parameters:
#handlesocket
handlersocket_threads=10
handlersocket_threads_wr=10
handlersocket_port=9998
handlersocket_port_wr=9999
handlersocket_readsize=8192
#innodb
default-storage-engine=INNODB
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so
innodb_flush_method =O_DIRECT
innodb_file_per_table=1
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout=15
innodb_additional_mem_pool_size=100M
innodb_buffer_pool_size =20G
…
@tmaesaka氏からのツイートで知ったのだが、LPI-Japanが見過ごすことが出来ない発言をしている。
PostgreSQL技術者を認定、LPI-Japanが「OSS-DB技術者認定試験」開始 - ITpro
以下、引用。 OSS-DBには、PostgreSQLと米OracleのMySQLがあるが、「特定ベンダーの管理下にあるソフトは真のOSSとは言えない」(LPI-Japanの成井弦理事長、写真)として、今回スタートするOSS-DB ExamではPostgreSQLのみを対象とした。
これはおかしなことだ。一体誰が「特定ベンダーの管理下にあるソフトはOSSではない」などと決めたのだろう?
MySQLはオープンソースソフトウェアです。MySQLはれっきとしたオープンソースソフトウェアだ。ただし、Community Editionに限る。MySQLはデュアルライセンスであり、
構成
[appサーバ] -> [lvs] -> [MySQL]群
- DRでMySQLのスレーブ群にロードバランス
- appサーバはDBコネクションのプーリング、永続化をしている
問題の現象
DBサーバ上ではmysqldへのコネクションが存在するのに、appサーバ上ではコネクションが存在しない。(netstat調べ)
→無用なコネクションが残留するせいで、MySQLのmax_connectionsに達してしまう。
原因
MySQLの世界の無通信時のコネクションのタイムアウトはデフォルトで 28800秒 (8時間)。一方、IPVSの世界の無通信時のタイムアウトはESTABLISHEDなコネクションで900秒 (15分)。
# ipvsadm -Ln --timeout Timeout (tcp tcpfin udp): 900 120 300
…
[さらに読む]構成
[appサーバ] -> [lvs] -> [MySQL]群
- DRでMySQLのスレーブ群にロードバランス
- appサーバはDBコネクションのプーリング、永続化をしている
問題の現象
DBサーバ上ではmysqldへのコネクションが存在するのに、appサーバ上ではコネクションが存在しない。(netstat調べ)
→無用なコネクションが残留するせいで、MySQLのmax_connectionsに達してしまう。
原因
MySQLの世界の無通信時のコネクションのタイムアウトはデフォルトで 28800秒 (8時間)。一方、IPVSの世界の無通信時のタイムアウトはESTABLISHEDなコネクションで900秒 (15分)。
# ipvsadm -Ln --timeout Timeout (tcp tcpfin udp): 900 120 300
…
[さらに読む]