常⽤命令常⽤sql:SHOWVARIABLESLIKEcharacter%
mysql学习笔记-常⽤命令
  常⽤sql:
SHOW VARIABLES LIKE 'character%';查看字符集
SHOW VARIABLES LIKE 'collation_%';
show engines;查看引擎
show databases; 查看数据库
show tables;
desc table_name;
GRANT ALL PRIVILEGES ON *.* TO 'guming'@'localhost' IDENTIFIED BY 'guming' WITH GRANT OPTION;授权
show PRIVILEGES;查看权限
show grants for test@localhost;查看⽤户权限
select * from mysql.user where user='test';
函数
逻辑:case when,isnull,IFnull等
数学:mod,cell,floor,round(),trancate(),abs()
字符串函数:rtrim,ltrim,substring,locate(),INSTR(),length,left,right
  REPEAT(str,count)
  返回⼀个由重复的字符串str 组成的字符串,字符串str的数⽬等于count 。若 count <= 0,则返回⼀个空字符串。若str 或 count 为NULL,则返回 NULL 。
  REPLACE(str,from_str,to_str)
  返回字符串str 以及所有被字符串to_str替代的字符串from_str 。
  REVERSE(str)
 返回字符串 str ,顺序和字符顺序相反。
⽇期函数:current_date,datediff,adddate,date_add,dayofweek,dayofyear,dayofmonth,month,hour(),
   str_to_date: SELECT STR_TO_DATE('20031031',GET_FORMAT(DATE,'ISO'));
   select date_format(current_date(),'%Y-%m-%d %W');
   select extract(YEAR_MONTH FROM current_date());
转换函数:
cast:可使⽤CAST()函数将某个值转为另外⼀种类型。CONVERT
convert_TZ:CONVERT_TZ() 将时间⽇期值dt 从from_tz 给出的时区转到to_tz给出的时区
concat:返回结果为连接参数产⽣的字符串。如有任何⼀个参数为NULL ,则返回值为 NULL。
全⽂检索
SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('database');
 在默认状态下, 搜索的执⾏⽅式为不区分⼤⼩写⽅式。然⽽,你可以通过对编⼊索引的列使⽤⼆进制排序⽅式执⾏区分⼤⼩写的全⽂搜索。  例如,可以向⼀个使⽤latin1字符集的列给定latin1_bin 的排序⽅式,对于全⽂搜索区分⼤⼩写。
利⽤IN BOOLEAN MODE修改程序, MySQL 也可以执⾏布尔全⽂搜索:
mysql> SELECT * FROM articles WHERE MATCH (title,body)
  -> AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);
这个问询检索所有包含单词“MySQL”的⾏,但不检索包含单词“YourSQL”的⾏。
全⽂搜索⽀持查询扩展功能 (特别是其多变的“盲查询扩展功能” )。若搜索短语的长度过短, 那么⽤户则需要依靠全⽂搜索引擎通常缺乏的内隐知识进⾏查询。这时,查询扩展功能通常很有⽤。例如, 某位搜索 “database” ⼀词的⽤户,
可能认为“MySQL”、“Oracle”、“DB2” and “RDBMS”均为符合 “databases”的项,因此都应被返回。这既为内隐知识。
mysql> SELECT * FROM articles
  -> WHERE MATCH (title,body)
  -> AGAINST ('database' WITH QUERY EXPANSION);
加密函数:
ENCRYPT()
md5()
password()
字符集操作
SELECT CHARSET(CONVERT('abc' USING utf8));SELECT CHARSET(USER());
查询缓存设置:
服务器启动时要禁⽤查询缓存,设置query_cache_size系统变量为0,query_cache_type=on
SET GLOBAL query_cache_size = 40000;
SHOW VARIABLES LIKE 'query_cache_size';
SHOW VARIABLES LIKE 'query_cache%';
开启缓存后:
select * from ad_position where id=201;
SHOW STATUS LIKE 'Qcache_hits'; 查询命中次数
SET SESSION query_cache_type = ON;(ON:1,OFF:0,2:DEMAND)
 on 启⽤缓存,SELECT SQL_NO_CACHE除外
 off 不⽤缓存,
 DEMAND 仅对以SELECT SQL_CACHE开始的那些查询语句启⽤缓存。
清除缓存:
可以使⽤FLUSH QUERY CACHE语句来清理查询缓存碎⽚以提⾼内存使⽤性能。该语句不从缓存中移出任何查询。
RESET QUERY CACHE语句从查询缓存中移出所有查询。FLUSH TABLES语句也执⾏同样的⼯作。
什么类型的数据缓存?
查询结果集缓存,对于动态的结果集是不缓存的。必须是⼀样的sql,并且结果集⽆变化。
表更新后,对应表的缓存失效,此时同⼀sql有很能结果集不同了。
注释:查询缓存不返回旧的数据。当表更改后,查询缓存值的相关条⽬被清空。
注释:如果你有许多mysqld服务器更新相同的MyISAM表,在这种情况下查询缓存不起作⽤。
注释:查询缓存不适⽤于服务器⽅编写的语句。如果正在使⽤服务器⽅编写的语句,要考虑到这些语句将不会应⽤查询缓存
调整缓存:
·    query_cache_min_res_unit默认值是4KB。这应该适合⼤部分情况。
·    如果你有⼤量返回⼩结果数据的查询,默认数据块⼤⼩可能会导致内存碎⽚,显⽰为⼤量空闲内存块。由于缺少内存,内存碎⽚会强制查询缓存从缓存内存中修整(删除)查询。这时,你应该减少quer
y_cache_min_res_unit变量的值。
     空闲块和由于修整⽽移出的查询的数量通过Qcache_free_blocks和Qcache_lowmem_prunes变量的值给出。字符串函数title作用
·    如果⼤量查询返回⼤结果(检查 Qcache_total_blocks和Qcache_queries_in_cache状态变量),你可以通过增加
query_cache_min_res_unit变量的值来提⾼性能。但是,注意不要使它变得太⼤(参见前⾯的条⽬)。
更改存储引擎
ALTER TABLE engineTest ENGINE = ARCHIVE;
字符集设置:
在ini⽂件中加⼊下⾯配置:
default-character-set = utf8
character_set_server = utf8
导⼊数据库备份时遇到的问题,空间不够
修改ini⽂件中的配置:max_allowed_packet = 16M

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。