欧博代理开户

欧博博彩注册

排列三彩票网博彩注册_学习 MySQL 的 28 个小技能

发布日期:2023-10-30 05:13    点击次数:124

排列三彩票网博彩注册_学习 MySQL 的 28 个小技能

排列三彩票网博彩注册_ 序论

无论是运维、开发、测试威尼斯人捕鱼,如故架构师,数据库工夫皆是一个 必备加薪神器,那么,一直说学习数据库、学 MySQL,到底是要学习它的哪些东西呢?

一、若何快速掌执 MySQL? 1.培养趣味

趣味是最佳的陶冶,无论学习什么常识,趣味皆不错极地面提升学习后果。不管学习 MySQL5.7 如故 MySQL8.0 皆不例外!

2.夯实 SQL 基础

诡计机规模的工夫相配强调基础,刚启动学习可能还坚毅不到这少许。跟着工夫应用的深 入,唯有有着塌实的基础功底,武艺在工夫的说念路上走得更快、更远。对于 MySQL 的学习来说, SQL 语句 是其中最为基础的部分,好多操作皆是通过 SQL 语句来达成的。是以在学习的经由中, 读者要多编写 SQL 语句,对于团结个功能,使用不同的达谚语句来完成,从而深远知晓其不同之处。

🏆 这里不错参考著述:基础篇:数据库 SQL 初学教程

3.实时学习新常识

正确、有用地利用搜索引擎,不错搜索到好多对于 MySQL 的商量常识。同期,参考别 东说念主贬贬抑题的念念路,也不错吸取别东说念主的训戒,实时获取最新的工夫贵府。

4.多实践操作

数据库系统具有极强的操作性,需要多动手上机操作。在推行操作的经由中武艺发现问题, 并念念考贬贬抑题的方法和念念路,唯有这么武艺提升实战的操作武艺。

二、技能共享

底下共享学习 MySQL 的 28 个不得不知说念的小技能!

1、MySQL 中若何使用稀零字符?

诸如单引号 ',双引号 ",反斜线 \ 等记号,这些记号在 MySQL 中不可径直输入使用,否则会产生猜度之外的扫尾。

例如:

皇冠3.0多少匹马力

假定 Lucifer 表中需要存入一滑记载,值为 lucifer's dog,其中的单引号 ' 号,如若不作念转义,则无法顺利践诺:

mysql> 威尼斯人捕鱼create table lucifer (id int,name char(100)); Query OK, 0 rows affected (0.02 sec)  mysql> insert into lucifer values (1,'lucifer's dog');     '>      '> mysql>   ^C mysql> 

在 MySQL 中,这些稀零字符称为转义字符,在输入时需要以反斜线记号 \ 起首,是以在使用单引号和双引号时应分别输入 \' 或者 \",输入反斜线时应该输入 \\,其他稀零字符还有回车符 \r,换行符 \n,制表符 \tab,退格符 \b 等。

mysql> create table lucifer (id int,name char(100)); Query OK, 0 rows affected (0.03 sec)  mysql> insert into lucifer values (1,'lucifer\'s dog'); Query OK, 1 row affected (0.00 sec)  mysql> select * from lucifer; +------+---------------+ | id   | name          | +------+---------------+ |    1 | lucifer's dog | +------+---------------+ 1 row in set (0.00 sec) mysql>  

📢 闪耀: 在向数据库中插入这些稀零字符时,一定要进行转义处理。

皇冠登3代理出租 2、MySQL 中不错存储文献吗?

谜底天然是不错的!

MySQL 中的 BLOB 和 TEXT 字段类型不错存储数据量较大的文献,不错使用这些数据类型 存储图像、声息或者是大容量的文本内容,例如网页或者文档。

mysql> create table view(id int unsigned NOT NULL AUTO_INCREMENT, catid int,title varchar(256),picture MEDIUMBLOB, content TEXT,PRIMARY KEY (id)); Query OK, 0 rows affected (0.03 sec)  mysql> show fields from view; +---------+--------------+------+-----+---------+----------------+ | Field   | Type         | Null | Key | Default | Extra          | +---------+--------------+------+-----+---------+----------------+ | id      | int unsigned | NO   | PRI | NULL    | auto_increment | | catid   | int          | YES  |     | NULL    |                | | title   | varchar(256) | YES  |     | NULL    |                | | picture | mediumblob   | YES  |     | NULL    |                | | content | text         | YES  |     | NULL    |                | +---------+--------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)  mysql>  

