MySQL看这一篇就够了

基本操作

#登陆mysql
$ mysql -uroot -p
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| localhost | debian-sys-maint |
| localhost | mysql.session    |
| localhost | mysql.sys        |
+-----------+------------------+
4 rows in set (0.00 sec)
#ok 退出MySQL 重启服务
mysql> quit;
$ systemctl restart mariadb
#发现客户端远程还是连接不上 继续修改mysql.cnf配置文件
#需要root权限,配置文件是只读的
$ vim /etc/mysql.cnf
#往下翻,注释掉这一行,保存退出
# bind-address          = 127.0.0.1
#重启服务
$ service mysql restart;
#ok 可以了

或者

#允许所有用户远程访问 修改用户名和密码为你自己的
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
#允许单个ip 修改用户名和密码为你自己的
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
#最后
mysql> FLUSH PRIVILEGES;
Oracle-SQL语法

【1】 【2】

MySQL语法

骚操作

1、查询连接数:
  • mysqladmin -uroot -proot processlist / status
    修改mysql连接数:
  • /etc/my.conf | my.ini 中的max_connections=1000
    日志位置:
  • /var/log/mysql.log
  • MySQL的各个位置:
2、mysql的压力:
  • 单表 500万条

  • 单库 30个分表

  • 一亿条数据

  • 磁盘扇区 512 byte

  • 文件系统块 4KB=8扇区

  • InnoDB页 16KB=4块=16*1行(假设1KB)
    - 非叶子节点:键值+指针
    - 叶子节点:数据
    - 一个页中不可能所有空间都用于存放数据,它还会存放一些少量的其他字段比如page level,index number等等,另外还有页的填充因子也导致一个页不可能全部用于保存数据。

  • 为什么MySQL的索引要使用B+树而不是其它树形结构?比如B树?

    • 因为B树不管叶子节点还是非叶子节点,都会保存数据,这样导致在非叶子节点中能保存的指针数量变少(有些资料也称为扇出)指针少的情况下要保存大量数据,只能增加树的高度,导致IO操作变多,查询性能变低;
  • 【B树】【索引快的原因】

3、必须会的数据库面试题

1、为什么 MySQL 的索引要使用 B+ 树,而不是其它树?

  • B±tree的查询效率更加稳定
  • B+的磁盘读写代价更低

2、InnoDB的一棵B+树可以存放多少行数据?

  • 约2千万==20G

3、什么情况下应不建或少建索引?

  • 表记录太少
  • 经常插入、删除、修改的表
  • 数据重复且分布平均的表字段

4、分表、表分区

  • 分表:指的是通过一定规则,将一张表分解成多张不同的表
  • 表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分
  • 表分区存储更多数据、优化查询、分区表更容易维护

5、MySQL优化

  • 开启查询缓存,优化查询
  • explain你的select查询
  • 为搜索字段建索引
  • 垂直分表
  • 对于大数据字段,独立表进行存储

SQL注入式

InnoDB引擎原理-ACID-事务隔离级别

【1】【2】【3】
【深度剖析】
在这里插入图片描述
在这里插入图片描述

分布式mysql

  • 允许字段的值为 null,往往会引发灾难
  • 尽可能用 union 来代替 or
  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种关系型数据库管理系统,被广泛应用于各类网站、应用程序和企业级系统中。它是由瑞典MySQL AB公司开发的,后来被Sun Microsystems收购,最终成为了Oracle公司的一部分。 MySQL以其高性能、稳定性和可靠性而闻名,不仅能够处理大规模的数据处理需求,还具备较高的扩展性和可定制性。它支持多用户访问和并发操作,并提供了完善的安全性和权限管理机制,可灵活控制用户对数据的访问权限。 MySQL采用了客户端-服务器架构,其中客户端可以是各种编程语言实现的应用程序,而服务器则负责存储和处理数据。MySQL使用了一种基于SQL(Structured Query Language,结构化查询语言)的查询语言,通过执行SQL语句实现数据的存储、检索和管理。 MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,每个存储引擎都有其特定的优势和适用场景。同时,MySQL还支持事务处理和数据备份恢复等常用功能,保证了数据的完整性和可靠性。 MySQL拥有庞大的用户群体和强大的社区支持,用户可以通过官方文档、在线论坛和社交媒体等渠道获取帮助和交流经验。此外,MySQL还有丰富的第三方工具和插件生态系统,可提供更多功能和扩展性。 总之,MySQL作为一种成熟、可靠的关系型数据库管理系统,被广泛应用于各类场景。它的强大功能、高性能和可扩展性使其成为了开发者们首选的数据库解决方案之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值