打赏

星辰大海ゞ

That which does not kill us makes us stronger!

导航

mysql网课部分笔记

mysql> \s  查看当前数据库的状态

            \c  取消当前所输入的命令或字符

 

-------------------------------------------------------

mysql的flush用法:    flush_option 可以是下列任何东西:

HOSTS      这个用的最多,经常碰见。主要是用来清空主机缓存表。如果你的某些主机改变IP数字,或如果你得到错误消息Host ... isblocked,你应该清空主机表。当在连接MySQL服务器时,对一台给定的主机有多于 max_connect_errors个错误连续不断地发生,MySQL为了安全的需要将会阻止该主机进一步的连接请求。清空主机表允许主机再尝试连接。

LOGS        关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。 

PRIVILEGES  这个也是经常使用的,每当重新赋权后,为了以防万一,让新权限立即生效,一般都执行一把,目地是从数据库授权表中重新装载权限到缓存中。

TABLES      关闭所有打开的表,同时该操作将会清空查询缓存中的内容。

FLUSH TABLES WITH READ LOCK  关闭所有打开的表,同时对于所有数据库中的表都加一个读锁,直到显示地执行unlock tables,该操作常常用于数据备份的时候。解锁的语句就是unlock tables。

FLUSH TABLES WITH READ LOCK 对于数据库是全局的表锁定,如果只想锁定几个表,可以用LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} 。这个命令同样需要unlock tables来解锁

read-lock: 允许其他并发的读请求,但阻塞写请求,即可以同时读,但不允许任何写。也叫共享锁。write-lock: 不允许其他并发的读和写请求,是排他的(exclusive)。也叫独占锁

STATUS      重置大多数状态变量到0。

QUERY CACHE  重整查询缓存,消除其中的碎片,提高性能,但是并不影响查询缓存中现有的数据,这点和Flush table 和Reset Query  Cache(将会清空查询缓存的内容)不一样的。 

 

一般来讲,Flush操作都会记录在二进制日志文件中,但是FLUSH LOGS、FLUSH MASTER、FLUSH SLAVE、FLUSH TABLES WITH READ LOCK不会记录,因此上述操作如果记录在二进制日志文件中话,会对从数据库造成影响。

注意:Reset操作其实扮演的是一个Flush操作的增强版的角色。

 

----------------------------------------------------------

BYTE(B):字节

1KB ,2 的 10 次方 : 1024 BYTE.
1MB ,2 的 20 次方 : 1024 KB.
1GB ,2 的 30 次方 : 1024 MB.
1TB ,2 的 40 次方 : 1024 GB.
1PB ,2 的 50 次方 : 1024 TB.
1EB ,2 的 60 次方 : 1024 PB.
1ZB ,2 的 70 次方 : 1024 EB.
1YB ,2 的 80 次方 : 1024 ZB.

 
 
 
 
 
 
 
 
 
 
varchar使用额外的1~2字节来存储值的长度
 
在存储电话号码时,我们就可以考虑把int类型转换为bigint
alter table phone modify mobile bigint;
 
建议使用int来存储ip地址,而不是varchar
create table ip_address(ip int) ;
insert into ip_address values( INET_ATON('127.0.0.1') );
select ip,INET_NTOA(ip) from ip_address ;
 
事实上只需要把int类型改为int unsigned 就可以满足所有的IP地址需求
------------------------------------------------------------------------------------------------
 
 
 

posted on 2016-02-25 15:40  星辰大海ゞ  阅读(311)  评论(0编辑  收藏  举报