प्रौद्योगिकी साझेदारी

Mysql explain statement विस्तृतव्याख्यानं उदाहरणप्रदर्शनं च

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

प्रथमं संक्षेपेण sql इत्यस्य परिचयं कुर्वन्तु:

SQL भाषा चतुर्षु वर्गेषु विभक्ता अस्ति : आँकडाप्रश्नभाषा DQL, आँकडा हेरफेरभाषा DML, आँकडा परिभाषा भाषा DDL, आँकडा नियन्त्रणभाषा DCL च ।

1. डाटा क्वेरी भाषा DQL
आँकडाप्रश्नभाषायाः मूलभूतसंरचना DQL SELECT खण्डेन, FROM खण्डेन, WHERE खण्डेन च निर्मितः प्रश्नखण्डः अस्ति: SELECT <क्षेत्रनामसारणी> FROM <सारणी अथवा दृश्यनाम> WHERE <प्रश्नशर्ताः>

2. डाटा हेरफेर भाषा DML
दत्तांश-हेरफेर-भाषायाः DML इत्यस्य मुख्यतया त्रीणि रूपाणि सन्ति-
१) निवेशनम् : INSERT
२) अद्यतनम् : UPDATE
३) विलोपनम् : DELETE

3. दत्तांशपरिभाषा भाषा DDL
दत्तांशपरिभाषाभाषा DDL इत्यस्य उपयोगः दत्तांशकोशे विविधवस्तूनि निर्मातुं भवति ----- सारणीः, दृश्यानि, अनुक्रमणिकाः, पर्यायवाची, समूहाः इत्यादयः, यथा: CREATE TABLE / VIEW / INDEX / SYN / CLUSTER | . DDL संचालनं अन्तर्निहितरूपेण प्रस्तुतं भवति! रोलबैक् कर्तुं न शक्यते

4. आँकडा नियन्त्रण भाषा DCL
दत्तांशनियन्त्रणभाषा DCL इत्यस्य उपयोगः दत्तांशकोशं प्राप्तुं, दत्तांशकोशस्य हेरफेरव्यवहारस्य समयं प्रभावं च नियन्त्रयितुं, दत्तांशकोशस्य निरीक्षणार्थं च केचन विशेषाधिकाराः प्रदातुं वा निरस्तं कर्तुं वा भवति इव:
1) अनुदान : प्राधिकरण।
२) ROLLBACK [WORK] TO [SAVEPOINT]: पुनः एकं निश्चितं बिन्दुं प्रति रोल कुर्वन्तु। Rollback---ROLLBACK rollback आदेशः दत्तांशकोशस्थितिं अन्तिमप्रस्तूयमानस्थितौ प्रत्यागच्छति । अस्य प्रारूपम् अस्ति: SQL>ROLLBACK;
3) COMMIT [WORK]: प्रस्तुतं कुर्वन्तु। दत्तांशकोशनिवेशनस्य, लोपस्य, परिवर्तनस्य च कार्येषु व्यवहारः तदा एव सम्पन्नः भवति यदा सः दत्तांशकोषे प्रस्तौति । व्यवहारस्य प्रतिबद्धतायाः पूर्वं केवलं दत्तांशकोशं संचालितस्य व्यक्तिस्य एव अधिकारः भवति यत् अन्ये केवलं अन्तिमप्रतिबद्धतायाः समाप्तेः अनन्तरमेव द्रष्टुं शक्नुवन्ति ।

प्राधिकरणकथनानां विषये

दत्तांशकोशप्राधिकरण आदेशः : १.

उपयोक्त्रे सारणीनाम (अथवा स्तम्भनाम) इत्यत्र GRANT<permission> इति

सम्यक् उत्तरविकल्पः B: सम्मिलितं,चयनं: अनुमतिसारणीनाम: उपयोक्तृप्रयोक्ता: nkw

पूरकज्ञानबिन्दु-पुनःप्रयोगस्य अनुमतिः

REVOKE <permission> on table name (अथवा स्तम्भनाम) FROM user

कथन परिचयं व्याख्यातव्यम्

अहं मन्ये सर्वे explain इति कथनेन परिचिताः सन्ति, यत् निष्पादनयोजनां द्रष्टुं कथनरूपेण उपयुज्यते । explain इत्यस्य उपयोगः प्रायः SQL अनुकूलनविश्लेषणे भवति ।

