php 实现 mysql数据表优化与修复
<?php
$link = mysql_connect("localhost", "root", "") or die("errro:" . mysql_error());
mysql_query("set names utf8");
mysql_select_db("数据库名", $link); /*
// 展示数据表相关信息
$sql = "show table status";
$res = mysql_query($sql,$link);
while($row = mysql_fetch_assoc($res))
{ $row = Array
(
[Name] => 表名称
[Engine] => 表的存储引擎
[Version] => 版本
[Row_format] => 行格式。对于MyISAM引擎,这可能是Dynamic,Fixed或Compressed。动态行的行长度可变,例如Varchar或Blob类型字段。固定行是指行长度不变,例如Char和Integer类型字段。
[Rows] => 表中的行数。对于非事务性表,这个值是精确的,对于事务性引擎,这个值通常是估算的
[Avg_row_length] => 平均每行包括的字节数
[Data_length] => 整个表的数据量(单位:字节)
[Max_data_length] => 表可以容纳的最大数据量
[Index_length] => 索引占用磁盘的空间大小
[Data_free] => 对于MyISAM引擎,标识已分配,但现在未使用的空间,并且包含了已被删除行的空间。
[Auto_increment] => 下一个Auto_increment的值
[Create_time] => 表的创建时间
[Update_time] => 表的最近更新时间
[Check_time] => 使用 check table 或myisamchk工具检查表的最近时间
[Collation] => 表的默认字符集和字符排序规则
[Checksum] => 如果启用,则对整个表的内容计算时的校验和
[Create_options] => 指表创建时的其他所有选项
[Comment] => 包含了其他额外信息,对于MyISAM引擎,包含了注释徐标新,如果表使用的是innodb引擎 ,将现实表的剩余空间。如果是一个视图,注释里面包含了VIEW字样。
) }
*/ $sql = "OPTIMIZE TABLE 数据表名";
$res = mysql_query($sql,$link);
while($row = mysql_fetch_assoc($res))
{
/**
$row = Array
(
[Table] => 数据库.数据表名
[Op] => optimize
[Msg_type] => status
[Msg_text] => Table is already up to date
)
*/
if ($row['Msg_type'] =='error' && strpos($row['Msg_text'], 'repair') !== false)
{
mysql_query('REPAIR TABLE 数据表名', $link);
} }
php 实现 mysql数据表优化与修复的更多相关文章
- MySQL 数据表修复及数据恢复
1. MYSQL数据表在什么情况下容易损坏? 服务器突然断电导致数据文件损坏. 强制关机,没有先关闭mysql 服务等. 2. 数据表损坏后的主要现象是什么? 从表中选择数据之时,得到如下错误:I ...
- MYSQL数据表损坏的原因分析和修复方法小结
MYSQL数据表损坏的原因分析和修复方法小结 1.表损坏的原因分析 以下原因是导致mysql 表毁坏的常见原因: 1. 服务器突然断电导致数据文件损坏. 2. 强制关机,没有先关闭mysql 服务. ...
- MySql数据表设计,索引优化,SQL优化,其他数据库
MySql数据表设计,索引优化,SQL优化,其他数据库 1.数据表设计 1.1数据类型 1.2避免空值 1.3text类型优化 2.索引优化 2.1索引分类 2.2索引优化 3.SQL优化 3.1分批 ...
- 优秀后端架构师必会知识:史上最全MySQL大表优化方案总结
本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186 1.引言 MySQL作为开源技术的代表作之一,是 ...
- MySQL 大表优化方案(长文)
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...
- 用Myisamchk让MySQL数据表更健康
用Myisamchk让MySQL数据表更健康 2011-03-15 09:15 水太深 ITPUB 字号:T | T 为了让MySQL数据库中的数据表“更健康”,就需要对其进行定期体检.在这里笔者推荐 ...
- 谈谈MySQL数据表的类型(转)
谈谈MySQL数据表的类型 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合. 我们通常说的MySql数据库,sql server数据库等等其 ...
- MySQL数据性能优化-修改方法与步骤
原文:http://bbs.landingbj.com/t-0-240421-1.html 数据库优化应该是每个设计到数据库操作应用必须涉及到的操作. 经常调试修改数据库性能主要有三个方面 1.MyS ...
- 随机获取Mysql数据表的一条或多条记录
随机获得Mysql数据表的一条或多条记录有很多方法,下面我就以users(userId,userName,password......)表(有一百多万条记录)为例,对比讲解下几个方法效率问题: sel ...
随机推荐
- android144 360 快捷方式
package com.example; import android.net.Uri; import android.os.Bundle; import android.app.Activity; ...
- Ruby用法总结
1.ruby中的整数.浮点数.字符串之间的相互转换 ruby的整数.浮点数.字符串的类均提供了to_i,to_f,to_s三个方法,分别用于转换成整数.转换成浮点数.转换成字符串. 2.数组的遍历 例 ...
- Excel转换成PDF
public class Office2Pdf { public bool DOCConvertToPDF(string sourcePath, string targetPath) { //Stre ...
- PAT 1019
1019. General Palindromic Number (20) A number that will be the same when it is written forwards or ...
- json对象,使用 “ . ”获取值是,不能使用变量作为属性名。
var he={'aa':"aa",'bb':'bb'}; var chun={'cc':"aa",'dd':'mm'}; c=he.aa; n=chun.c; ...
- Linux编程之《进程/线程绑定CPU》
Intro----- 通常我们在编写服务器代码时,可以通过将当前进程绑定到固定的CPU核心或者线程绑定到固定的CPU核心来提高系统调度程序的效率来提高程序执行的效率,下面将完整代码贴上. /***** ...
- DedeCMS更新文章同步发布到新浪微博
如果在网站推广过程中能利用好微博这个工具的话,将会给网站的推广工作带来巨大的便利.下面以dede程序为例讲讲如何将网站内容自动同步到新浪微博. 在新浪微博的工具中有个自动关联博客的功能,利用好这个功能 ...
- [改善Java代码]适当设置阻塞队列长度
阻塞队列BlockingQueue扩展了Queue,Collection接口,对元素的插入和提取使用了"阻塞"处理,我们知道Collection下的实现类一般都采用了长度自行管理方 ...
- [改善Java代码]不要随便设置随机种子
建议30: 不要随便设置随机种子 随机数在太多的地方使用了,比如加密.混淆数据等,我们使用随机数是期望获得一个唯一的.不可仿造的数字,以避免产生相同的业务数据造成混乱.在Java项目中通常是通过Mat ...
- [改善Java代码]不要让四舍五入亏了一方
建议25: 不要让四舍五入亏了一方 本建议还是来重温一个小学数学问题:四舍五入.四舍五入是一种近似精确的计算方法,在Java 5之前,我们一般是通过使用Math.round来获得指定精度的整数或小数的 ...