mysql数据库命令大全的语法是否正确?









首先说一句.这个只是我对自己修复mysql数据库的一个流水帐.没有太多的详细解释..因此..如果看不懂的可以直接发问.我会及时回复..如果你有一点基础的.那就不会太难.很容易看懂..我说也只是一个方法..各位可以自己充实更完善的修复手段刚刚突然由朋友和我说他的blog无法登录了.因为和我是放在一个服 ...( 15:56:32)



华信Mysql数据库修复程序是由北京华信数据恢复中心独立研发,主要针对Mysql数据库损坏的恢复。本程序可用于由于各种误操作而导致数据丢失的恢复,以及由于断电、陈列损坏、硬盘坏道等各种原因导致数据库无法正常启动的数据恢复。目前软件主要针对Innodb引擎数据库的修复。   功能特色:   ...( 09:27:36)





这篇文章主要为大家整理了7条修复MySQL数据库的方法,当简单的重启对数据库不起作用,或者有表崩溃时,需要的朋友可以参考下 在网上找了篇MySQL的技术文章,感觉不错,把它翻译过来共享下。    原文作者:Mike Peters    我整理了7条修复MySQL数据 ...(


Mysql数据库Ibdata1文件删除数据恢复成功   【客户描述】 一RAID1网站服务器,存放Mysql数据库目录被恶意删除,计算机重启后,Mysql服务启动后自动创建了Ibdata及系统库,后又被删除   【恢复过程】 因数据库有以前的老备份,查看备份发现数 ...(


}

Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。

下面对各个属性进行了解:

1、id:这是SELECT的查询序列号


3、table:显示这一行的数据是关于哪张表的

4、type:这列最重要,显示了连接使用了哪种类别,有无使用索引,是使用Explain命令分析性能瓶颈的关键项之一。

结果值从好到坏依次是:

一般来说,得保证查询至少达到range级别,最好能达到ref,否则就可能会出现性能问题。

6、key:显示MySQL实际决定使用的键(索引)。如果没有选择索引,键是NULL

7、key_len:显示MySQL决定使用的键长度。如果键是NULL,则长度为NULL。使用的索引的长度。在不损失精确性的情况下,长度越短越好

8、ref:显示使用哪个列或常数与key一起从表中选择行。

9、rows:显示MySQL认为它执行查询时必须检查的行数。

10、Extra:包含MySQL解决查询的详细信息,也是关键参考项之一。

一旦MYSQL找到了与行相联合匹配的行,就不再搜索了

没有找到理想的索引,因此对于从前面表中来的每一 个行组合,MYSQL检查使用哪个索引,并用它来从表中返回行。这是使用索引的最慢的连接之一

看 到这个的时候,查询就需要优化了。MYSQL需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来 排序全部行

列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表 的全部的请求列都是同一个索引的部分的时候

看到这个的时候,查询需要优化了。这 里,MYSQL需要创建一个临时表来存储结果,这通常发生在对不同的列集进行ORDER BY上,而不是GROUP BY上

使用了WHERE从句来限制哪些行将与下一张表匹配或者是返回给用户。如果不想返回表中的全部行,并且连接类型ALL或index, 这就会发生,或者是查询有问题

}

单实例MySQL登录的方法

适合多实例防止密码泄露的方法

 

开发mysql多实例启动脚本:

 

Language,中文意思是结构化查询语言,它是一种对关系型数据库中的数据进行定义和操作的语言方法,是大多数关系数据库管理系统所支持的工业标准语言。
结构化查询语言SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时用sql作为MySQL逻辑备份文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。他不要求用户指定对数据存放方法,也不需要用户了解具体的数据存放方式。
小结:SQL语句最常见的分类一般就是3

管理基础数据,例如:库,表

用户授权,权限回收,数据提交回滚等
 

 
1.网站程序字符集2.客户端的字符集3.服务器端字符集4.linux客户端字符集5.以上都要统一,否则会出现中文乱码
 
创建不同字符集格式的数据库命令
 
如果编译的时候指定了特定的字符集,则以后创建对应字符集的数据库就不需要指定字符集

当前数据库包含的表信息

创建MySQL用户及赋予用户权限

 
 
2、通过grant命令创建用户并授权

生产环境针对主库(写入主读为辅)用户的授权;

 

 
 

授权局域网主机连接远程数据库

 
a.一条命令百分号匹配法
b、一条命令子网掩码配置法

先创建用户并设置密码;
再对用户授权指定权限和管理库表
最后记得上述每条grant命令都要刷新权限

创建类似于root系列的管理员用户,可以创建下级用户的用户



数据库服务器>数据库(多个实例)>多个库>多个表>多个字段行列(数据)
 


下面是人工写法设计的建表语句例子,表名student
 
student表的直观显示,可以用下面表格显示。

需要注意的事:MySQL5.1MySQL5.5环境的默认建表语句中的引擎的不同,如果希望控制引擎,就要在建表语句里显示的指定引擎建表;

MySQL表的字段类型

 



2)日期和时间类型(DATE 日期类型:支持的范围是到。MySQLYYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列)




2、 CHAR(M)型:定长字符串类型,当存储时,总是用空格填满右边到指定的长度

有关MySQL字段类型详细内容,可以参考MySQL手册



4. CHAR(M)型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度


下面的图说明了CHARVARCHAR之间的差别:

解释:例如,VARCHAR(10)列可以容纳最大长度为10的字符串。实际存储需求是字符串(L)的长度,加上一个记录字符串长度的字节。对于字符串abcdL4,存储需要5个字节。
 