अत्र ज्ञातव्यं यत् explain वस्तुतः कथनं न निष्पादयति, अपितु केवलं निष्पादनयोजनां प्रदर्शयति ।

अहं का सूचनां द्रष्टुं शक्नोमि ?

  • सारणीपठनक्रमः
  • दत्तांशपठनसञ्चालनस्य संचालनप्रकारः
  • के के अनुक्रमणिकाः उपयोक्तुं शक्यन्ते
  • वस्तुतः के के अनुक्रमणिकाः उपयुज्यन्ते
  • सारणीनां मध्ये सन्दर्भाः
  • प्रत्येकस्मिन् सारणीयां कति पङ्क्तयः अनुकूलकेन पृष्टाः भवन्ति

मूलभूतवाक्यविन्यासपरिचयः

  1. EXPLAIN SELECT select具体语句
  2. 如:
  3. EXPLAIN SELECT * FROM userpro

प्रत्येकस्य स्तम्भस्य कार्यं व्याख्यातव्यम्

सूचीवर्णेतुपुनः पूरयतु
idप्रत्येकं SELECT कीवर्डं id इत्यनेन सह सङ्गच्छते

चयन_प्रकार

SELECT कीवर्डस्य अनुरूपः प्रश्नप्रकारः
पीठिकासारणीनाम
विभाजनम्विभाजनसूचनायाः मेलनं
प्रकारःएकस्य सारणीयाः कृते अभिगमविधिः
सम्भव_कुंजीसम्भाव्य अनुक्रमणिका
कुंजीवास्तविक अनुक्रमणिका प्रयुक्त
कील_लेनप्रयुक्ता वास्तविकसूचकाङ्कदीर्घता
refअनुक्रमणिकास्तम्भसमतुल्यताप्रश्नस्य उपयोगं कुर्वन्, समतुल्यतायै अनुक्रमणिकास्तम्भेन सह सङ्गता वस्तुसूचना ।
पङ्क्तयःपठनीयानां अभिलेखानां अनुमानितसंख्या
छानितम्अन्वेषणमापदण्डेन छाननेन अनन्तरं अवशिष्टानां अभिलेखानां प्रतिशतम्

    

अतिरिक्त

अतिरिक्त सूचना

               

EXPLAIN इत्यस्य प्रत्येकस्य स्तम्भस्य विस्तृतपरिचयः

1,id

प्रत्येकं SELECT कीवर्डं id इत्यनेन सह सङ्गच्छते

id मूल्यं यत्किमपि बृहत् भवति तत्किमपि अधिकं प्राथमिकता भवति, प्रथमं निष्पादितं भविष्यति च ।

यदि IDs समानाः सन्ति तर्हि ते समूहरूपेण गणयित्वा उपरितः अधः क्रमेण निष्पादयितुं शक्यन्ते ।

प्रत्येकं ID सङ्ख्या स्वतन्त्रं प्रश्नं प्रतिनिधियति ।

2,चयन_प्रकार

कोटीदृष्टान्तरूपेण दर्शयतु
सरलंएकः सारणीप्रश्नः, उपप्रश्नः अथवा UNION प्रश्नः नास्ति ।
प्राथमिकप्रश्ने बाह्यतमं SELECT कथनम् ।
SUBQUERY इतिWHERE खण्डे उपप्रश्नः उपयुज्यते ।
व्युत्पन्नम्FROM खण्डे निहितानाम् उपप्रश्नानां कृते, MySQL तत् DERIVED (व्युत्पन्नम्) इति चिह्नितं करिष्यति तथा च बाह्यप्रश्नेन उपयोगाय तस्य परिणामसमूहस्य अस्थायीसारणीं जनयिष्यति
UNIONUNION प्रश्ने द्वितीयं तदनन्तरं च प्रश्नकथनम् ।
UNION RESULTUNION प्रश्नस्य परिणामसमूहः ।
आश्रित उपप्रश्नाउपप्रश्नस्य परिणामः बाह्यप्रश्नस्य मूल्ये निर्भरं भवति, तथा च बाह्यप्रश्नस्य प्रत्येकपङ्क्तौ उपप्रश्नः एकवारं निष्पादितः भवति ।
आश्रित संघUNION प्रश्नस्य द्वितीयं तदनन्तरं च प्रश्नवाक्यं, परिणामाः च बाह्यप्रश्नस्य मूल्ये निर्भरं भवन्ति
अदम्य उपप्रश्नाउपप्रश्नं संग्रहणं कर्तुं न शक्यते, प्रत्येकं सन्दर्भं कृत्वा निष्पादितं भविष्यति ।