诚然使用 BLOB 或者 TEXT 可 以存储大容量的数据,然而对这些字段的处招待缩短数据库的性能。

📢 闪耀: 如若并非必要,不错选拔只储存文献的旅途。

3、MySQL 中若何践诺鉴别大小写的字符串比拟?

MySQL 是 不鉴别大小写 的,因此字符串比拟函数也不鉴别大小写。

mysql> select 'TRUE' from dual where 'DOG' = 'dog'; +------+ | TRUE | +------+ | TRUE | +------+ 1 row in set (0.00 sec) 

如若想践诺鉴别大小写的比拟,不错在字符串前边添加 BINARY 关键字。

mysql> select 'TRUE' from dual where BINARY'DOG' = 'dog'; Empty set (0.00 sec)  mysql>  

例如默许情况下,’DOG‘=’dog‘ 复返扫尾为 TRUE,如若使用 BINARY 关键字,BINARY’DOG’=‘dog’ 扫尾为 FALSE,在鉴别大小写的情况下,’DOG’ 与 ’dog’ 并不疏通。

4、若何从日历时间值中获取年、月、日等部分日历或时间值?

MySQL 中,日历时间值以字符串神志存储在数据表中,因此不错使用字符串函数分别截取日历时间值的不同部分。

mysql> create table lucifer(date date); Query OK, 0 rows affected (0.04 sec)  mysql> show fields from lucifer; +-------+------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------+------+-----+---------+-------+ | date  | date | YES  |     | NULL    |       | +-------+------+------+-----+---------+-------+ 1 row in set (0.00 sec)  mysql> insert into lucifer values (now()); Query OK, 1 row affected, 1 warning (0.00 sec)  mysql> select * from lucifer; +------------+ | date       | +------------+ | 2021-11-25 | +------------+ 1 row in set (0.00 sec) 

例如某个称号为 date 的字段有值 2021-11-25,如若只需要取得年值,不错输入 LEFT(date, 4),这么就取得了字符串左边启动长度为 4 的子字符串,即 YEAR 部分的值;

mysql> select LEFT(date, 4) from lucifer; +---------------+ | LEFT(date, 4) | +---------------+ | 2021          | +---------------+ 1 row in set (0.00 sec) 

如若要获取月份值,不错输入 MID(date,6,2),字符串第 6 个字符启动,长度为 2 的子字符串恰好为 date 中的月份值。同理,读者不错左证其他日历和时间的位置,诡计并获取相应的值。

mysql> select MID(date,6,2) from lucifer; +---------------+ | MID(date,6,2) | +---------------+ | 11            | +---------------+ 1 row in set (0.00 sec) 
5、若何改变默许的字符集?

CONVERT() 函数改变指定字符串的默许字符集!

MySQL 的安设和成就经由中,其中的一个范例是不错选拔 MySQL 的默许字符集。然而,如若只改变字符集,莫得必要把成就经由重新践诺一遍,在这里,一个简短的款式是 修改成就文献。

读者不错在修改字符集时使用 SHOW VARIABLES LIKE 'character_set_%'; 或者 status 呐喊稽查现时字符集,以进行对比。

mysql> SHOW VARIABLES LIKE 'character_set_%'; +--------------------------+----------------------------+ | Variable_name            | Value                      | +--------------------------+----------------------------+ | character_set_client     | latin1                     | | character_set_connection | latin1                     | | character_set_database   | utf8mb3                    | | character_set_filesystem | binary                     | | character_set_results    | latin1                     | | character_set_server     | utf8mb4                    | | character_set_system     | utf8mb3                    | | character_sets_dir       | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)  mysql> status -------------- mysql  Ver 8.0.26-0ubuntu0.21.04.3 for Linux on aarch64 ((Ubuntu))  Connection id:          10 Current database: Current user:           root@localhost SSL:                    Not in use Current pager:          stdout Using outfile:          '' Using delimiter:        ; Server version:         8.0.26-0ubuntu0.21.04.3 (Ubuntu) Protocol version:       10 Connection:             Localhost via UNIX socket Server characterset:    utf8mb4 Db     characterset:    utf8mb4 Client characterset:    latin1 Conn.  characterset:    latin1 UNIX socket:            /var/run/mysqld/mysqld.sock Binary data as:         Hexadecimal Uptime:                 36 min 55 sec  Threads: 2  Questions: 325  Slow queries: 0  Opens: 181  Flush tables: 3  Open tables: 69  Queries per second avg: 0.146 --------------  mysql>  

