我的實驗機是裝在 vmware 裡的
DATABASE
Q. mysql 的 store procedure 能看得到嗎?
看有那些 procedures
SHOW PROCEDURE STATUS
看該 procedure 的內容
SHOW CREATE PROCEDURE
改 mysql 欄位寬
ALTER TABLE `tbl_item` CHANGE `objno` `objno` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
[php] 讀 CSV 檔
if ( empty($_SERVER["DOCUMENT_ROOT"]) ) $DOC_ROOT="/m1/root";
else $DOC_ROOT=$_SERVER["DOCUMENT_ROOT"];
include $DOC_ROOT."/db.inc.php";
$filename="test_data.dat";
$filename="d_0416.dat";
$max_aline=1000;
if ( !$__db_mysql=@mysql_connect($__config['host'],$__config['user'],$__config['pass'],FALSE, MYSQL_CLIENT_COMPRESS) ) {
debug_log($process_log,"fail on connect db,0");
die('fail on connect db,0');
}
mysql_select_db('demo',$__db_mysql);
mysql_query("set names big5", $__db_mysql);
setlocale(LC_ALL,'zh_TW.Big5');
$fp=fopen($filename,"r");
$cnt=0;
while ( $data=fgetcsv($fp,1000) ) {
if ( count($data)!=48 ) continue;
unset( $f_name );
unset( $f_data );
$f_data[]=0;
foreach ($data as $k => $v) {
$f_name[]="f_".$k;
$f_data[]=sprintf("'%s'",substr($v,0,200));
}
$f_data[]=time();
$sql=sprintf("insert into user2 values (%s)",implode(',',$f_data));
printf("%d\n",$cnt);
$result=mysql_query($sql, $__db_mysql);
$cnt++;
}
fclose($fp);
mysql_close($__db_mysql);
// —–
function xdisp($data) {
global $fp;
$data=fgetcsv($fp,1000);
printf("%d\n",count($data));
print_r($data);
}
mysql c api 設定執行時的 timeout 時間
int fnSetTimeout(int timeout) {
char **row;
char sql[100];
char data[200];
sprintf(sql,"set session wait_timeout=%d",timeout);
if ( mysql_real_query( &mysql, sql, strlen(sql) ) ) {
printf("FAILED : %s\n",sql);
exit(3);
}
sprintf(sql,"set session interactive_timeout=%d",timeout);
if ( mysql_real_query( &mysql, sql, strlen(sql) ) ) {
printf("FAILED : %s\n",sql);
exit(3);
}
strcpy(sql,"select @@session.interactive_timeout" );
if ( mysql_real_query( &mysql, sql, strlen(sql) ) ) {
printf("FAILED : %s\n",sql);
exit(3);
}
if ( (result=mysql_store_result(&mysql)) != NULL ) {
row=mysql_fetch_row(result);
strcpy( data, row[0] );
mysql_free_result( result );
timeout=atoi(data);
} else {
timeout=0;
}
return(timeout);
}
mysql on syntax
`c_timestamp` timestamp NOT NULL default ‘0000-00-00 00:00:00’ COMMENT ‘新增時間’,
`m_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP COMMENT ‘最後修改時間’,
useful mysql command
show status like ‘Qcache%’;
explain select …..
分析 schema
echo “select * from tbl_item procedure analyse()\G” | mysql db_name > ana.txt
mysql turning off query cache
set GLOBAL query_cache_size=0
