Sachverhalt:
A.
A._ meldete sich Anfang Juni 2007 bei der Invalidenversicherung an und beantragte eine Rente. Nach Abklärungen und durchgeführtem Vorbescheidverfahren wies die IV-Stelle des Kantons Zürich mit Verfügung vom 30. Mai 2018 das Leistungsbegehren ab.
B.
Die Beschwerde der A._ wies das Sozialversicherungsgericht des Kantons Zürich mit Entscheid vom 16. Oktober 2018 ab.
C.
Mit Beschwerde in öffentlich-rechtlichen Angelegenheiten beantragt A._, Gerichtsentscheid und Verwaltungsverfügung seien aufzuheben, und es sei ihr eine halbe Rente zuzusprechen.

Erwägungen:
1.
Die Vorinstanz hat durch Einkommensvergleich (Art. 16 ATSG i.V.m. Art. 28a Abs. 1 IVG) bezogen auf den frühest möglichen Rentenbeginn am 1. Juni 2006 einen Invaliditätsgrad von 31 % ([[Fr. 62'487.45 - Fr. 43'424.70]/Fr. 62'487.45] x 100 %; zum Runden <ref-ruling>) ermittelt, was keinen Rentenanspruch ergibt (Art. 28 Abs. 2 IVG). Die beiden Einkommensgrössen (Validen- und Invalideneinkommen; <ref-ruling> E. 2a S. 149) hat sie auf der Grundlage der Schweizerischen Lohnstrukturerhebung 2006 des Bundesamtes für Statistik (LSE 06) bestimmt (vgl. <ref-ruling>).
Die Beschwerdeführerin bestreitet (einzig) die Vergleichseinkommen. Es sei von einem Valideneinkommen von Fr. 71'895.- und einem Invalideneinkommen von Fr. 33'588.- auszugehen. Daraus ergebe sich ein Invaliditätsgrad von 53 %, was Anspruch auf eine halbe Rente gebe.
2.
2.1. Für die Ermittlung des Valideneinkommens ist entscheidend, was die versicherte Person im massgebenden Zeitpunkt aufgrund ihrer beruflichen Fähigkeiten und persönlichen Umstände als Gesunde tatsächlich verdient hätte. Da nach empirischer Feststellung in der Regel die bisherige Tätigkeit im Gesundheitsfall weitergeführt worden wäre, ist grundsätzlich vom letzten vor Eintritt der gesundheitlichen Beeinträchtigung erzielten, der Teuerung sowie der realen Einkommensentwicklung angepassten Verdienst auszugehen. Ausnahmen müssen mit überwiegender Wahrscheinlichkeit erstellt sein (<ref-ruling> E. 3.3.2 S. 30 mit Hinweis).
Die Beweislast dafür, dass in einem konkreten Fall die Regel der Anknüpfung an den zuletzt erzielten Verdienst nicht greift, trifft die versicherte Person, wenn sich ein Abweichen davon zu ihren Gunsten (höheres Valideneinkommen) auswirkt, andernfalls hat die IV-Stelle die Folgen einer diesbezüglichen Beweislosigkeit zu tragen (Art. 8 ZGB).
Welche berufliche Tätigkeit die versicherte Person ohne gesundheitliche Beeinträchtigung ausüben würde, ist als Beurteilung hypothetischer Geschehensabläufe eine vom Bundesgericht lediglich unter eingeschränktem Blickwinkel überprüfbare Tatfrage (Art. 105 Abs. 1 und 2 BGG), soweit sie auf Beweiswürdigung beruht, selbst wenn darin auch Schlussfolgerungen aus der allgemeinen Lebenserfahrung berücksichtigt werden (Urteil 9C_368/2017 vom 3. August 2017 E. 5.1 mit Hinweis).
2.2. Die Vorinstanz hat festgestellt, das letzte Arbeitsverhältnis mit der B._ GmbH sei auf den 31. Dezember 2005 aufgelöst worden. Im Kündigungsschreiben vom 28. November 2005 sei als Grund eine "Restrukturierung mit Stellenabbau in unserem Betrieb" genannt worden. Aus den Lohnsummenmeldungen der Firma für 2005 und 2006 vom 13. April 2006 und 19. März 2007 gehe hervor, dass die Stelle der Versicherten nicht einfach durch eine neue Mitarbeiterin oder einen neuen Mitarbeiter ersetzt wurde. Vielmehr seien vier neue Mitarbeiter angestellt worden, welche zusammen ein Einkommen von Fr. 75'222.05 erhielten. Daraus erhelle, dass der genannte Kündigungsgrund, namentlich der Abbau der Stelle der Versicherten infolge einer Restrukturierung zutreffend war. Es erscheine daher nicht als überwiegend wahrscheinlich, dass die Beschwerdeführerin auch ohne Erkrankung weiterhin als Hilfsarbeiterin für die B._ GmbH tätig wäre und 2006 ein Einkommen im behaupteten Umfang (Fr. 71'895.-) erzielt hätte. Daran vermöge nichts zu ändern, dass sie Gesellschafterin sei, ihr Ehemann Gesellschafter und Geschäftsführer der Firma. Vielmehr sei mit überwiegender Wahrscheinlichkeit davon auszugehen, dass sie (ohne gesundheitliche Beeinträchtigung nach der Kündigung auf Ende Dezember 2005) eine Hilfstätigkeit in einem anderen Betrieb des Baugewerbes angetreten hätte.
2.3. Mit ihren Vorbringen vermag die Beschwerdeführerin weder eine willkürliche Beweiswürdigung (<ref-ruling> E. 4.4 S. 444) noch sonstwie eine Verletzung von Bundesrecht (Art. 95 lit. a BGG) darzutun:
2.3.1. Gemäss dem Kündigungsschreiben vom 28. November 2005 erfolgte die Auflösung des Arbeitsverhältnisses auf Ende des Jahres "aus Gründen einer Restrukturierung mit Stellenabbau in unserem Betrieb". Es ist nicht einsehbar, weshalb die Firma diesen Kündigungsgrund genannt haben sollte, wenn er nicht zutraf. Dies gilt umso mehr, als im damaligen Zeitpunkt keine Anhaltspunkte für die Wiedererlangung der Berufsfähigkeit als Hilfsarbeiterin bestanden hatten, wie die Beschwerdeführerin vorbringt. In diesem Zusammenhang bleibt der Einwand unbelegt, entgegen den unzutreffenden Erwägungen der Vorinstanz sei der aufgrund ihrer Arbeitsunfähigkeit bedingte Arbeitsausfall seit Juni 2004 schon damals und nicht erst im Jahre 2006 durch den Einsatz von anderen Arbeitskräften zu kompensieren gewesen.
2.3.2. Weiter kann zwar nicht von einem Stellenabbau gesprochen werden in dem Sinne, dass tatsächlich weniger Personen im Betrieb arbeiteten. Wie die Vorinstanz festgestellt hat, figurierten auf der "Jahresabrechnung 2006" zuhanden der Ausgleichskasse vier Lohnbezüger mehr als im Vorjahr. Sämtliche neuen Arbeitnehmer waren in einem Teilzeitpensum angestellt und nicht ganzjährig, zum Teil bloss drei oder vier Monate tätig. Unter Berücksichtigung, dass eine Person, welche bereits 2005 in der Firma war, lediglich bis März 2006 arbeitete, ergab sich für dieses Jahr verglichen mit dem Vorjahr umgerechnet insgesamt über eine Vollzeitstelle mehr. Indessen hat die Vorinstanz den im Kündigungsschreiben erwähnten Stellenabbau (infolge Restrukturierung) in erster Linie auf die von der Beschwerdeführerin innegehabte Stelle als Hilfsarbeiterin bezogen. Diese Interpretation ist plausibel, wenn berücksichtigt wird, dass es um einen Kleinbetrieb geht mit maximal drei Vollzeitangestellten und wenigen Teilzeitangestellten, welche zum Teil lediglich ein paar Monate arbeiteten.
2.3.3. Sodann konnte eine Restrukturierung auch in der Weise erfolgen, dass die u.a. im Bereich Gipserarbeiten und Aussenisolationen tätige Firma mehr Leute einstellte, welche nicht über dieselbe Ausbildung und Erfahrung verfügten und unterschiedliche Arbeitspensen versahen, sodass insbesondere flexibler auf die Nachfrage reagiert werden konnte. Die Beschwerdeführerin war Hilfsarbeiterin und in einem Vollzeitpensum angestellt. Im Übrigen kann im Umstand, dass sich nicht nur die (verabgabte) Lohnsumme von 2005 auf 2006 um rund 25 % erhöhte, sondern der Lohn ihres Ehemannes und Geschäftsführers der Firma im selben Ausmass zunahm, ein Indiz dafür gesehen werden, dass die Massnahmen erfolgreich waren.
2.4. Das von der Vorinstanz ermittelte Valideneinkommen von Fr. 62'487.45 (E. 1) ist nicht bestritten. Es besteht kein Anlass zu einer näheren Prüfung.
3.
3.1. Bei der Bestimmung des Invalideneinkommens, ebenfalls auf der Grundlage der LSE 06, ist die Vorinstanz vom durchschnittlichen monatlichen Bruttolohn (Zentralwert) von Frauen in einfachen und repetitiven Tätigkeiten (Anforderungsniveau des Arbeitsplatzes 4), "Total", im privaten Sektor (S. 25 Tabelle TA1) ausgegangen, was der Regel entspricht (<ref-ruling> E.4.3.2 S. 484; Urteil 8C_513/2014 vom 17. Dezember 2014 E. 6.6.1). Es besteht kein Grund, davon abzuweichen und auf den Bereich "Reinigung und öffentliche Hygiene" im privaten und öffentlich Sektor (Bund) zusammen (S. 29 Tabelle TA7) abzustellen, wie die Beschwerdeführerin beantragt. Entgegen ihren Vorbringen hatten sich die Gutachter der asim (Academy of Swiss Insurance Medicine, Universitätsspital Basel) nicht in dem Sinne geäussert, dass lediglich eine angepasste leichtbelastende Reinigungstätigkeit mit der Bedienung von Reinigungsmaschinen und ohne gebückte Handarbeit zumutbar wäre. Vielmehr hielten sie fest, dass aus rheumatologischer Sicht aucheine Tätigkeit in einem Reinigungsdienst denkbar sei, sofern nicht nur gebückte Handarbeit zu verrichten ist (Expertisen vom 29. August 2012, S. 28, und 20. Oktober 2017, S. 10). Im Übrigen werden keine anderen Gründe genannt, welche rechtfertigten, nicht auf die Lohnverhältnisse im gesamten privaten Sektor abzustellen.
3.2. Die Vorinstanz hat keinen Abzug vom Tabellenlohn nach <ref-ruling> vorgenommen. Die Beschwerdeführerin macht geltend, den qualitativen Einschränkungen der Arbeitsfähigkeit aus rheumatologischer Sicht sei mit einem leidensbedingten Abzug von mindestens 10 % Rechnung zu tragen. Dieser Punkt kann offenbleiben. Wird das Invalideneinkommen von Fr. 43'424.70 um 10 % gekürzt, ergibt sich ein Invaliditätsgrad von 37 % ([[Fr. 62'487.45 - [Fr. 43'424.70 x 0.9]]/Fr. 62'487.45] x 100 %; vgl. E. 1), was für den Anspruch auf eine Rente nicht ausreicht (Art. 28 Abs. 2 IVG).
4.
Nach dem Gesagten verletzt der angefochtene Entscheid kein Bundesrecht. Die Beschwerde ist unbegründet.
5.
Ausgangsgemäss wird die Beschwerdeführerin kostenpflichtig (Art. 66 Abs. 1 BGG).

Demnach erkennt das Bundesgericht:
1.
Die Beschwerde wird abgewiesen.
2.
Die Gerichtskosten von Fr. 800.- werden der Beschwerdeführerin auferlegt.
3.
Dieses Urteil wird den Parteien, dem Sozialversicherungsgericht des Kantons Zürich und dem Bundesamt für Sozialversicherungen schriftlich mitgeteilt.
Luzern, 10. Januar 2019
Im Namen der II. sozialrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Die Präsidentin: Pfiffner
Der Gerichtsschreiber: Fessler