`
zhou.xingbo
  • 浏览: 53044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mysql相关知识

阅读更多

1. Mysql常规使用

安装

server: sudo apt-get install mysql-server

配置

default是只允许本地访问的,如果要其它机器访问,需要修改/etc/mysql/my.cnf配置文件。

default根用户是没有密码的,所以用根用户进入,$mysql -u root,一般只有在设置时才要进入根用户模式。

 

基本操作

为root设置密码->为root建立所需要的数据库db->并为该db创建用户->设置远程访问或控制该db&&/etc/mysql/my.cnf(bind-address=127.0.0.1--bind-address=本机ip)

 

对数据库的操作

显示数据库列表 show databases;

使用某个数据库 use db_name;

显示库中的数据表 show tables;

显示数据表的结构 describe table_name;

 

建库 create database db_name;

使用该数据库 use db_name;

建表 create table table_name (字段设定列表);

删库,删表 drop database db_name, drop table table_name

 

sql文的使用

 

应用

如:

一个建库和建表以及插入数据的实例

school.sql

 

drop database if exists school; //如果存在SCHOOL则删除

create database school; //建立库SCHOOL

use school; //打开库SCHOOL

create table teacher //建立表TEACHER

(

id int(3) auto_increment not null primary key,

name char(10) not null,

address varchar(50) default ’深圳’,

year date

); //建表结束

//以下为插入字段

insert into teacher values(’’,’glchengang’,’深圳一中’,’1976-10-10’);

insert into teacher values(’’,’jack’,’深圳一中’,’1975-12-23’);

 

 mysql -uroot -ppassword < school.sql

 

将文本数据转到数据库中

文本数据应符合的格式:字段数据之间用tab键隔开,null值用\\n来代替

data.txt

 

3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23

 

 load data local infile data.txt into table table_name

 

备份数据库

导出表

mysqldump --opt school > school.sql

school.sql是一个文本文件,文件名任取。

导出库

mysqldump --databases db1 > db1.sql 

mysqldump --all-databases > all-databases.sql

 

2. Mysql优化技巧

对数据库的快速访问和响应.

 

1. 优化Mysql查询缓存

在Mysql服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台处理是提高性能的最有效方法之一。

当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的。

Query Cache

在使用中,查询缓存会存储一个select查询的文本与被传送到客户端的相应结果。如果之后接受到一个同样的查询,服务器将从查询缓存中检索结果,而不是再次分析和执行这个同样的查询。

 

Note:查询缓存绝不返回过期数据。当数据被修改后,在查询缓存中的任何相关词条均被清除。

 

Note: SELECT * FROM tbl_name 和 select * from tbl_name对于query cache是认为不同的。

 

Note:如果查询结果被从查询缓存中返回,那么状态变量Com_select将不会被增加,但是Qcahce_hits却会增加。

 

设置:/etc/mysql/my.cnf中

query_cache_limit 不缓存大于这个值的结果

query_cache_min_res_unit 查询缓存以最小的尺寸分配块。当一个查询执行完成,最后的结果块被修整到实际数据的大小。

query_cache_size 为了存储老的查询结果而分配的内存数量(以字节指定)。如果设置它为0,查询缓存将被禁止(default 0)

query_cache_type

0(off,不缓存或重新得到结果)

1(on,缓存所有的结果,除了select sql_no_cache...)

2(demand,仅缓存select sql_cache...)

 

query_cache_type 使用Qcache的方式

select @@query_cache_type;

select sql_no_cache id, name from table_name;

set session query_cache_type=off;

 

系统变量have_query_cache设置Qcache是否可用

show variables like 'have_query_cache';

 

系统变量query_cache_size

select @@global.query_cache_size;

set @@global.query_cache_size=10000;

 

query_cache_limit控制Qcache结果的最大值

select @@global.query_cache_limit;

set @@global.query_cache_limit=1000;

 

查询缓存的状态和维护

FLUSH QUERY CACHE 命令可以整理查询缓存,以便更好的利用它的内存

RESET QUERY CACHE 从查询缓存中移除所有的查询结果

 

SHOW VARIABLES LIKE 'have_query_cache' 检查查询缓存在你的Mysql中是否被引进

SHOW STATUS 可以监视查询缓存的性能

 

Qcache_queries_in_cache 在缓存中已注册的查询数目

Qcache_inserts 被加入到缓存中的查询数目

Qcache_hits 缓存采样数数目

Qcache_lowmem_prunes 因为缺少内存而被从缓存中删除的查询数目

Qcache_not_cached 没有被缓存的查询数目 (不能被缓存的,或由于 QUERY_CACHE_TYPE)

Qcache_free_memory 查询缓存的空闲内存总数

Qcache_free_blocks 查询缓存中的空闲内存块的数目

Qcache_total_blocks 查询缓存中的块的总数目

Total number of queries = Qcache_inserts + Qcache_hits + Qcache_not_cached.

 

 Note:Qcache_total_blocks和Qcache_free_blocks可能显示查询缓存的碎片。在FLUSH QUERY CACHE之后,只有剩下一个单独的(大块)空闲块

 

 

2. 用EXPLAIN使你的select查询更加清晰

3. 利用LIMIT 1取得唯一行

增加一个LIMIT 1会令查询更加有效。这样数据库引擎发现只有1后将停止扫描,而不是去扫描整个表或索引。

select 1 from table_name where state="xxx" limit 1;

4. 索引中的检索字段

alter table 'table_name' add index ('c_name');

 

小技巧

磁盘碎片整理

optimize table table_name 

myisamchk -r table_name

 

explain来查看瓶颈

 

mysql gui

sudo apt-get install mysql-gui-tool-common

 

分享到:
评论

相关推荐

    MySQL相关知识.md

    MySQL相关知识

    读书笔记:MySQL相关知识学习包括《高性能 MySQL》。.zip

    读书笔记:MySQL相关知识学习包括《高性能 MySQL》。

    mysql 核心知识要点

    MySQL 核心知识要点 MySQL 是一种关系型数据库管理系统,提供了丰富的知识点和应用场景。本文将从 MySQL 的基本操作和使用、优化、部署、数据库基本介绍、关系型数据库、非关系型数据库、MySQL 服务器、数据库对象...

    MySQL相关知识点资料

    MySQL知识点涉及MySQL命令相关服务,SQL重要概念,创建SQL相关命令语句。

    MySQL 基础知识的总结

    本文将深入探讨MySQL的基础知识,包括安装、数据类型、表的创建、查询语句、索引以及事务处理等核心概念。 1. **安装与配置** MySQL的安装过程通常包括下载适合操作系统的安装包,按照向导进行安装,然后配置...

    Mysql相关知识学习整理.zip

    本文将深入探讨MySQL的核心概念、安装与配置、数据类型、SQL语句、索引优化、存储引擎、事务处理以及备份与恢复等关键知识点。 一、MySQL核心概念 MySQL是一个开源、免费的数据库系统,它采用SQL(结构化查询语言)...

    MySQL相关知识学习,包括《高性能 MySQL》。.zip

    以下是一些MySQL相关的重要知识点: 1. **MySQL架构**:MySQL采用C/S(客户端/服务器)架构,客户端通过SQL语句与服务器进行通信。服务器处理请求并返回结果。 2. **存储引擎**:MySQL支持多种存储引擎,如InnoDB...

    mysql基础知识和mysql优化整理

    1. 数据库与表:MySQL中的数据库是一个逻辑存储单元,用于组织相关数据。表是数据库中的基本元素,由列和行构成,用来存储具体的数据。 2. 数据类型:MySQL支持多种数据类型,如整数类型(TINYINT、INT、BIGINT)、...

    MySQL必备知识手册

    这份"MySQL必备知识手册"将帮助你深入理解和掌握MySQL的核心概念、语法和最佳实践。 首先,我们需要了解MySQL的基本架构。MySQL是一个客户端-服务器系统,由一个服务器守护进程(mysqld)和多个客户端应用程序组成...

    mysql基础知识培训

    MySQL 基础知识培训涵盖了从数据库的基本概念到实际安装和管理操作的多个方面。MySQL 是一款广泛应用的关系型数据库管理系统,特别适合于中小型企业及个人网站的开发,因其开源、免费且性能优秀的特点,常与 PHP、...

    mysql基础知识小结

    mysql参考手册重点章节:5 6 7 8 10 11 13 14 15 ## mysql启动方法: ## mysql关闭方法: ## mysql登陆方法:(单、多实例,本地、远程登录) ## 修改mysql提示符 ## 修改密码 ## root密码丢失找回 ## SQL结构化...

    MYSQL基础知识-学习笔记

    这份"MYSQL基础知识-学习笔记"涵盖了对MySQL的初步介绍以及基础概念,是初学者入门的理想资源。 首先,我们从MySQL的简介开始。MySQL是由瑞典的MySQL AB公司开发的,后被甲骨文公司收购。它是一款开源、免费的...

    MySql_5.5安装图解说明(超详细).doc

    MySQL 5.5 安装是一个复杂的过程,需要用户具备一定的计算机基础知识和 MySQL 相关知识。在这个安装过程中,我们需要了解 MySQL 的各个组件和它们的作用,以及如何正确地安装和配置 MySQL 。 首先,我们需要了解 ...

    mysql下载,mysql工具

    官方论坛、Stack Overflow和各种技术博客都是获取MySQL相关知识和支持的好地方。 总之,MySQL作为一个强大的数据库系统,提供了全面的工具链来支持其安装、配置和管理。通过下载和安装"mysql-installer-web-...

    Mysql必备基础知识

    MySQL基础知识入门必备,对于刚刚开始学习MySQL数据库的新手很友好。

    MySQL数据库知识点总结.docx

    MySQL数据库知识点总结 MySQL 是一种关系型数据库管理系统(RDBMS),它具有高效、稳定、可靠、安全等特点,是目前最流行的开源关系型数据库管理系统之一。 MySQL 入门 1. MySQL 介绍:MySQL 是一种关系型数据库...

    Mysql数据库的相关知识总结 思维导图

    该思维导图是根据mysql相关知识,总结mysql数据库的基础知识

    用来学习MySQL相关知识,不希望自己可以成为牛逼大佬,但是希望自己一天比一天强大.zip

    进阶MySQL知识: 1. 视图:视图是虚拟表,它基于一个或多个表的查询结果。了解如何创建、修改和使用视图能提高数据处理效率。 2. 存储过程与函数:存储过程是预编译的SQL语句集合,函数则返回单一值。它们可提高代码...

    mysql知识点整理

    MySQL知识点整理 MySQL是目前最流行的开源关系数据库管理系统之一,它的知识点体系非常庞大。下面我们将对MySQL的知识点进行整理和详细解释。 数据类型 MySQL中的数据类型可以分为五大类:数值型、字符串类型、...

    Mysql知识体系和调优

    Mysql知识体系和调优,方面了解MYSQL性能调优的知识点

Global site tag (gtag.js) - Google Analytics