show table status;
show table status where name ='表名'; 可以查看指定表的信息
show table status where name ='t_tst_draft_info';
近来发现Vps上的内存不够用,是由于Mysql启动后不断扩大内存引起的,于是查了下内存增大原因后,
为了减少内存,为了尽量使其能稳定运行Vps,Mysql内存减少是关键,这样的背景下,
关闭Mysql5.5.8的Innodb引擎,记录步骤如下:
1、stop mysql
2、编辑my.cnf文件[mysqld]下面的配置:
1)将default-storage-engine=INNODB前的注释掉(#)去掉在[mysqld]下面加入:default-storage-engine = MyISAM
2)将skip-innodb这行注释(不加上#); 如大版本的Mysql如:Mysql5.5,skip-innodb在Mysql5.5.18中已经改成loose-skip-innodb了!
3、在数据库目录中把ibdata1、ib_logfile0、ib_logfile1 这三个文件删掉。也可不用删除,我个人觉得删除保险点儿,呵呵:
4、start mysql:
5.启动时看日志是否真关闭了InnoDB引擎:
这行是关键:111105 10:27:39 [Note] Plugin 'InnoDB' is disabled.
启动日志如下:
6.终端进入Mysql后查看配置后的情况,没有了Innodb:
mysql> show engines;
show variables like '%storage_engine%';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | MyISAM |
| storage_engine | MyISAM |
+------------------------+--------+
7.内存占用明显减少,改动前后:
果然,Innodb还是很耗费内存的,尤其是对一个小内存的Vps机器来说,而最主要是的Innodb还会在运行中消耗比启动时更大的内存,只是为了提高Innodb的性能罢了,所以,我的Vps果断关掉它,而要是自己生产服务器,还是建议打开并使用Innodb,更何况
现在的Mysql默认就是Innodb,在性能上都不是相当不错的。EOF
8.我的配置文件记录,Download Url:
下载文件
为何要关闭,我是为了减少内存的消耗罢了,引用网上的文章摘录如下:
(1) Innodb表缓存: Innnodb表有自己的缓存,它保存了从一开始访问每个表的元数据。它们从未被清除过,如果有很多Innodb表的话,那么这个量就很大了。这也就意味着拥有 CREATE TABLE 权限的用户就可能把MySQL服务器的内存耗尽。
(2) MyISAM缓冲:MyISAM表可能会分配一个足以装下指定表最大记录的缓冲,而且这个缓冲直到表关闭了才释放。
MyISAM我要用,Innodb这个我可以不用,所以关闭之,主要是Vps内存太小,这样可以省下不少空间。
阅读全文
为了减少内存,为了尽量使其能稳定运行Vps,Mysql内存减少是关键,这样的背景下,
关闭Mysql5.5.8的Innodb引擎,记录步骤如下:
1、stop mysql
2、编辑my.cnf文件[mysqld]下面的配置:
1)将default-storage-engine=INNODB前的注释掉(#)去掉在[mysqld]下面加入:default-storage-engine = MyISAM
2)将skip-innodb这行注释(不加上#); 如大版本的Mysql如:Mysql5.5,skip-innodb在Mysql5.5.18中已经改成loose-skip-innodb了!
3、在数据库目录中把ibdata1、ib_logfile0、ib_logfile1 这三个文件删掉。也可不用删除,我个人觉得删除保险点儿,呵呵:
4、start mysql:
5.启动时看日志是否真关闭了InnoDB引擎:
这行是关键:111105 10:27:39 [Note] Plugin 'InnoDB' is disabled.
启动日志如下:
6.终端进入Mysql后查看配置后的情况,没有了Innodb:
mysql> show engines;
show variables like '%storage_engine%';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | MyISAM |
| storage_engine | MyISAM |
+------------------------+--------+
7.内存占用明显减少,改动前后:
果然,Innodb还是很耗费内存的,尤其是对一个小内存的Vps机器来说,而最主要是的Innodb还会在运行中消耗比启动时更大的内存,只是为了提高Innodb的性能罢了,所以,我的Vps果断关掉它,而要是自己生产服务器,还是建议打开并使用Innodb,更何况
现在的Mysql默认就是Innodb,在性能上都不是相当不错的。EOF
8.我的配置文件记录,Download Url:
下载文件 为何要关闭,我是为了减少内存的消耗罢了,引用网上的文章摘录如下:
(1) Innodb表缓存: Innnodb表有自己的缓存,它保存了从一开始访问每个表的元数据。它们从未被清除过,如果有很多Innodb表的话,那么这个量就很大了。这也就意味着拥有 CREATE TABLE 权限的用户就可能把MySQL服务器的内存耗尽。
(2) MyISAM缓冲:MyISAM表可能会分配一个足以装下指定表最大记录的缓冲,而且这个缓冲直到表关闭了才释放。
MyISAM我要用,Innodb这个我可以不用,所以关闭之,主要是Vps内存太小,这样可以省下不少空间。
阅读全文
Left和date_format函数:
[code]
$sql="select count(*) from Tbl_XXshow_XX where FXX='$XX' and FCode=2 and left(FTime,7)=left(now(),7)";
select count(*) as c from Tbl_Exchange_XX where FLType=218 and date_format(now(),'%Y-%m-%d')=date_format(FTime,'%Y-%m-%d')
[/code]
[code]
$sql="select count(*) from Tbl_XXshow_XX where FXX='$XX' and FCode=2 and left(FTime,7)=left(now(),7)";
select count(*) as c from Tbl_Exchange_XX where FLType=218 and date_format(now(),'%Y-%m-%d')=date_format(FTime,'%Y-%m-%d')
[/code]
在mysql中涉及到编码是最让人头疼的。
编写update.txt (注意:utf8的编码要存为utf8的txt格式,当然你也可以命名后缀改为:update.sql etc)
然后,发现php程序读出来发现是乱码。
查看mysql编码:
mysql> show variables like '%char%';
mysql> show variables like '%char%';
+--------------------------+----------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-max-5.0.27-linux-i686-glibc23/share/mysql/charsets/ |
+--------------------------+----------------------------------------------------------------------+
8 rows in set (0.00 sec)
原来是:
| character_set_server | latin1 |
不是utf-8:
于是:需要,set names 'utf8';
mysql> set names "utf8";
Query OK, 0 rows affected (0.00 sec)
mysql> source /root/update.txt
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql>
在php中显示中文正常,哈哈哈!
编写update.txt (注意:utf8的编码要存为utf8的txt格式,当然你也可以命名后缀改为:update.sql etc)
source的sql包含中文(位置在/root/update.txt):
update Tbl_User set FAddr="四川内江东兴区平安路148号E栋8号" where FQQ="348813422";
update Tbl_User set FAddr="四川内江东兴区平安路148号E栋8号" where FQQ="348813422";
mysql> use DB_****_2nd;
Database changed
mysql> source /root/update.txt
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
Database changed
mysql> source /root/update.txt
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
然后,发现php程序读出来发现是乱码。
查看mysql编码:
mysql> show variables like '%char%';
mysql> show variables like '%char%';
+--------------------------+----------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-max-5.0.27-linux-i686-glibc23/share/mysql/charsets/ |
+--------------------------+----------------------------------------------------------------------+
8 rows in set (0.00 sec)
原来是:
| character_set_server | latin1 |
不是utf-8:
于是:需要,set names 'utf8';
mysql> set names "utf8";
Query OK, 0 rows affected (0.00 sec)
mysql> source /root/update.txt
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql>
在php中显示中文正常,哈哈哈!