MySQL 成就文献称号为 my.cnf,该文献在 MySQL 的安设目次底下。修改成就文献中的 default-character-set 和 character-set-server 参数值,将其改为想要的字符集称号,如 gbk、gb2312、latinl 等,修改完之后重新启动 MySQL 工作,即可收效。

## 找到 my.cnf 位置 root@modb:~# find /etc -iname my.cnf -print /etc/alternatives/my.cnf /etc/mysql/my.cnf  ## 修改字符集 在[client ]底下加入 default-character-set=utf8 在[ mysqld ] 底下加 character_set_server=utf8  ## 重启 mysql 收效 service mysql restart 

此时,登录 MySQL 后使用 SHOW VARIABLES LIKE 'character_set_%'; 或者 status 呐喊稽查修改扫尾!

6、DISTINCT 不错应用于总共的列吗?

查询扫尾中,如若需要对列进行降序排序,不错使用 DESC,这个关键字只能对其前边的列 进行降序陈设。

mysql> select * from lucifer; +------+----------+ | id   | name     | +------+----------+ |    1 | lucifer  | |    2 | lucifer1 | |    3 | lucifer2 | +------+----------+ 3 rows in set (0.00 sec)  mysql> select * from lucifer order by id desc; +------+----------+ | id   | name     | +------+----------+ |    3 | lucifer2 | |    2 | lucifer1 | |    1 | lucifer  | +------+----------+ 3 rows in set (0.00 sec) 

例如,要对多列皆进行降序排序,必须要在每一列的列名背面加 DESC 关键字。

mysql> select * from lucifer order by id desc,name desc; +------+----------+ | id   | name     | +------+----------+ |    3 | lucifer2 | |    2 | lucifer1 | |    1 | lucifer  | +------+----------+ 3 rows in set (0.00 sec) 

而 DISTINCT 不同,DISTINCT 不可部分使用。换句话说,DISTINCT 关键字应用于总共列而不仅是它背面的第一个指定列。

例如,查询 2 个字段 sex,age,如若不同记载的这 2 个字段的组合值皆不同,则总共记载皆会被查询出来。

mysql> select * from lucifer; +------+-----------+--------+------+ | id   | name      | sex    | age  | +------+-----------+--------+------+ |    1 | xiaoli    | male   |   20 | |    1 | xiaoliu   | female |   21 | |    1 | xiaozhang | female |   21 | |    1 | xiaowu    | female |   21 | +------+-----------+--------+------+ 4 rows in set (0.00 sec)  mysql> select distinct sex,age from lucifer; +--------+------+ | sex    | age  | +--------+------+ | male   |   20 | | female |   21 | +--------+------+ 2 rows in set (0.00 sec)  mysql>  
7、ORDER BY 不错和 LIMIT 搀杂使用吗?

在使用 ORDER BY 子句时,应保证其位于 FROM 子句之后,如若使用 LIMIT,则必须位于 ORDER BY 之后,如若子句端正不正确,MySQL 将产生空幻讯息。

✅ 正确用法:

mysql> select * from lucifer order by age desc limit 2,4; +------+--------+--------+------+ | id   | name   | sex    | age  | +------+--------+--------+------+ |    1 | xiaowu | female |   21 | |    1 | xiaoli | male   |   20 | +------+--------+--------+------+ 2 rows in set (0.00 sec) 

❎ 空幻用法:

mysql> select * from lucifer limit 2,4 order by age desc; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by age desc' at line 1 mysql>  
8、什么时候使用引号?

在查询的时候,会看到在 WHERE 子句中使用条目,有的值加上了单引号,而有的值未加。

