面试题问法:
1.数据库表不同表操作的一致性
2.项目中用的mysql哪些事务,几种事务的区别,在项目实际场景中的应用,mysql使用的数据库引擎是什么?为什么要用这种隔离级别?
3.mysql有几种事务隔离级别,以及他们的区别
4.mysql查询当前时间(重点)
6.平时写sql注意哪些 除了索引
7.怎么查询当前数据库时间
8.怎么使用命令给表中插入一个字段
alter table t_site_audit add id_number varchar(64)COMMENT ‘ID号’;
9. Mysql查询慢怎么办?
10.开启慢查询日志定位;加索引;分表;
选择正确的存储引擎,优化sql语句
(避免select *,order by rand ,尽可能使用 nut null 等)硬件的升级 等
A=1 b=1 c=1 a b c, a b , a c , b c, a , b 哪些会被索引?
最佳左前缀法则
11. Mysql主从是同时实现的吗?
不是
15、 如何解决数据同步的问题(重点)
16、 现场写sql
17.explain,索引优化相关的。
18、索引优化
19.sql优化、索引
20.mysql的默认隔离级别
21.sql索引,sql优化
22.数据库死锁之类的问题,还有事务的隔离级别,
23.可重复度能解决幻读得问题吗,怎末解决,
33、平常优化过有问题的SQL吗?
34、你怎么确定哪个字段要加索引,或者有没有索引?
35、where条件有三个,怎么区分三个条件那个要加,要加在那个上
36、mysql库表的设计是由谁来做的?是你项目经理还是自己?
37、Mycat怎么使用的,是怎么分片的,全局序列怎么做的(问到了)
38.项目中用的mysql哪些事务,
39、mysql怎么优化的
40.sql出几个场景口述下怎么实现?
41.sql问的比较多,包括动态sql
42.mysql,有没有参与数据库设计(没有),现场出个简单场景让你设计表关系及字段
43.mysql索引失效情况、sql优化分析重点看什么信息、慢查询日志
44.mysql优化,索引失效(为什么不满足最佳左前缀会索引失效)
45.你写过最复杂的sql是什么?现场写一个
46.在哪些情况下不应该使用索引 7.为什么要加索引,及优缺点。
47.说出mycat主从复制原理。sql语句执行慢的原因有哪些?你是如何解决的。sql级别优化有哪些?
48.MySQL优化
50.sql查询当前时间
第一种方法:select current_date;
mysql> select current_date as Systemtime;
±-----------+
| Systemtime |
±-----------+
| 2009-07-29 |
±-----------+
第二种方法:select now()
mysql> select now() as Systemtime;
±--------------------+
| Systemtime |
±--------------------+
| 2009-07-29 19:06:07 |
±--------------------+
第三种方法:select sysdate()
mysql> select sysdate() as Systemtime;
±--------------------+
| Systemtime |
±--------------------+
| 2009-07-29 19:06:45 |
±--------------------+
51.sql优化,索引有哪几种类型,怎么建,建立规则
52.Mysql的存储引擎
53. 行级锁的排他性
54. 事务的隔离级别
55. Sql的优化
56. Mysql的聚簇索引,联合索引,组合索引的区别
57. Mycat三个文件
58. sql问到的时候思考步骤:
1.什么是索引?数据结构
2.索引优缺点
3.sql查询慢,怎么优化(4)
4.哪些情况需要(6)、不需要建索引(4)
59.往表中插入100万行,怎么做会快一些??(面试真题)
1.for循环,foreach,多个sql拼接
2.除了主键索引,其他索引全部删掉
3.mysql自动提交关闭,,10万个发过来,commit一次
4.多线程,起多个线程,插入语句。
60.索引原则(8条)
61.mycat3个文件夹。
62.为什么要用这个
封装解耦。。
63.面试被问到,binglog日志格式分几种::3种,,区别:::
statement 缺点: 主从复制数据不一致
ROW:行模式:记每一行的改变;效率问题,行多了,就不行了
Mixed:切换。遇到系统变量就不行了
64.数据库分布式??
数据库优化,大数据层的优化??读写分离,分库分表。。。
问了些关于sql优化的问题,用户查询变慢你怎么去分析解决
《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《
企业中不用外键。。。
行锁会发生死锁。。。
建表,建主键了,mysql会自动创建主键索引
二叉树,数据结构。。。
查询,排序变快了。。
占空间,写操作变慢
平衡数。数据结构
mysql 选择 B+Tree(电脑内存有限)
不要抛开计量说疗效
缺页??io
平衡树:特点:不平衡是旋转
面试考题::
聚错
重点???
聚簇索引::对表来说就是主键索引(定规则,一张表只能有一个聚簇索引(字典))
怎么去建索引:::
找一个没有任何意义的id就可以了跟其他表关联
复合索引使用顺序的,体现??
复合索引使用顺序的,体现??
主键。查询,关联字段,单间组合索引,排序,统计或分组gropby,orderby
gropby伤害性能更大,包含了一个orderby,先排序后分组。
过滤芯:性别不好,身份证好
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
怎么建索引
6条![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9608635e84e6c9c912741c45789e8856.png)
where条件没用上索引
合并索引。or,,merge
where后边的筛选条件使用索引长度
上边的好些:::
age 11 是位数,不是长度。。 int长度为4,5的话,null允许+1,,最大也就5了
char固定长度。varchar可变长度。。
理论上的行数,实际上不一定。。。有偏差
orderby和grupby
第一个,orderby没有用上索引,手动排序
groupby没用上索引
包含orderby
关联字段没有用上索引
《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《
主从复制::
redis:
mysql:(默认不许创建函数)
有函数:随机获取当前系统时间(数据不一致)
随机生成字符串:
批量删除索引??
取到空
存储过程
别走缓存
2int+1varchart
组合索引
命中字段越多查询越快
优化器的使用,,,
命中一个,,
命中0个,,
复合索引有序列
where后边的字段严禁使用函数,计算,类型转换,会造成索引失效
范围查询右边,索引的右边(不是where后的右边),,右边失效
日期,创建时间。。
不等于索引失效。。。。
is null 对
负面的,不等于,is not null 索引失效
类型转换了,索引失效。。
单表查询原则
》》》》》》》》》》》》》》》》》》》》》》》》》》》》>》》》》》
20 笛卡尔乘积400
where 后边条件没用索引,select+form中间的字段用上索引了,覆盖索引
第一张表不能避免全表扫描
left join on 前边的是驱动表,后边的是被驱动表
mysql会帮我们选择合适的作为驱动表。。有索引的作为被驱动表。。
两个表都没有索引,数量少的做驱动表。。。![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ef09db825c705b4af1f040813d51c143.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4fe41303a1c0cfddf4b8d1ae0edca189.png)
5.5
虚拟表不能建索引
子查询优化,转换为left join
手动排序,,
orderby要用到索引
索引优化的第一个口诀::分页也行
orderby 中不会进行优化器,所以顺序错了,必须排序。
手工排序:::
单路排序快,
内存大小
1.包含orderby
不要写select*了。。。。。。。。 写具体的会优化点。。。覆盖索引。。。
开启慢查询日志。。。
全程日志??
查看进程列表,Linux下 ps -ef
kill
为什么要用这个,封装解耦。。
写到日志中:::
缺点:多次io,有延迟(不要马上查)。。。
区别::redis (RDB)从头复制,,mysql从切入点开始复制。。
redis
主机只能有一台
wendows当主机,Linux下的mysql当从机
备份