snapshot是一个数据库快照,每个事务开始时会看到数据库的一个快照,那么这个快照里包含数据库的系统表信息吗?因为postgres使用快照,所以不同的事务看到不同的数据库快照,但是我想让这两个事务能访问同一个的内存或者共同的磁盘空间

解决方案 »

  1.   

    /*[12:48:11][  94 ms]*/ SHOW VARIABLES LIKE 'lower_case_table_names';
    /*[12:48:11][  16 ms]*/ SET NAMES 'utf8';
    /*[12:48:11][   0 ms]*/ SET sql_mode='';
    /*[12:48:11][  93 ms]*/ SHOW DATABASES;
    /*[12:48:13][   0 ms]*/ USE `test`;
    /*[12:48:15][ 422 ms]*/ SHOW TABLE STATUS FROM `test`WHERE ENGINE IS NOT NULL;
    /*[12:48:15][  31 ms]*/ SELECT `TABLE_NAME` AS View_name,`View_definition`,`Check_option`,`Is_updatable`,`Definer`,`Security_type` FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = 'test';
    /*[12:48:15][   0 ms]*/ SHOW PROCEDURE STATUS WHERE Db = 'test';
    /*[12:48:15][   0 ms]*/ SHOW FUNCTION STATUS WHERE Db='test';
    /*[12:48:15][  16 ms]*/ SHOW TRIGGERS FROM `test`;
    /*[12:48:15][   0 ms]*/ SELECT `Event_name`,`Definer`,`Event_type`,`Execute_at`,`Interval_value`,`Interval_field`,`Starts`,`Ends`,`Status` FROM `INFORMATION_SCHEMA`.`EVENTS` WHERE `EVENT_SCHEMA` = 'test';
    /*[12:48:15][   0 ms]*/ SHOW CREATE DATABASE `test`;
    你的意思是这些信息的快照吗
      

  2.   

    snapshot只是个MVCC型数据库的形象概念, 并不表示实际的物理空间.
    所以你不用担心你的问题.