mysql> select * from lucifer where sex = 'female'; +------+-----------+--------+------+ | id   | name      | sex    | age  | +------+-----------+--------+------+ |    1 | xiaoliu   | female |   21 | |    1 | xiaozhang | female |   21 | |    1 | xiaowu    | female |   21 | +------+-----------+--------+------+ 3 rows in set (0.00 sec)  mysql>  

单引号用来贬抑字符串,如若将值与字符串类型列进行比拟,则需要贬抑引号;而用来与数值进行比拟则不需要用引号。

mysql> select * from lucifer where age = 20; +------+--------+------+------+ | id   | name   | sex  | age  | +------+--------+------+------+ |    1 | xiaoli | male |   20 | +------+--------+------+------+ 1 row in set (0.00 sec)  mysql>  
9、在 WHERE子句中 AND 和 OR 必须使用圆括号吗?

任何时候使用具有 AND 和 OR 操作符的 WHERE 子句,皆应该使用圆括号明确操作端正。

mysql> select * from lucifer where (age = 20 or sex = 'female') and name != 'xiaowu'; +------+-----------+--------+------+ | id   | name      | sex    | age  | +------+-----------+--------+------+ |    1 | xiaoli    | male   |   20 | |    1 | xiaoliu   | female |   21 | |    1 | xiaozhang | female |   21 | +------+-----------+--------+------+ mysql> 3 rows in set (0.00 sec) 

如若条目较多,即使能笃定诡计次第,默许的诡计次第也可能会使 SQL 语句不易知晓,因此使 用括号明确操作符的次第,是一个好的习尚。

10、更新或者删除表时必须指定 WHERE子 句吗?

个东说念主提议总共的 UPDATE 和 DELETE 语句十足在 WHERE 子句中指定条目。

mysql> update lucifer set age = 22 where name = 'xiaoliu'; Query OK, 1 row affected (0.01 sec) Rows matched: 1  Changed: 1  Warnings: 0  mysql> select * from lucifer where name = 'xiaoliu'; +------+---------+--------+------+ | id   | name    | sex    | age  | +------+---------+--------+------+ |    1 | xiaoliu | female |   22 | +------+---------+--------+------+ 1 row in set (0.00 sec)  mysql>  

如若不祥 WHERE 子句,则 UPDATE 或 DELETE 将被应用到表中总共的行。

mysql> update lucifer set age = 22; Query OK, 3 rows affected (0.01 sec) Rows matched: 4  Changed: 3  Warnings: 0  mysql> select * from lucifer; +------+-----------+--------+------+ | id   | name      | sex    | age  | +------+-----------+--------+------+ |    1 | xiaoli    | male   |   22 | |    1 | xiaoliu   | female |   22 | |    1 | xiaozhang | female |   22 | |    1 | xiaowu    | female |   22 | +------+-----------+--------+------+ 4 rows in set (0.00 sec)  mysql>  

因此,除非确乎绸缪更新或者删除总共记载,否则要闪耀使用不带 WHERE 子句的 UPDATE 或 DELETE 语句。

📢 闪耀: 提议在对表进行更新和删除操作之前,使用 SELECT 语句阐发需要删除的记载,以免形成无法支持的扫尾。

11、索引对数据库性能如斯清苦,应该若何使用它?

索引的优点:

通过创建唯一索引不错保证数据库表中每一滑数据的唯一性。 不错给总共的 MySQL 列类型竖立索引。 不错大大加速数据的查询速率,这是使用索引最主要的原因。 在达成数据的参考完竣性方面不错加速表与表之间的集中。 在使用分组和排序子句进行数据查询时也不错权臣减少查询平分组和排序的时间

纰谬:

创建和爱戴索引组要消费时间,况兼跟着数据量的增多所消费的时间也会增多。 索引需要占磁盘空间,除了数据表占数据空间除外,每一个索引还要占一定的物理空间。如若有多半的索引,索引文献可能比数据文献更快达到最大文献尺寸。 当对表中的数据进行增多、删除和修改的时候,索引也要动态爱戴,这么就缩短了数据的爱戴速率。

使用索引时,需要概括研讨索引的优点和纰谬。

为数据库选拔正确的索引是一项复杂的任务。如若索引列较少,则需要的磁盘空间和爱戴支出 皆较少。如若在一个大表上创建了多种组合索引,欧博体育索引文献也会扩张很快。

