2018-11-19-mysql学习
- http://www.w3school.com.cn/sql/sql_wildcards.asp。
- 索引基数:基数是数据列所包含的不同值的数量。例如,某个数据列包含值1、3、7、4、7、3,那么它的基数就是4。索引的基数相对于数据表行数较高(也就是说,列中包含很多不同的值,重复的值很少)的时候,它的工作效果最好。如果某数据列含有很多不同的年龄,索引会很快地分辨数据行。如果某个数据列用于记录性别(只有"M"和"F"两种值),那么索引的用处就不大。如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。惯用的百分比界线是"30%"。
-
ROUND(字段名,0) 四舍五入函数 0表示保留几位 mysql8.0 以后支持函数作为索引。
-
SELECT CURDATE() 查询 当前日期
- EXPLIAN 可以更好的用索引写出更加优化的查询语句。(用法 在sql语句前加上就好)
- 为了强制优化器让一个select语句按照表明顺序查询可以使用STRAIGHT_JOIN代替SELECT。
- DISTINCT列出这个列中不重复的值 可以在查询字段的前面加上 。
- 如果有主键或者唯一键冲突则不插入:insert ignore into
- DBCC CHECKIDENT(表名,RESEED,0)复位就可以了 在进行删除之后进行清除缓存id。
-
锁相关(作为了解,很少用)
- 共享锁: select id from tb_test where id = 1 lock in share mode;
- 排它锁: select id from tb_test where id = 1 for update
- 1、TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
-
Linux 下启动慢查询MySQL在Windows系统中的配置文件一般是是my.cnf找到[mysqld]下面加上
代码如下
log-slow-queries=/data/mysqldata/slowquery。log
long_query_time=2 - mysql 中的LIMIT 2,1 第一个参数 表示第几页 第二个参数 表示显示几条数据
- 关于左连接和右连接总结性的一句话:
左连接where只影向右表,右连接where只影响左表。
Left Join Right join
select * from tbl1 Left Join tbl2 where tbl1.ID = tbl2.ID
左连接后的检索结果是显示tbl1的所有数据和tbl2中满足where 条件的数据。
简言之 Left Join影响到的是右边的表 - where 和 on 在进行连接查询的时候所有的的连接条件都必需要放在ON后面,不然前面的所有LEFT,和RIGHT关联将作为摆设,而不起任何作用。

浙公网安备 33010602011771号