Today,select count(*) for a table,used time as following:
--first run:
select count(*) from mt_data;
+----------+
| count(*) |
+----------+
| 9750353 |
+----------+
1 row in set (1 min 14.72 sec)
--second run:
mysql> select count(*) from mt_data;
+----------+
| count(*) |
+----------+
| 9750353 |
+----------+
1 row in set (4.27 sec)
used time is too much, how to improve the select count(*)
performance ?
first,show the index for this tables, the result as
following:
Create Table: CREATE TABLE `mt_data` (
`guid` varchar(36) NOT NULL,
`orgid` int(9) NOT NULL,
`tabid` int(9) NOT NULL,
`name` varchar(128) NOT NULL,
`IsDeleted` char(1) NOT NULL,
…
前回のエントリでは、真のオープンソースとは何か?と題して、LPI-Japanがオープンソースの定義を間違えているという点を指摘した。今回はさらに別の角度から、この認定試験の名前を変更するべき理由について考えてみたい。
1. オープンソースなRDBMSはPostgreSQLだけじゃないオープンソースのRDBMSと言えば、日本ではMySQLとPostgreSQLが人気を二分している。*1Googleで検索された回数であれば、MySQLのほうがやや有利だろうか。Googleの検索回数が多いからそれがどうしたと言われそうだが、日本で認知されているオープンソースRDBMSがPostgreSQLだけではないことは確かだろう。
オープンソースなRDBMSということで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', …
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はデュアルライセンスであり、
JUGEMテーマ:コンピュータ
モダンなサーバで力を発揮するMySQL 5.1 + InnoDB Plugin !
これまで多くのブログで紹介されてきました。
・MySQL 5.1.38リリース InnoDB Plugin追加!(SH2の日記)
・InnoDB
Pluginことはじめ。快適ストレージエンジン生活はじまる!(漢のコンピュータ道)
・MySQL 5.1.46リリース InnoDB Pluginが正式版に(SH2の日記)
InnoDB Pluginはその後もバグの修正・パフォーマンスの向上を継続しており、最新版はMySQL …
Spiderストレージエンジンのバージョン 2.25(beta)とVartical Partitioningのバージョン
0.14(beta)をリリースしました。
Spiderストレージエンジンは、database sharding用のストレージエンジンです。
http://spiderformysql.com/
Vertical Partitioningストレージエンジンは、テーブルのVertical
Partitioning用のストレージエンジンです。
http://launchpad.net/vpformysql
今回の主な変更は以下です。
Spider
・テーブルパラメータに「skip_default_condition」「direct_order_limit」を追加しました。
・サーバパラメータに「spider_skip_default_condition」「spider_direct_order_limit」を追加しました。
「direct_order_limit」を利用すると、order …