而另一方面,索引较多 可粉饰更多的查询。可能需要磨真金不怕火多少不同的假想,武艺找到最有用的索引。不错添加、修改和删 除索引而不影响数据库架构或应用范例假想。

因此,应尝试多个不同的索引从而开导最优的索引。

12、尽量使用短索引(前缀索引)

对字符串类型的字段进行索引,如若可能应该指定一个前缀长度。

例如,如若有一个 CHAR(255) 的列,如若在前 10 个或 30 个字符内,多数值是唯一的,则不需要对总共这个词列进行索引。

mysql> select * from lucifer; +------+-----------+--------+------+ | id   | name      | sex    | age  | +------+-----------+--------+------+ |    1 | xiaoli    | male   |   22 | |    1 | xiaoliu   | female |   22 | |    1 | xiaozhang | female |   22 | |    1 | xiaowu    | female |   22 | +------+-----------+--------+------+ 4 rows in set (0.00 sec)  mysql> create index idx_lucifer_name on lucifer (name(4)); Query OK, 0 rows affected (0.03 sec) Records: 0  Duplicates: 0  Warnings: 0  mysql> show index from lucifer; +---------+------------+------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+ | Table   | Non_unique | Key_name         | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression | +---------+------------+------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+ | lucifer |          1 | idx_lucifer_name |            1 | name        | A         |           1 |        4 |   NULL | YES  | BTREE      |         |               | YES     | NULL       | +---------+------------+------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+ 1 row in set (0.01 sec)  mysql>  

短索引不仅不错提升查询速率而且不错省俭磁盘空间、减少 I/O 操作。

13、MySQL 存储经由和函数有什么区别?

在本体上它们皆是存储范例。

函数:

只能通过 return 语句复返单个值或者表对象; 贬抑比拟多,不可用临时表,只能用表变量,还有一些函数皆不可用等等; 不错镶嵌在 SQL 语句中使用,不错在 SELECT 语句中动作查询语句的一个部分调用;

存储经由:

体育彩票竞彩网 不允许践诺 return,然而不错通过 out 参数复返多个值; 贬抑相对就比拟少; 一般是动作一个寥寂的部分来践诺; 14、存储经由中的内容不错改变吗?

不不错!

现在,MySQL 还不提供对已存在的存储经由代码的修改,如若必须要修改存储经由,必须使用 DROP 语句删除之后,再重新编写代码,或者创建一个新的存储经由。

不得不说,这方面如故 Oracle 作念的比拟好。

15、存储经由中不错调用其他存储经由吗?

不错!

存储经由包含用户界说的 SQL 语句荟萃,不错使用 CALL 语句调用存储经由,天然在存储经由中也不错使用 CALL 语句调用其他存储经由,然而不可使用 DROP 语句删除其他存储经由。

娱乐 16、存储经由的参数不要与数据表中的字段名疏通。

在界说存储经由参数列表时,应闪耀把参数名与数据库表中的字段名区别开来,否则将出 现无法预期的扫尾。

17、存储经由的参数不错使用汉文吗?

一般情况下,可能会出现有储经由中传入汉文参数的情况,例如某个存储经由左证用户的 名字查找该用户的信息,传入的参数值可能是汉文。这时需要在界说存储经由的时候,在背面加 上 character set gbk,否则调用存储经由使用汉文参数会出错,比如界说 userInfo 存储经由,代码 如下:

CREATE PROCEDURE useInfo(IN u_name VARCHAR(50) character set gbk, OUT u_age INT)

众诚科技于2022年9月7日披露的招股说明书显示,公司拟募集资金13,000.00万元,分别用于数字化解决方案开发平台升级建设项目、数字化技术应用研发中心建设项目、营销及服务平台建设项目、补充流动资金。

18、MySQL 中视图和表的区别以及商量是什么?

两者的区别:

视图是一经编译好的 SQL 语句,是基于 SQL 语句的扫尾集的可视化的表,而表不是; 视图莫得推行的物理记载,而基本表有; 表是内容,视图是窗口; 表占用物理空间而视图不占用物理空间,视图仅仅逻辑主张的存在,表不错实时对它进行修改,但视图只能用创建的语句来修改; 视图是稽查数据表的一种方法,不错查询数据表中某些字段组成的数据,仅仅一些SQL 语句的荟萃。从安全的角度来说,视图不错防护用户战役数据表,因而用户不知说念表结构; 表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表; 视图的开导和删除只影响视图本人,不影响对应的基本表;

