分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]



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内存太小,这样可以省下不少空间。阅读全文
方式一:


方式二:
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]
在mysql中涉及到编码是最让人头疼的。
编写update.txt (注意:utf8的编码要存为utf8的txt格式,当然你也可以命名后缀改为:update.sql etc)
source的sql包含中文(位置在/root/update.txt):
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


然后,发现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中显示中文正常,哈哈哈!