3. सारणीस्तम्भः सारणीयाः सारणीनाम प्रतिनिधियति (कदाचित् वास्तविकं सारणीनाम न, संक्षिप्तनाम भवितुम् अर्हति)।

4. विभाजनानि (वैकल्पिकम्) .

5. प्रकार ☆

सामान्यप्रकाराः यथा

प्रकारःदृष्टान्तरूपेण दर्शयतु
व्यवस्थासारणीयां एकः एव पङ्क्तिः भवति, प्रायः SELECT ... FROM DUAL प्रश्न अनुकूलनम्।
constप्रश्नः अनुक्रमणिकाद्वारा एकवारं प्राप्यते, केवलं एकपङ्क्तिः परिणामैः (नित्यसारणी) ।
eq_refअन्यस्मात् सारणीतः पङ्क्तिं अन्वेष्टुं अद्वितीयं अनुक्रमणिका अथवा प्राथमिककुंजी उपयुज्यताम् ।
refअन्यस्मात् सारणीतः एकां वा अधिकपङ्क्तिं अन्वेष्टुं अविशिष्टसूचकाङ्कस्य उपयोगं कुर्वन्तु ।
पङ्क्तिःअनुक्रमणिकायाः ​​उपयोगेन पङ्क्तिपरिधिं प्रत्यागच्छतु ।
अनुक्रमणिकासम्पूर्णं सारणीं स्कैनिङ्गं न कृत्वा पङ्क्तयः अन्वेष्टुं अनुक्रमणिकां सम्पूर्णतया स्कैन करोति ।
सर्वेपूर्णसारणीस्कैन् सारणीयां प्रत्येकं पङ्क्तिं परीक्षते ।

सामान्यतया सर्वान् परिहरितुं प्रयतध्वम्

6, कील तथा सम्भव_कील

  1. कुंजी

    • key क्षेत्रं प्रश्नेन प्रयुक्तं वास्तविकं अनुक्रमणिकां दर्शयति ।यदि अस्य क्षेत्रस्य मूल्यं भवतिNULL , कोऽपि अनुक्रमणिका न प्रयुक्ता इति सूचयति । यदि अस्य क्षेत्रस्य मूल्यं भवति तर्हि MySQL इत्यनेन प्रश्नस्य निष्पादनार्थं निर्दिष्टसूचकाङ्कस्य उपयोगः कृतः इति अर्थः ।
  2. सम्भव_कुंजी

    • possible_keys Field इत्यनेन MySQL इत्यनेन उपयोक्तुं शक्यमाणानां अनुक्रमणिकानां सूची प्रदर्श्यते । एते अनुक्रमणिकाः एतादृशाः अनुक्रमणिकाः सन्ति ये प्रश्नेषु विचारणीयाः भवेयुः, परन्तु वास्तविकरूपेण न प्रयुक्ताः भवेयुः । सामान्यतः,possible_keys इत्यस्मिन् सूचीकृताः अनुक्रमणिकाः प्रश्नस्थितीनां, सारणीसंरचनायाः च आधारेण निर्धारिताः भवन्ति ।
  • यदि key क्षेत्रस्य अनुक्रमणिकानाम भवति, तथा चpossible_keys अनेकाः अनुक्रमणिकानामानि , MySQL इत्यनेन चयनितम् इति सूचयतिkey यस्मिन् अनुक्रमणिकायां क्षेत्रं सूचीकृतं तत् प्रश्नं कर्तुं उपयुज्यते, अन्ये अनुक्रमणिकाः तु सूचीकृताः भवन्तिpossible_keys मध्यमः अवदत् यत् एतस्य विषये अपि विचारः कर्तुं शक्यते, परन्तु अन्ततः तस्य उपयोगः न कृतः।

  • यदि key क्षेत्राणि सन्तिNULL,तथा possible_keys अनेकाः अनुक्रमणिकानामानि , मध्ये सूचीबद्धानि सन्ति, यत् सूचयति यत् MySQL प्रश्नस्य निष्पादनकाले किमपि अनुक्रमणिकां न उपयुङ्क्ते, यस्य परिणामः पूर्णसारणी-स्कैन् अथवा अन्ये अ-सूचकाङ्क-अनुकूलित-प्रवेश-विधयः भवितुम् अर्हन्ति

