1. 索引(数据结构,b数)
作用:提高查询效率;
2. 索引类型
Normal--普通索引,没有任何限制
Unique--唯一索引,键值不能重复
Fulltext--全文索引,只适合文本类型类型字段,针对比较大的数据;
聚合索引--由多个字段共同组成的索引;
3. 索引优化
- 尽量避免在字段开头模糊查询---在字段后面使用模糊查询;
- 尽量避免使用in和not in---如果是连续竖直,可以用between代替;
- 尽量避免使用or---可以用union(且)代替or;
- 尽量避免进行null的判断---可以给字段添加默认值0,对0进行判断;
- 尽量避免在索引上进行运算---eg:不要age/10=9 而是用age=9*10;
- 数据量大时,避免使用where 1=1的条件
- 查询条件不能用<> 或者!=;
- 用联合索引的时候注意遵循最左匹配原则;
- 隐式类型转换造成不适用索引---加个引号;
4. 事务(数据库里才有的概念)
5.大特征ACID
原子性(不可分割,要么同时成功,要么同时失败)、
持久性(持久的保存数据)、
隔离性(多个事务之间相互独立)、
一致性(事务操作前后,数据总量不变);
6.函数
1.字符串
- concat(s1,s2...sn); 字符串拼接;
- lower(str); 将字符串全部变成小写;
- upper(str); 将字符串全部变成大写;
- Ipad(str,n,pad); 左填充,用pad将str填充成n个长度的pad
- rpad(str,n,pad); 右填充,用pad将str填充成n个长度的pad
- trim();去首尾空格;
- substring(str,a,b); 截取字符串从a开始到b结束
2.数值函数
- ceil(x) 向上取整
- floor(x) 向下取整
- mod(x,y) 取x/y的余数的模
- rand(a,b) 求0~1的随机数
- round(x,y)求参数x的四舍五入的值,保留y位小数;
3.日期函数
- curdate() 返回当前日期;
- curtime()返回当前时间;
- now()返回当前日期和时间;
- year(date)获取指定date的年份;
- month()获取指定date的月份;
- day(date) 获取指定date的日期
- date_add(date,interval,expr type) 返回一个日期,时间值加上一个时间间隔
- datediff(date1,date2)返回时间date1和date2之间的天数;
- 如果java中有...代表能放好几个相同类型的数据;
字符串
数值函数
日期函数