前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一枚女程序员眼中的mysql,值得收藏

一枚女程序员眼中的mysql,值得收藏

作者头像
企鹅号小编
发布2018-03-02 10:47:55
1.2K0
发布2018-03-02 10:47:55
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

某群聊天内容

什么是数据库?

‍‍数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,

每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

王小五

rdbms有什么特点呢?

李小男

RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

1.数据以表格的形式出现

2.每行为各种记录名称

3.每列为记录名称所对应的数据域

4.许多的行和列组成一张表单

5.若干的表单组成databas

张三

那RDBMS的术语都有什么呢?

数据库: 数据库是一些关联表的集合。.

数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。

列:一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。

行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。

冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。

主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。

外键:外键用于关联两个表。

复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。

索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

参照完整性:参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

李四

嘿,mysql是关系型数据库吗?

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

Mysql是开源的,所以你不需要支付额外的费用。

Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

MySQL使用标准的SQL数据语言形式。

Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。

MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。

Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。

怎么安装呢?

安装方式:在公众平台中输入mysql安装

王小五

Linux下常用的命令都有什么啊?

检测系统是否安装:rpm -qa grep mysql

卸载系统安装:rpm -e mysql  // 普通删除模式

rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

安装nysql:yum install mysql

yum install mysql-server

yum install mysql-devel

启动mysql:service mysqld start;

验证是否安装:[root@host]# mysqladmin --version;mysql> SHOW DATABASES;

创建用户:[root@host]# mysqladmin -u root password "new_password";

检查是否启动:ps -ef grep mysqld;

客户端工具大家都用什么?

mysqlfront,navicat,SQLyog,heidisql这些都挺好用的。

王小五

mysql的存储引擎都有什么?有什么区别?

李小男

查看平台另一篇文章,平台输入:mysql引擎

数据库都创建好了,建数据库,建立表啥的,都怎么操作呢?

查看平台另一篇文章,平台输入:mysql学习

王小五

mysql怎么快速创建一个和原来一模一样的表啊?

create table xibiao select * from jiubiao

王小五

mysql怎么快速创建一个和原来一模一样的表啊?

create table xibiao select * from jiubiao

可以在旧表上加上判断条件,查询出来的就是创建的新表。

王小五

mysql怎么导出数据呢?

SELECT * FROM runoob_tbl

INTO OUTFILE '/tmp/tutorials.txt';

今天的服务器的CPU满了,然后发现都是mysql占据了,因为执行的语句很多,但是根本不知道是哪个语句引起的,我应该怎么办才好呢?

如果为了更好的检测出SQL语句的运行速度,建议开启慢查询日志功能,它是用来记录在mysql中响应时间超过阈值的语句,具体的运行时间会记录在慢查询日志中。

慢日志怎么开启呢?

slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。

默认情况下slow_query_log的值为OFF,表示慢查询日志是禁用的,可以通过设置slow_query_log的值来开启;

show variables like '%slow_query_log%';

为OFF表示关闭;

set global slow_query_log=1;

show variables like '%slow_query_log%';

为ON表示开启;

还有一种方式:修改my.cnf文件,增加或修改参数slow_query_log 和slow_query_log_file后,然后重启MySQL服务器

那么开启了慢查询日志后,什么样的SQL才会记录到慢查询日志里面呢?

这个是由参数long_query_time控制,默认情况下long_query_time的值为10秒,可以使用命令修改,也可以在my.cnf参数里面修改。关于运行时间正好等于long_query_time的情况,并不会被记录下来。也就是说,在mysql源码里是判断大于long_query_time,而非大于等于。从MySQL 5.1开始,long_query_time开始以微秒记录SQL语句运行时间,之前仅用秒为单位记录。如果记录到表里面,只会记录整数部分,不会记录微秒部分。

开启慢日志后,我怎么知道有多少条超出了这个阈值呢?

可以使用系统变量:show global status like '%slow_queries%';

小二

我最近面试呢,总是会被问道一些mysql的问题,希望大神帮帮我,MySQL数据库cpu飙升到500%的话他怎么处理?

列出所有进程 show processlist 观察所有进程 多秒没有状态变化的(干掉),kill id ;

查看超时日志或者错误日志 (做了几年开发,一般会是查询以及大批量的插入会导致cpu与i/o上涨,,,,当然不排除网络状态突然断了,,导致一个请求服务器只接受到一半,比如where子句或分页子句没有发送,,当然的一次被坑经历)

老三

小二

你如何确定 MySQL 是否处于运行状态?

1. 在Debian 上运行命令 service mysql status,然后看输出即可。

2.在 RedHat 或者 centos 上运行命令 service mysqld status,然后看看输出即可。

老三

小二

如何列出所有数据库?

如何列出某个数据库内所有表?

1. 运行命令 show databases;

2.在当前数据库运行命令 show tables;

老三

小二

我们公司的经理叫我做备份,数据库的备份应该怎么备份呢?

查看平台另一篇文章,平台输入:mysql备份

老三

如果谁遇到了什么软件的相关问题,可以在平台评论或者联系小编,小编尽量为您解答,如果您的提问有价值,小编将会收录您的问题,延续这篇文章,更多人一起共享问题,谢谢大家观赏。

本文来自企鹅号 - 缘媛零食铺媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 缘媛零食铺媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档