७,की_लेन्

key_len अनुक्रमणिकाकुंजीयाः दीर्घतां वर्णयति क्षेत्रम् अस्ति । यदा MySQL प्रश्नान् निष्पादयितुं विशिष्टसूचकाङ्कस्य उपयोगं करोति तदा एतत् अनुक्रमणिकाप्रयोगं अनुक्रमणिकाकुंजीदीर्घतां च सूचयति ।

  1. एकस्तम्भ अनुक्रमणिका

    • यदि एकः स्तम्भसूचकाङ्कः उपयुज्यते तथा च स्तम्भप्रकारः नियतदीर्घता (उदा. INT),किन्तु key_len मूल्यं स्तम्भस्य दीर्घता अस्ति ।
    • यदि चरदीर्घताक्षेत्राणि उपयुज्यन्ते (उदा. VARCHAR),किन्तु key_len इत्यस्य मूल्यं क्षेत्रस्य अधिकतमदीर्घता अस्ति ।
  2. समष्टि अनुक्रमणिका

    • समष्टिसूचकाङ्कानां कृते (अर्थात् बहुस्तम्भयुक्तानां अनुक्रमणिकाः),key_len अनुक्रमणिकायां सर्वेषां स्तम्भानां कुलदीर्घतां प्रतिनिधियति ।
  3. संयुक्त अनुक्रमणिका

    • यदि प्रश्ने बहुस्तम्भेषु संयुक्तसूचकाङ्कः उपयुज्यते तर्हिkey_len संयुक्तसूचकाङ्के सर्वेषां स्तम्भानां कुलदीर्घता अस्ति ।
  4. अनुक्रमणिका उपसर्गः

    • केषुचित् सन्दर्भेषु MySQL केवलं अनुक्रमणिकायाः ​​भागस्य उपयोगं कर्तुं शक्नोति । यथा, भवन्तः प्रश्नस्य निष्पादनार्थं अनुक्रमणिकायाः ​​उपसर्गं अनुक्रमणिकायाः ​​भागरूपेण उपयोक्तुं शक्नुवन्ति । एवं सति .key_len प्रयुक्तस्य सूचकाङ्कभागस्य वास्तविकदीर्घता दर्शिता भविष्यति ।

८,सन्दर्भः

ref इदं क्षेत्रं यत् सारणीनां मध्ये संयोजनस्थितीनां वर्णनं करोति अथवा अन्वेषणार्थं अविशिष्टसूचकाङ्कस्य उपयोगं करोति । एतत् सूचयति यत् कानि join conditions अथवा MySQL query इत्यस्य निष्पादनकाले सारणीं प्राप्तुं काः indexes इत्यस्य उपयोगं करोति ।

९,पङ्क्तयः

rows प्रश्नस्य निष्पादनकाले अभिगमितानां परीक्षितानां वा पङ्क्तयः संख्यायाः अनुमानः अस्ति ।

  • सरलस्य कृते SELECT पृच्छतु, २.rows प्रत्यागन्तुं पङ्क्तयः अनुमानितसङ्ख्यां प्रतिनिधियति ।
  • सम्मिलितप्रश्नानां कृते (JOIN) उपप्रश्नं वा, २.rows join operation इत्यस्य समये अभिगतानां पङ्क्तयः संख्यां प्रतिनिधितुं शक्नोति ।
  • सारणी-स्कैन् (पूर्ण-सारणी-स्कैन् अथवा अनुक्रमणिका-स्कैन्) कृते,rows स्कैन् कृतानां पङ्क्तयः संख्यां प्रतिनिधितुं शक्नोति ।

१०,छनितम्

WHERE-स्थितीनां, अनुक्रमणिका-स्थितीनां च आधारेण फ़िल्टर-कृतानां पङ्क्तयः प्रतिशतं प्रतिनिधियति । filtered अनुकूलकेन अनुमानितं प्रश्नानुकूलनप्रभावं प्रतिबिम्बयति ।