两者的商量:

视图(view)是在基本表之上开导的表,它的结构(即所界说的列)和内容(即总共记载) 皆来自基本表,它依据基本表存在而存在。

一个视图不错对应一个基本表,也不错对应多个基本表。

博彩注册

视图是基本表的抽象和在逻辑风趣上开导的新关系。

19、使用触发器时须极端闪耀!

在使用触发器的时候需要闪耀,对于疏通的表,疏通的事件只能创建一个触发器。

mysql> create trigger lucifer_tri before insert on lucifer for each row set NEW.id=NEW.id+1; Query OK, 0 rows affected (0.01 sec)  mysql>  mysql>  mysql> select * from lucifer; +------+-----------+--------+------+ | id   | name      | sex    | age  | +------+-----------+--------+------+ |    1 | xiaoli    | male   |   22 | |    1 | xiaoliu   | female |   22 | |    1 | xiaozhang | female |   22 | |    1 | xiaowu    | female |   22 | |    1 | lucifer   | male   |   20 | |    1 | lucifer   | male   |   20 | +------+-----------+--------+------+ 6 rows in set (0.00 sec)  mysql> insert into lucifer values(1,'lucifer','male',20); Query OK, 1 row affected (0.00 sec)  mysql> select * from lucifer; +------+-----------+--------+------+ | id   | name      | sex    | age  | +------+-----------+--------+------+ |    1 | xiaoli    | male   |   22 | |    1 | xiaoliu   | female |   22 | |    1 | xiaozhang | female |   22 | |    1 | xiaowu    | female |   22 | |    1 | lucifer   | male   |   20 | |    1 | lucifer   | male   |   20 | |    2 | lucifer   | male   |   20 | +------+-----------+--------+------+ 7 rows in set (0.00 sec) 

比如对表 lucifer 创建了一个 BEFORE INSERT 触发器,那么如若对表 lucifer 再次创建一个 BEFORE INSERT 触发器,MySQL 将会报错,此时,只能以在表 lucifer 上创建 AFTER INSERT 或者 BEFORE UPDATE 类型的触发器。

mysql> create trigger lucifer_tri before insert on lucifer for each row set NEW.id=NEW.id+1; ERROR 1359 (HY000): Trigger already exists mysql>  

天果然利用触发器将为操作省去好多窒碍。

20、实时删除不再需要的触发器触发器

界说之后,每次践诺触发事件,皆会激活触发器并践诺触发器中的语句。

如若需求发生变化,而触发器莫得进行相应的改变或者删除,则触发器仍然会践诺旧的语句,从而会影响新的数据的完竣性。

mysql> drop trigger lucifer_tri; Query OK, 0 rows affected (0.03 sec)  mysql>  

因此,要将不再使用的触发器实时删除。

21、应该使用哪种方法创建用户?(3种款式)

创建用户有 3 种方法:

使用 CREATE USER 语句创建用户 在 mysql.user 表中添加用户 使用 GRANT 语句创建用户(仅限 MySQL 8 版块以下使用)

一般情况, 最佳使用 GRANT 或者 CREATE USER 语句,而不要径直将用户信息插入 user 表,因为 user 表中存储了全局级别的权限以偏激他的账户信息,如若随机好像了 user 表中的记载,则可能会对 MySQL 工作器形成很大影响。

-- 使用 CREATE USER 语句创建用户 mysql> create user 'lucifer'@'localhost' identified by 'lucifer'; Query OK, 0 rows affected (0.01 sec)  mysql>   -- 在 mysql.user 表中添加用户 mysql> select MD5('lucifer'); +----------------------------------+ | MD5('lucifer')                   | +----------------------------------+ | cae33a0264ead2ddfbc3ea113da66790 | +----------------------------------+ 1 row in set (0.00 sec)  mysql>  mysql> INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, ssuex509_i09_sr, x5ubject) VALUES ('lohoscalt',uci 'lfer MD5('1',lucifer'), '', '',; '') Query OK, 1 row affected (0.01 sec)  mysql>   -- 使用 GRANT 语句创建用户 mysql> GRANT SELECT ON*.* TO 'lucifer2'@localhost IDENTIFIED BY 'lucifer'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'lucifer'' at line 1 mysql> 

