国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL中因字段字符集不同導(dǎo)致索引不能命中的解決方法

2024-07-24 12:54:13
字體:
供稿:網(wǎng)友

什么是索引?為什么要建立索引?

索引用于快速找出在某個列中有一特定值的行,不使用索引,MySQL必須從第一條記錄開始讀完整個表,直到找出相關(guān)的行,表越大,查詢數(shù)據(jù)所花費(fèi)的時間就越多,如果表中查詢的列有一個索引,MySQL能夠快速到達(dá)一個位置去搜索數(shù)據(jù)文件,而不必查看所有數(shù)據(jù),那么將會節(jié)省很大一部分時間。

例如:有一張person表,其中有2W條記錄,記錄著2W個人的信息。有一個Phone的字段記錄每個人的電話號碼,現(xiàn)在想要查詢出電話號碼為xxxx的人的信息。

如果沒有索引,那么將從表中第一條記錄一條條往下遍歷,直到找到該條信息為止。

如果有了索引,那么會將該P(yáng)hone字段,通過一定的方法進(jìn)行存儲,好讓查詢該字段上的信息時,能夠快速找到對應(yīng)的數(shù)據(jù),而不必在遍歷2W條數(shù)據(jù)了。其中MySQL中的索引的存儲類型有兩種:BTREE、HASH。 也就是用樹或者Hash值來存儲該字段,要知道其中詳細(xì)是如何查找的,就需要會算法的知識了。我們現(xiàn)在只需要知道索引的作用,功能是什么就行。

引言

今天寫了一個sql,其中涉及的表中的數(shù)據(jù)量都差不多為50w左右,查詢發(fā)現(xiàn)用了8s。這個只是測試服上數(shù)據(jù),放到正式服上,肯定一運(yùn)行就掛了。

SELECT Orders. NO, GuidNo, Orders.CreateTime, sum(OrderItem.Quantity) AS Quantity, Brand. NAME AS BrandName, member.Mobile, Street AS deliveryaddress, AreaFROM OrdersINNER JOIN OrderItem ON Orders.GuidNo = OrderItem.OrderGuidNoINNER JOIN Brand ON Brand.Id = Orders.BrandIdINNER JOIN member ON member.Id = 13INNER JOIN memberaddress ON member.Id = memberaddress.MemberIdWHERE orders.GuidNo IN ( SELECT orderpayment.OrderGuidNo FROM paymentrecord LEFT JOIN orderpayment ON paymentrecord.`No` = orderpayment.PaymentNo WHERE paymentrecord.PaymentMethod = 'MemberCard' AND paymentrecord.Payer = 13 )GROUP BY GuidNo;

然后就用EXPLAIN分析了一下,發(fā)現(xiàn)Orders表沒有命中索引,但是查詢Orders中的GuidNo已經(jīng)設(shè)置了索引,但就是不能命中。

解決過程

然后我將上面的語句分為兩個語句。首先將sql語句修改為:將子查詢的數(shù)據(jù)直接寫在了sql中,查詢用了0.12s。

SELECT Orders. NO, GuidNo, Orders.CreateTime, sum(OrderItem.Quantity) AS Quantity, Brand. NAME AS BrandName, member.Mobile, Street AS deliveryaddress, AreaFROM OrdersINNER JOIN OrderItem ON Orders.GuidNo = OrderItem.OrderGuidNoINNER JOIN Brand ON Brand.Id = Orders.BrandIdINNER JOIN member ON member.Id = 13INNER JOIN memberaddress ON member.Id = memberaddress.MemberIdWHERE orders.GuidNo IN ( '0A499C5B1A82B6322AE99D107D4DA7B8', '18A5EE6B1D4E9D76B6346D2F6B836442', '327A5AE2BACEA714F8B907865F084503', 'B42B085E794BA14516CE21C13CF38187', 'FBC978E1602ED342E5567168E73F0602' )GROUP BY GuidNo
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 清水县| 兰考县| 定边县| 建阳市| 福泉市| 盐城市| 南和县| 莆田市| 庆元县| 临安市| 大足县| 焉耆| 怀柔区| 奎屯市| 东丰县| 泸定县| 繁峙县| 界首市| 定日县| 嫩江县| 海林市| 沾益县| 镇安县| 从江县| 广宗县| 伽师县| 塔城市| 安西县| 建湖县| 灌云县| 巫山县| 栾川县| 泌阳县| 平顶山市| 丰城市| 达州市| 杭州市| 故城县| 通山县| 油尖旺区| 定南县|