कदा filtered यदा 100% समीपे भवति तदा तस्य अर्थः अस्ति यत् प्रश्नशर्तैः प्रभावीरूपेण अधिकांशपङ्क्तयः छानिताः ये शर्ताः न पूरयन्ति, यत् प्रायः उत्तमः अनुकूलनसूचकः भवति

प्रत्युत यदि filtered न्यूनमूल्यं सूचयितुं शक्नोति यत् प्रश्नस्थितयः पर्याप्तं सटीकाः न सन्ति अथवा अनुकूलकः दत्तांशं छानयितुं अनुक्रमणिकायाः ​​प्रभावीरूपेण उपयोगं न करोति इति ।

११,अतिरिक्त

अतिरिक्तसूचनाक्षेत्राणि

अत्र केचन सामान्याः सन्ति Extra क्षेत्राणि तेषां अर्थाः च : १.

  1. अनुक्रमणिका का प्रयोग

    • सूचयति यत् प्रश्नः आवरणसूचकाङ्कस्य उपयोगं करोति, अर्थात् प्रश्नस्य परिणामाः सारणीयाः वास्तविकदत्तांशपङ्क्तयः न अभिगत्य अनुक्रमणिकाद्वारा सम्पूर्णतया प्रत्यागन्तुं शक्यन्ते
  2. कुत्र इति प्रयोगः

    • सूचयति यत् MySQL सर्वरः भण्डारण-इञ्जिनस्य पङ्क्तयः पुनः प्राप्तस्य अनन्तरं सशर्त-छननं करिष्यति, न तु अनुक्रमणिकायां तत् पूर्णं कर्तुं ।
  3. अस्थायी प्रयोग

    • MySQL इत्यनेन प्रश्नस्य संसाधनार्थं स्मृतौ अस्थायी सारणी निर्मितवती इति सूचयति । सामान्यतया समुच्चयकार्यं युक्तेषु कार्येषु अथवा प्रश्नेषु क्रमणं कर्तुं प्रयुक्तम् ।
  4. filesort इत्यस्य उपयोगेन

    • MySQL इत्यनेन प्रश्नं संसाधितुं सञ्चिकाक्रमणं कृतम् इति सूचयति । प्रायः एतत् तदा भवति यदा अनुक्रमणिकायाः ​​उपयोगेन क्रमणं कर्तुं न शक्यते ।
  5. प्रत्येकस्य अभिलेखस्य कृते परिधिः परीक्षिता (सूचकाङ्कनक्शा: ...)

    • प्रत्येकं अभिलेखः निर्दिष्टपरिधिमध्ये अस्ति वा इति परीक्षितुं MySQL अनुक्रमणिकायाः ​​उपयोगं करोति इति सूचयति ।प्रायः एतत् भवति यदा...range प्रश्नप्रकारे ।
  6. NULL कीलस्य उपरि पूर्णं स्कैन् कुर्वन्तु

    • सूचयति यत् MySQL इत्यनेन NULL मूल्यैः सह मेलनं कुर्वतीनां पङ्क्तयः अन्वेष्टुं अनुक्रमणिकायां पूर्णसारणीस्कैन् कृतम् ।
  7. व्ययवच्छिन्नम्

    • प्रथमं मेलपङ्क्तिं ज्ञात्वा MySQL द्वितीयकपङ्क्तयः अन्वेष्टुं स्थगयिष्यति इति सूचयति ।
  8. join buffer (Block Nested Loop) इत्यस्य उपयोगः

    • सूचयति यत् MySQL संयोजनसञ्चालनं नियन्त्रयितुं संयोजनबफरस्य उपयोगं करोति यदा संयोजनसारणीनां संख्या बृहत् भवति अथवा संयोजनसारणीयाः आकारः बृहत् भवति ।
  9. असम्भवं कुत्र

    • सूचयति यत् MySQL अनुकूलकेन निर्धारितं यत् WHERE खण्डे स्थितयः सन्तुष्टाः न भवितुम् अर्हन्ति अतः कोऽपि पङ्क्तिः स्कैन् न भविष्यति ।
  10. न कोऽपि सारणीः प्रयुक्ताः

    • प्रश्ने किमपि सारणी न समाविष्टम् इति सूचयति, उदाहरणार्थम् SELECT NOW()