📢 闪耀: 由于测试使用的是 MySQL 8 版块,一经不缓助 GRANT 径直创建用户,5.7 版块依然是缓助的。

22、mysqldump 备份的文献只能在 MySQL 中使用吗?

逻辑备份器具,适用于总共的存储引擎,缓助温备、完全备份、部分备份、对于 InnoDB 存储引擎缓助热备。

mysqldump 备份的文本文献推行是数据库的一个副本,使用该文献不仅不错在 MySQL 中规复数据库,而且通过对该文献的简短修改,不错使用该文献在 SQL Server 或者 Sybase 等其他数据库中规复数据库。

皇冠体育hg86a

root@modb:~# mysqldump -uroot -p hr > /root/hr.db Enter password:  root@modb:~#  root@modb:~# ll hr.db  -rw-r--r-- 1 root root 25327 Nov 26 08:52 hr.db 

这在某种进度上达成了数据库之间的移动。

23、若何选拔备份器具?

左证备份的方法(是否需要数据库离线)不错将备份分为:

热备(Hot Backup) 冷备(Cold Backup) 温备(Warm Backup)

MySQL 中进行不同款式的备份还要研讨存储引擎是否缓助,如 MyISAM 不缓助热备,缓助温备和冷备。而 InnoDB 缓助热备、温备和冷备。

一般情况下,咱们需要备份的数据分为以下几种:

皇冠博彩网站一家博彩行业知名度较高在线博彩平台,网站以其丰富博彩种类、博彩攻略技巧分享,用户口碑良好服务质量著称。 表数据 二进制日记、InnoDB 事务日记 代码(存储经由、存储函数、触发器、事件改换器) 工作器成就文献

底下是几种常用的备份器具:

mysqldump:逻辑备份器具,适用于总共的存储引擎,缓助温备、完全备份、部分备份、对于 InnoDB 存储引擎缓助热备。 cp、tar 等存档复制器具:物理备份器具,适用于总共的存储引擎、冷备、完全备份、部分备份。 lvm2 snapshot:借助文献系统料理器具进行备份。 mysqlhotcopy:名不副实的一个器具,仅缓助 MyISAM 存储引擎。 xtrabackup:一款由 percona 提供的相配宽绰的 InnoDB/XtraDB 热备器具,缓助完全备份、增量备份。

径直复制数据文献是最为径直、快速的备份方法,但纰谬是基本上不可达成增量备份。备份时必须确保莫得使用这些表。如若在复制一个表的同期工作器正在修改它,则复制无效。备份 文献时,最佳关闭工作器,然后重新启动工作器。

24、普遍应该翻开哪些日记?

日记既会影响 MySQL 的性能,又会占用多半磁盘空间。因此,如若不消要,应尽可能少地 开启日记。

左证不同的使用环境,不错研讨开启不同的日记。

例如,在开发环境中优化查询后果低的语句,不错开启慢查询日记;

开启慢查询日记: 不错让MySQL记载下查询进步指定时间的语句,通过定位分析性能的瓶颈,武艺更好的优化数据库系统的性能。

排列三彩票网
-- 查验是否开启慢查询 mysql> show variables like 'slow_query%'; +---------------------+------------------------------+ | Variable_name       | Value                        | +---------------------+------------------------------+ | slow_query_log      | OFF                          | | slow_query_log_file | /var/lib/mysql/modb-slow.log | +---------------------+------------------------------+ 2 rows in set (0.00 sec)  mysql> show variables like 'long_query_time'; +-----------------+-----------+ | Variable_name   | Value     | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.01 sec)  -- 开启慢查询日记 mysql> set global slow_query_log='ON';  Query OK, 0 rows affected (0.00 sec)  -- 竖立查询进步10秒就记载 mysql> set global long_query_time=10; Query OK, 0 rows affected (0.00 sec)  -- 再次查验是否开启 mysql> show variables like 'slow_query%'; mysql> +---------------------+------------------------------+ | Variable_name       | Value                        | +---------------------+------------------------------+ | slow_query_log      | ON                           | | slow_query_log_file | /var/lib/mysql/modb-slow.log | +---------------------+------------------------------+ 2 rows in set (0.00 sec) 

