日期类型可以直接和string格式的字符串比较 select * from xxx where event_time>'2018-06-02' 可以使用索引, mysql默认会把后面的字符串转成date类型.可以使用between and select * from xxx where date(event_time)>'2018-06-02' 不能使用索引 如果时间戳日期和时间都要比较, 最好使用两个字段保存这个时间戳, 这样可以利用索引 select * from xxx where
如果delete语句带有查询,写法不对会导致不走索引. 简单粗暴的办法:拆两条sql,一条查询,一条delete ======================= [不走索引的写法] DELETE FROM goods_item_combo_group_item_history WHERE group_id IN (SELECT id FROM goods_item_combo_group_history WHERE lease_code = 'schjyzzh' AND item_code =
优化前 SELECT* FROM erp_helei mg WHERE mg.num = 602 AND mg.pid IN (10002559,10002561,10002562,10002563,10002564,10002598,10002599,10002600,10002601,10002602,10002603,10002604,10002648,10002649,10002667,10002668,10002676,10002558) 优化后 SELECT* FRO
第一:选择唯一性索引 唯一性索引的值是唯一的,可以更快捷的通过该索引来确定某条记录. 2.索引的列为where 后面经常作为条件的字段建立索引 如果某个字段经常作为查询条件,而且又有较少的重复列或者是唯一咧可以考虑作为索隐列 经常作为查询条件的列作为索引会提高速度 3.位经常需要进行排序.分组和联合操作的的字段建立索引. order by group by distinct union 这种情况下在查询的时候排序会浪费很多的时间, 如果为其建立索引可以有效的避免排序操作. 4.限制索引的的数
你可以认为联合索引是闯关游戏的设计 例如你这个联合索引是state/city/zipCode 那么state就是第一关 city是第二关, zipCode就是第三关 你必须匹配了第一关,才能匹配第二关,匹配了第一关和第二关,才能匹配第三关 你不能直接到第二关的 索引的格式就是第一层是state,第二层才是city 上面举例介绍来源 https://zhidao.baidu.com/question/1863364017408156387.html mysql sql 中如果使用了 not in
看到很多网上谈优化mysql的文章,发现很多在谈到mysql的null是不走索引的,在此我觉得很有必要纠正下这类结论.mysql is null是有索引的,而且是很高效的,(版本:mysql5.5)表结构如下: CREATE TABLE `student` ( `stu_no` ) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '学员编号', `stu_name` ) CHARACTER SET utf8 DEFAULT NULL COMME
初始化测试数据 创建一个测试用的表 create table dept(id int primary key auto_increment , deptName varchar(32) not null unique,salary decimal(12,6) not null,remark varchar(256),createDate date); 在表中插入一万条数据 BEGIN Declare i int default 0; while(i<=10000) do begin select