वास्तविकं निष्पादनप्रदर्शनं व्याख्यातव्यम्

दत्तांशसज्जीकरणम्

सारणी रचयतु s1

  1. CREATE TABLE s1 (
  2. id INT AUTO_INCREMENT,
  3. key1 VARCHAR(100),
  4. key2 INT,
  5. key3 VARCHAR(100),
  6. key_part1 VARCHAR(100),
  7. key_part2 VARCHAR(100),
  8. key_part3 VARCHAR(100),
  9. common_field VARCHAR(100),
  10. PRIMARY KEY (id),
  11. INDEX idx_key1 (key1),
  12. UNIQUE INDEX idx_key2 (key2),
  13. INDEX idx_key3 (key3),
  14. INDEX idx_key_part(key_part1, key_part2, key_part3)
  15. ) ENGINE=INNODB CHARSET=utf8;

सारणी s2 रचयन्तु

  1. CREATE TABLE s2 (
  2. id INT AUTO_INCREMENT,
  3. key1 VARCHAR(100),
  4. key2 INT,
  5. key3 VARCHAR(100),
  6. key_part1 VARCHAR(100),
  7. key_part2 VARCHAR(100),
  8. key_part3 VARCHAR(100),
  9. common_field VARCHAR(100),
  10. PRIMARY KEY (id),
  11. INDEX idx_key1 (key1),
  12. UNIQUE INDEX idx_key2 (key2),
  13. INDEX idx_key3 (key3),
  14. INDEX idx_key_part(key_part1, key_part2, key_part3)
  15. ) ENGINE=INNODB CHARSET=utf8;

दत्तांशः स्वयमेव सज्जीकृतः भवति।

नमूना निष्पादनं परिणामश्च

सरलः प्रश्नः

एकल सारणी प्रश्न

EXPLAIN SELECT * FROM `s1`;

प्रश्नं सम्मिलितं कुर्वन्तु

EXPLAIN SELECT * FROM `s1` INNER JOIN `s2`;

उपप्रश्नम्

  1. EXPLAIN SELECT * FROM s1 WHERE key1 IN (SELECT key2 FROM s2 WHERE common_field
  2. = 'a');

विशेष प्रदर्शनम्

select_type इति दर्शयतु
  1. #Union 去重
  2. EXPLAIN SELECT * FROM `s1` UNION SELECT * FROM `s2`;
  3. #Union 全查
  4. EXPLAIN SELECT * FROM `s1` UNION ALL SELECT * FROM `s2`;

अन्तिमः सोपानः द्विगुणीकरणम् अस्ति, अतः अस्थायी सारणी उपयुज्यते । तथापि UNION ALL सर्वेषां कृते प्रश्नः अस्ति, अस्थायी सारणीप्रश्नसन्देशः अपि न दृश्यते ।

प्रकारवर्गः

const (एकवारं अनुक्रमणिकां अन्वेष्टुम्, केवलं परिणामानां एकः पङ्क्तिः)

EXPLAIN SELECT * FROM s1 WHERE id = 10002;

eq_ref (अद्वितीयं अनुक्रमणिकां वा प्राथमिककुंजीं वा उपयुज्य अन्यस्मात् सारणीतः पङ्क्तिं ज्ञातव्यम्)

EXPLAIN SELECT * FROM s1 INNER JOIN s2 ON s1.id = s2.id;

ref (अन्यसारणीतः एकां वा अधिकपङ्क्तिं अन्वेष्टुं अविशिष्टसूचकाङ्कस्य उपयोगं कुर्वन्तु)

EXPLAIN SELECT * FROM s1 WHERE key1 = 'a';

range (सूचकाङ्कस्य उपयोगेन पङ्क्तिपरिधिं प्रत्यागच्छति)

EXPLAIN SELECT * FROM s1 WHERE key1 IN ('a', 'b', 'c');

index (पङ्क्तयः अन्वेष्टुं अनुक्रमणिकां सम्पूर्णतया स्कैन् कुर्वन्तु)

EXPLAIN SELECT key_part2 FROM s1 WHERE key_part3 = 'a';

अन्ये प्रदर्शनानि

फ़िल्टर दशमलव समय

EXPLAIN SELECT * FROM s1 WHERE key1 > 'za' AND common_field = 'la'