专栏首页FREE SOLO关于MySQL的若干遗留问题(一)

关于MySQL的若干遗留问题(一)

1.如何优化因 MySQL 读写频繁,负载过高导致的CPU高占用率? 一、如果是写比较少,读比较高,可以做读写分离,一主多从; 二、如果是读写都很多 ,使用分库分表,多主多从;

2.MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义? 1)、varchar与char的区别char是一种固定长度的类型,varchar则是一种可变长度的类型 尽可能的使用 varchar 代替 char ,因为首先变长字段存储空间小,可以节省存储空间, 其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。 2)、varchar(50)代表的含义: varchar(50)中50的涵义最多存放50个字符,varchar(50)和(200)存储hello所占空间一样,但后者在排序时会消耗更多内存,因为order by col采用fixed_length计算col长度(memory引擎也一样) 。int(20)中20的含义:

int(20)中20的涵义是指显示字符的长度但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示00000000001 —00000000010,当字符的位数超过11,它也只显示11位,如果你没有加那个让它未满11位就前面加0的参数,它不会在前面加020表示最大显示宽度为20,但仍占4字节存储,存储范围不变。

3.请简洁地描述下 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别? 四种隔离级别: read uncommitted 未提交读 read committed 提交读 repeatable read 重复读 serializable 可串行化 不同级别的现象: 脏读:一个事务可以读取到另一个事务尚未提交的数据 不可重复读:两个事务读取同一条记录,两次读取的结果不一样 幻读:在一个事务中,由于其他插入操作事务的提交,导致返回了以前不存在的记录不同的隔离级别有不同的现象,并有不同的锁定/并发机制,隔离级别越高,数据库的并发性就越差

5.若一张表中只有一个字段VARCHAR(N)类型,utf8编码,则N最大值为多少(精确到数量级即可)?

由于utf8的每个字符最多占用3个字节。而MySQL定义行的长度不能超过65535,因此N的最大值计算方法为:(65535-1-2)/3。减去1的原因是实际存储从第二个字节开始,减去2的原因是因为要在列表长度存储实际的字符长度,除以3是因为utf8限制:每个字符最多占用3个字节。

6.[SELECT *] 和[SELECT 全部字段]的2种写法有何优缺点?

  1. 前者要解析数据字典,后者不需要
  2. 结果输出顺序,前者与建表列顺序相同,后者按指定字段顺序。
  3. 表字段改名,前者不需要修改,后者需要改
  4. 后者可以建立索引进行优化,前者无法优化
  5. 后者的可读性比前者要高

7.MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?

InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 运营不知KPI,走遍天下也枉然

    KPI的完整形式是Key Performance Indicator,用中文解释是一个非常高大上的词汇,叫做“关键绩效指标”。通俗一点地解释,就是选取关系到公司...

    葆宁
  • 解决哈希冲突的常用方法有哪些?

    基本思想是:当关键字key的哈希地址p=H(key)出现冲突时,以p为基础,产生另一个哈 希地址p1,如果p1仍然冲突,再以p为基础,产生另一个哈希地址p2,...

    葆宁
  • 谈谈反射

    (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))

    葆宁
  • 智能合约游戏之殇——God.Game 事件分析

    作者:Sissel@知道创宇404区块链安全研究团队 发布时间:2018/08/24

    Seebug漏洞平台
  • 基于Qtum量子链的全球最大区块链通讯社区BeeChat发布新版本

    基于Qtum量子链全球最大区块链通讯社区BeeChat发布新版本,打造区块链生态开放平台 近日,基于量子链的全球最大区块链通讯社区BeeChat发布最新版本,在...

    企鹅号小编
  • 如何通过 Matplotlib 绘制动画及保存 GIF 图片?

    在自学机器学习或者是深度学习的过程中,有的时候总想把执行过程或者执行结果显示出来,所以就想到了动画。好在用 Python 实现动画有许多中方式,而大家熟知的 M...

    Frank909
  • 关注成效而非产出

    我一直认为成效是我们应该关注的重点。试想一个团队提供了很多功能(无论我们是用代码量、功能点、还是用户故事来度量),只要这些功能没有帮助用户改善生产活动,其实都是...

    ThoughtWorks
  • java设计模式之访问者模式

    访问者(Visitor Pattern)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元...

    用户4361942
  • 深度学习中超大规模数据集的处理

    在机器学习项目中,如果使用的是比较小的数据集,数据集的处理上可以非常简单:加载每个单独的图像,对其进行预处理,然后输送给神经网络。但是,对于大规模数据集(例如I...

    云水木石
  • RequireJS 模块化加载框架使用

    同样的,首先是下载好 require.js --> http://requirejs.org/docs/download.html#requirejs

    书童小二

扫码关注云+社区

领取腾讯云代金券