1、 char定长,不够的用空格补全,浪费存储空间,查询速度快,多数系统表字段都是定长




sns产品生产正式建表语句

 
  1. 索引就象书的目录一样,如果在字段上建立了索引,那么以索引为查询条件时可以加快查询数据的速度,这是mysql优化的重要内容之一。

  2. 查询数据库,按主键查询是最快的,每个表只有一个主键列,但是可以用多个普通索引列。主键列要求列的所有内容必须唯一,而普通索引不要求内容必须唯一

  3. 主键就类似我们在学校学习时的学号一样,班级内是唯一的,整个表的每一条记录的主键值在表内都是唯一的,用来唯一标识一条记录。

  4. 首先,无论建立主键索引还是普通索引,都要在表的对应列上创建,可以对单列创建索引,也可以对多列创建索引。

  5. 为表的字段创建索引*****

  6. 数据库的索引就象书的目录一样,如果在字段上建立了索引,那么多以索引列为查询条件时可以加快查询数据的速度,这是mysql优化的重要内容之一。

  7. 查询数据库,按主键查询是最快的,每个表只能有一个主键列,但是可以有多个普通索引列。主键列的所有内容必须唯一,而普通索引列不要求内容必须唯一。

  8. 主键就类似我们在学习学习时的学号一样,班级内是唯一的,整个表的每一条记录的主键值在表内都是唯一的,用来唯一标识一条记录。

  9. 首先,无论建立主键索引还是普通索引,都要在表的对应列上创建,可以对单列创建索引,也可以对多列创建索引。

 
 
1)在建表示,可以增加建立主键索引的句子如下:
 


 
PRL为主键的标示,MUL为普通索引的表示

利用alter命令修改id列为自增主键值
创建的表的时候,可以指定
 


优化:在唯一值多的列上建索引查询效率高
还可以自定义自增的长度
查看索引(可能会不清晰)【前提都需要进入库
查看索引\G 可以查看的更详细
 

建表后利用alter增加普通索引,删除建表时创建的index_name索引、

name上面添加索引 常用命令alter(修改)

    数据量很大的时候,不适合建立索引,会影响用户访问。曾经400-500万条记录的表,建立索引,花了90-180秒。尽量选择在业务低估时建立索引

  1. 创建索引的第二种方法,效率更高

  2. 对字段的前n个字符创建普通索引

  3. 当遇到表中比较大列时,列内容的前n个字符在所有内容中已经接近唯一时,这时可以对列的前n个字符建立索引,而无需对整个列建立索引,这样可以节省创建索引真用的系统空间,以及降低读取和更新维护索引消耗的系统资源。

对字段的前n个字符创建普通索引的语句:

name创建索引,也可以按照上述进行指定字节

—————————————

 

为表的多个字段创建联合索引

 
如果查询数据的条件是多列时,我们可以为多个查询的列创建联合索引,甚至,可以为多个列的前n个字符创建联合索引,演示如下:
创建联合索引,和单个索引不冲突
联合索引作用,查询更快
 

创建联合索引,并指定值大小

 
 

提示:尽量在唯一值多的大表上建立索引。

什么时候创建联合索引?

 
只有程序用这两个条件查询,采用联合索引,这个主要是看开发。
提示:按条件列查询数据时,联合索引是由前缀生效特性的

创建唯一索引(非主键)
 
 

索引列的创建及生效条件

 
问题1、既然索引可以加快查询速度,那么就给所有的列加索引吧?
解答:因为索引不但占用系统空间,而且更新数据时还需要维护索引数据的,因此索引是一把双刃剑,并不是越多越好,例如:数十到几百行的小表上无需建立索引,插入更新频繁,读取比较少的需要少建立索引
问题2、需要在哪些列上创建索引才能加快查询速度呢?
select user,host from mysql.user where
password=…..,
索引一定要创建在where后的条件列上,而不是select后的选择数据的列上。另外,我们要尽量选择在唯一值多的大表上的列建立索引,例如,男女生性别列唯一值少,不适合建立索引。
 
唯一值就是相同的数量,例如查询user那么相同的user就是唯一值
 
用户列表,根据上放进行解释
 
创建索引的基本知识小结:
  • 索引类似书籍的目录,会加快查询数据的速度

  • 要在表的列(字段)上创建索引

  • 索引会加快查询速度,但是也会影响更新的速度,因为更新要在维护索引数据

  • 索引列并不是越多越好,要在频繁查询的表语句where后的条件列上创建索引

  • 小表或重复值很多的列上可以不建索引,要在大表以及重复值少的条件上创建索引

  • 多个列联合索引有前缀生效特性

  • 当字段内容前N个字符已经接近唯一时,可以对字段的前N个字符创建索引

  • 索引从工作方式区别,有主键,唯一,普通索引

  • 索引类型有BTREE(默认)hash(适合做缓存(内存数据库))等。

 

主键索引和唯一索引的区别

 
(1)对于主键/unique constraint oracle/sql server/mysql等都会自动建立唯一索引;
(2)
主键不一定只包含一个字段,所以如果你在主键的其中一个字段建唯一索引还是必要的;
(3)
主健可作外健,唯一索引不可;
(4)
主健不可为空,唯一索引可;
(5)
主健也可是多个字段的组合;
(6)
主键与唯一索引不同的是:
a.
not null属性;
b.
每个表只能有一个。

}

我要回帖

更多关于 mysql数据库命令大全 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信