MySQL DBA口试常见题目总结--索引,事宜,存储引擎,优化等
char是一个定长字段,若是申请了char(10)的空间,那么无论现实存储几多内容.该字段都占用10个字符,而varchar是变长的,也就是说申请的只是最大长度,占用的空间为现实字符长度+1,最后一个字符存储行使了多长的空间. 在检索服从上来讲,char > varchar,因此在行使中,假如确定某个字段的值的长度,可以行使char,不然应该只管行使varchar.譬喻存储用户MD5加密后的暗码,则应该行使char. 2. varchar(10)和int(10)代表什么寄义? varchar的10代表了申请的空间长度,也是可以存储的数据的最大长度,而int的10只是代表了展示的长度,不敷10位以0添补.也就是说,int(1)和int(10)所能存储的数字巨细以及占用的空间都是沟通的,只是在展示时凭证长度展示. 3. MySQL的binlog有有几种录入名目?别离有什么区别? 有三种名目,statement,row和mixed.
另外,新版的MySQL中对row级别也做了一些优化,当表布局产生变革的时辰,会记录语句而不是逐行记录. 4. 有相识横向分表和纵向分表吗? 横向分表是按行分表.假设我们有一张用户表,主键是自增ID且同时是用户的ID.数据量较大,有1亿多条,那么此时放在一张内外的查询结果就不太抱负.我们可以按照主键ID举办分表,无论噬洗尾号分,可能按ID的区间分都是可以的. 假设凭证尾号0-99分为100个表,那么每张表中的数据就仅有100w.这时的查询服从无疑是可以满意要求的. 纵向分表是按列分表.假设我们此刻有一张文章表.包括字段id-择要-内容.而体系中的展示情势是革新出一个列表,列表中仅包括问题和择要,当用户点击某篇文章进入详情时才必要正文内容.此时,假如数据量大,将内容这个很大且不常常行使的列放在一路会拖慢原表的查询速率.我们可以将上面的表分为两张.id-择要,id-内容.当用户点击详情,那主键再来取一次内容即可.而增进的存储量只是很小的主键字段.价钱很小. 虽然,分表着实和营业的关联度很高,在分表之前必然要做好调研以及benchmark.不要凭证本身的意料盲目操纵. 5. 三个范式
在计划数据库布局的时辰,要只管遵守三范式,假如不遵守,必需有足够的来由.好比机能. 究竟上我们常常会为了机能而妥协数据库的计划。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |