零碎的MySql优化问题和表定义信息查看
一,Mysql的优化相关
1,查询中内联的两个表优先以from之后的表子段排序速度更快,因from后的表为主动表,例如:
select a.*,b.* from table1 as a inner jion table2 as b on a.xid = b.xid where ... order by a.xid desc(比b.xid desc快)
2,查询如果内层和外层都有按同一某子段排序的,不必重复排序,仅需在最外层或对最后结果排序即可,这样减少排序次数带来的耗时,速度更快;
二,代码方式查看表定义信息
1,mysql代码方式查看表定义:desc 表名
2,mysql代码方式查看表定义语句:show create table 表名
3,mysql代码方式查看列的注释信息:
select * information.columns where table_schema = '库名' and table_name = '表名'
三,Mysql 查询中强制使用某个索引例子
select * from table1 force index(索引名称) where ... order by ...
四,Mysql 中的 for update用法
在mysql的事务进行当中查询select到同一个数据表时,强制必须等待其它事务数据被提交commit后才会执行,也就是查到的数据是事务完成之后的安全数据,而不是过程中的脏数据,用法如下:
select * from table1 for update;
扩展mysql的select读取锁分
select ... for update; 推荐使用
select ... lock in share mode;
个人简单零碎总结,欢迎拍砖留言讨论...