易截截图软件、单文件、免安装、纯绿色、仅160KB

mysql优化: 内存表和临时表


mysql优化: 内存表和临时表
2009年02月01日 星期日 10:41
由于直接使用临时表来创建中间表,其速度不如人意,因而就有了把临时表建成内存表的想法。但内存表和临时表的区别且并不熟悉,需要查找资料了。
一开始以为临时表是创建后存在,当连接断开时临时表就会被删除,即临时表是存在于磁盘上的。而实际操作中发现临时表创建后去目录下查看发现并没有发现对应的临时表文件(未断开链接).因而猜测临时表的数据和结构都是存放在内存中,而不是在磁盘中.
    这样一想内存表不是也是存在在内存中吗,那么他和临时表有什么区别?他们的速度是什么样子?
    查找了官方手册有以下的一些解释:
The MEMORY storage engine creates tables with contents that are stored in memory. Formerly, these were known as HEAP tables. MEMORY is the preferred term, although HEAP remains supported for backward compatibility.
Each MEMORY table is associated with one disk file. The filename begins with the table name and has an extension of .frm to indicate that it stores the table definition.
由此可以看出来内存表会把表结构存放在磁盘上,把数据放在内存中。
并做了以下实验:
临时表
mysql> create temporary table tmp1(id int not null);
Query OK, 0 rows affected (0.00 sec)
mysql> show create table tmp1;
+-------+----------------------------------------------------------------------------------------------+
| Table | Create Table                                                                               |
+-------+----------------------------------------------------------------------------------------------+
| tmp1   | CREATE TEMPORARY TABLE `tmp1` ( `id` int(11) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8    |
+-------+----------------------------------------------------------------------------------------


相关文档:

用MySQL 生成随机密码

晚上有朋友问起,简单的写了一个。
DELIMITER $$
CREATE
    FUNCTION `t_girl`
.
`func_rand_string`
(
f_num tinyint
unsigned
,
f_type tinyint
unsigned
)
    RETURNS varchar
(
32)
    BEGIN
       ......

MySQL 5.1.38

完全安装包
http://mysql.isu.edu.tw/Downloads/MySQL-5.1/mysql-5.1.38-win32.msi
包含了安装MySQL所需要的全部文件与配置向导以及可选组件,如基准套件和嵌入式服务器
基本安装包
http://mysql.isu.edu.tw/Downloads/MySQL-5.1/mysql-essential-5.1.38-win32.msi
只包含了安装MySQL所需要的基本文件与配置向导,但是 ......

Ubuntu中 Mysql 远程登录的解决方法

mysql>use mysql;
mysql>update user set host='%' where user='root';
重启Mysql
sudo /etc/init.d/mysql restart
[sudo] password for wangzw:
*Stopping MySQL database server mysqld                   & ......

将Access的内容迁移到MySQL数据库

原本的目的是将数据库从MS SQL 2000迁移到MySQL中,但提示JDBC连接失败,无奈之极,只好选择中间桥梁Access完成这项令人讨厌的工作了。
大概步骤如下:
1,从MS SQL 2000将数据导出到Access中,有关表定义好主键和自动编号部分不然迁移后又得修改MySQL的表。
2,修改Access表中管理员组、管理员的权限,保证Access的内置 ......

mysql性能的检查和调优方法

我一直是使用mysql这个数据库软件,它工作比较稳定,效率也很高。在遇到严重性能问题时,一般都有这么几种可能:
1、索引没有建好;
2、sql写法过于复杂;
3、配置错误;
4、机器实在负荷不了;
1、索引没有建好
如果看到mysql消耗的cpu很大,可以用mysql的client工具来检查。
在linux下执行
/usr/local/mysql/bin/ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号