如若需要记载用户的总共查询操作,不错开启通用查询日记;

mysql> show variables like 'general_log%'; +------------------+-------------------------+ | Variable_name    | Value                   | +------------------+-------------------------+ | general_log      | OFF                     | | general_log_file | /var/lib/mysql/modb.log | +------------------+-------------------------+ 2 rows in set (0.00 sec)  -- 开启通用查询日记 mysql> SET GLOBAL general_log=1;  Query OK, 0 rows affected (0.00 sec)  mysql> show variables like 'general_log%'; +------------------+-------------------------+ | Variable_name    | Value                   | +------------------+-------------------------+ | general_log      | ON                      | | general_log_file | /var/lib/mysql/modb.log | +------------------+-------------------------+ 2 rows in set (0.00 sec) 

如若需要记载数据的变更,不错开启二进制日记;空幻日记是默许开启的。

mysql> show variables like 'log_bin%'; +---------------------------------+-----------------------------+ | Variable_name                   | Value                       | +---------------------------------+-----------------------------+ | log_bin                         | ON                          | | log_bin_basename                | /var/lib/mysql/binlog       | | log_bin_index                   | /var/lib/mysql/binlog.index | | log_bin_trust_function_creators | OFF                         | | log_bin_use_v1_row_events       | OFF                         | +---------------------------------+-----------------------------+ 5 rows in set (0.00 sec)  mysql>  
25、若何使用二进制日记?

二进制日记主要用来记载数据变更。

皇冠体育

如若需要记载数据库的变化,不错开启二进制日记。基于二进制日记的特质,不仅不错用来进行数据规复,还可用于数据复制。

root@modb:/var/lib/mysql# ls binlog* binlog.000001  binlog.000002  binlog.index root@modb:/var/lib/mysql# mysqlbinlog binlog.000001 | mysql -u root -p                                             Enter password:  root@modb:/var/lib/mysql#  

在数据库依期备份的 情况下,如若出现数据丢失,不错先用备份规复大部分数据,然后使用二进制日记规复最近备份后变更的数据。在双机热备情况下,不错使用 MySQL 的二进制日记记载数据的变更,然后将变更部分复制到备份工作器上。

26、若何使用慢查询日记?

慢查询日记主要用来记载查询时间较长的日记。

皇冠体育打不开

在开发环境下,不错开启慢查询日记来记载查询时间较长的查询语句,然后对这些语句进行优化。

root@modb:/var/lib/mysql# cat /var/lib/mysql/modb-slow.log /usr/sbin/mysqld, Version: 8.0.26-0ubuntu0.21.04.3 ((Ubuntu)). started with: Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock Time                 Id Command    Argument root@modb:/var/lib/mysql#  

通过配 long_query_time 的值,不错天真地掌执不同进度的慢查询语句。

27、是不是索引开导得越多越好?

合理的索引不错提升查询的速率,但不是索引越多越好。

在践诺插入语句的时候,MySQL 要为新插入的记载开导索引。是以过多的索引会导致插入操作变慢。原则上是唯有查询用的字段才开导索引。

使用索引时,需要概括研讨索引的优点和纰谬。

28、若何使用查询缓冲区?

查询缓冲区不错提升查询的速率,然而这种款式只合适查询语句比拟多、更新语句比拟少 的情况。

默许情况下查询缓冲区的大小为 0,也即是不可用。不错修改 queiy_cache_size 以调养查询缓冲区大小;修改 query_cache_type 以调养查询缓冲区的类型。

在 my.cnf 中修改 query_cache_size 和 query_cache_type 的值如下所示:

[mysqld] query_cache_size= 512M  query_cache_type= 1 query_cache_type=1 

暗示开启查询缓冲区。

唯有在查询语句中包含 SQL_NO_CACHE 关键字时,才不会使用查询缓冲区。不错使用 FLUSH QUERY CACHE 语句来刷新缓冲区,算帐查询缓冲区中的碎屑。

皇冠客服飞机:@seo3687